Giter Site home page Giter Site logo

deckcode / acejump Goto Github PK

View Code? Open in Web Editor NEW

This project forked from acejump/acejump

0.0 1.0 0.0 15.24 MB

πŸ…°οΈ single character search, select, and jump

Home Page: https://plugins.jetbrains.com/plugin/7086-acejump

License: GNU General Public License v3.0

Kotlin 100.00%

acejump's Introduction

AceJump

AceJump is a plugin for the IntelliJ Platform that lets you jump to any symbol in the editor with just a few keystrokes. Press the keyboard shortcut for AceAction (Ctrl+; by default) to activate AceJump. Type any string in the editor, followed by one of the illustrated tags, to jump its position:

Press the AceJump shortcut a second time to activate Declaration Mode, which is equivalent to the Navigate To action in the IDE. Press the AceJump shortcut three times before completing a tag to activate Target Mode. Once Target Mode is activated, jumping to a tag will select an entire word. Target Mode can also be activated directly by pressing the shortcut for AceTargetAction (Ctrl+Alt+; by default).

Press the AceJump shortcut for Line Mode(Ctrl+Shift+; by default), to target the beginning, first non-whitespace, and last character of every line in the editor). Then jump to one by completing the tag.

Press the AceJump shortcut, followed by β†’ to target the last, ← to target the first, or ↑, to target the first non-whitespace characters of every line in the editor.

AceJump search is smart case sensitive, however tag selection is not case sensitive. Holding down Shift when typing the last tag character will select all text from the current cursor position to that destination.

Tips

  • Press Tab when searching to jump to the next group of matches in the editor.

  • If you make a mistake searching, just press Backspace to restart from scratch.

  • If no matches can be found on-screen, AceJump will scroll to the next match it can find.

  • Pressing Enter or Shift+Enter during a search will cycle through tagged results on screen.

    • To select a location and continue editing, just press Esc.

    • To use this feature with IdeaVim, you must be in Vim's Insert Mode (to be fixed at a later point).

  • Keep typing! AceJump will accept multiple sequential characters before tag selection.

  • Word Mode is a new action that will tag all visible words as soon as it is activated.

    • To bind a keyboard shortcut to Word Mode, open Settings | Keymap | πŸ” "AceJump"

Installing

AceJump can be installed directly from the IDE, via Settings | Plugins | Browse Repositories... | πŸ” "AceJump".

Canary builds are provided courtesy of TeamCity. These can be downloaded and installed from disk.

Configuring

IdeaVim users can choose to activate AceJump with a single keystroke (f, F and g are arbitrary) by running:

echo -e '

" Press `f` to activate AceJump
map f :action AceAction<CR>
" Press `F` to activate Target Mode
map F :action AceTargetAction<CR>
" Press `g` to activate Line Mode
map g :action AceLineAction<CR>

' >> ~/.ideavimrc

To change the default keyboard shortcuts, open File | Settings | Keymap | πŸ” "AceJump" | AceJump | Enter⏎.

Keymap

Building

Prerequisites: JDK 8 or higher.

To build AceJump, clone and run the Gradle task buildPlugin like so:

  • git clone https://github.com/acejump/AceJump && cd AceJump
  • For Linux and Mac OS: ./gradlew buildPlugin
  • For Windows: gradlew.bat buildPlugin

The build artifact will be placed in build/distributions/.

Miscellaneous: AceJump is built using Gradle with the Gradle Kotlin DSL and the gradle-intellij-plugin.

Contributing

AceJump is supported by community members like you. Contributions are highly welcome!

If you would like to contribute, here are a few of the ways you can help improve AceJump:

To start IntelliJ IDEA CE with AceJump installed, run ./gradlew runIde -PluginDev.

To just run the tests, execute ./gradlew test - this is usually much faster than starting an IDE.

For documentation on plugin development, see the IntelliJ Platform SDK.

Release notes

Please see here for a detailed list of changes.

Comparison

AceJump is inspired by prior work, but adds several improvements, including:

  • Target mode: Jump and select a full word in one rapid motion. (Ctrl+Alt+;)
  • Line Mode: Jump to the first, last, or first non-whitespace character of any line on-screen (Ctrl+Shift+;).
  • Word Mode: Jump to the first character of any visible word on-screen in two keystrokes or less.
  • Declaration Mode: Jump to the declaration of a token (if it is available) rather than the token itself.
  • Full-text search: If a string is not visible on the screen, AceJump will scroll to the next occurrence.
  • Smart tag rendering: Tags will occupy nearby whitespace if available, rather than block adjacent text.
  • Ergonomic tagging: AceJump tries to minimize finger travel distance on most common keyboards layouts.

The following plugins have a similar UI for navigating text and web browsing:

Source Code Download Application Actively Maintained Language
AceJump ⬇ IntelliJ Platform βœ”οΈ Kotlin
IdeaVim-EasyMotion ⬇ IntelliJ Platform βœ”οΈ Kotlin
AceJump-Lite ⬇ IntelliJ Platform βœ”οΈ Java
KJump ⬇ IntelliJ Platform βœ”οΈ Java
emacsIDEAs ⬇ IntelliJ Platform βœ”οΈ Java
TraceJump ⬇ Desktop βœ”οΈ Kotlin
ace-jump-mode ⬇ emacs ❌ Emacs Lisp
avy ⬇ emacs βœ”οΈ Emacs Lisp
EasyMotion ⬇ Vim ❌ Vimscript
Sublime EasyMotion ⬇ Sublime ❌ Python
AceJump ⬇ Sublime βœ”οΈ Python
Jumpy ⬇ Atom βœ”οΈ CoffeeScript
Find-Jump ⬇ Visual Studio Code ❌ TypeScript
MetaGo ⬇ Visual Studio Code βœ”οΈ TypeScript
VSCodeVim ⬇ Visual Studio Code βœ”οΈ TypeScript
CodeAceJumper ⬇ Visual Studio Code βœ”οΈ TypeScript
AceJump ⬇ Visual Studio ❌ C#
EasyMotion ⬇ Visual Studio ❌ C#
cVim ⬇ Chrome βœ”οΈ JavaScript
SurfingKeys ⬇ Chrome / Firefox βœ”οΈ JavaScript
Vimium ⬇ Chrome βœ”οΈ CoffeeScript
Vrome ⬇ Chrome ❌ CoffeeScript
ViChrome ⬇ Chrome ❌ CoffeeScript
VimFx ⬇ Firefox βœ”οΈ CoffeeScript
Vimperator ⬇ Firefox ❌ JavaScript
Pentadactyl ⬇ Firefox ❌ JavaScript
Vim Vixen ⬇ Firefox 57+ βœ”οΈ JavaScript
Tridactyl ⬇ Firefox 57+ βœ”οΈ TypeScript
Vimari ⬇ Safari βœ”οΈ JavaScript

Acknowledgements

The following individuals have significantly improved AceJump through their contributions and feedback:

AceJump is made possible by users just like you! If you enjoy using AceJump, please consider contributing.

acejump's People

Contributors

alexpl292 avatar breandan avatar centaur avatar clojj avatar ecbrodie avatar fapdash avatar ildarkhasanshin avatar ippschi avatar jmdesprez avatar johnlindquist avatar muescha avatar soonlive avatar streppel avatar tanalab2 avatar vlad avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.