All Projects → pechorin → Any Jump.vim

pechorin / Any Jump.vim

Jump to any definition and references 👁 IDE madness without overhead 🚀

Projects that are alternatives of or similar to Any Jump.vim

Vim Subversive
Vim plugin providing operator motions to quickly replace text
Stars: ✭ 168 (-76.47%)
Mutual labels:  viml, nvim
Nvcode
An IDE layer for Neovim with sane defaults. Completely free and community driven.
Stars: ✭ 6,714 (+840.34%)
Mutual labels:  ide, nvim
Vim Sneak
The missing motion for Vim 👟
Stars: ✭ 2,467 (+245.52%)
Mutual labels:  viml, nvim
Vim Dirvish
Directory viewer for Vim ⚡️
Stars: ✭ 929 (+30.11%)
Mutual labels:  viml, nvim
LunarVim
An IDE layer for Neovim with sane defaults. Completely free and community driven.
Stars: ✭ 9,296 (+1201.96%)
Mutual labels:  ide, nvim
Vim Yoink
Vim plugin that maintains a yank history to cycle between when pasting
Stars: ✭ 225 (-68.49%)
Mutual labels:  viml, nvim
Yavide
Modern C/C++ integrated development environment
Stars: ✭ 1,306 (+82.91%)
Mutual labels:  ide, viml
Darcula
A Vim color scheme reproduction of the official JetBrains IDE Darcula theme
Stars: ✭ 158 (-77.87%)
Mutual labels:  ide, nvim
dotfiles
🍀 Vim/Neovim + Tmux + Zsh + Alacritty = Build your own fantastic development environment
Stars: ✭ 65 (-90.9%)
Mutual labels:  ide, nvim
nvim
Structure, documented, super fast neovim configuration. 可能是翻斗花园最好用的 neovim 配置[^1]。
Stars: ✭ 223 (-68.77%)
Mutual labels:  ide, nvim
Vim Buffet
IDE-like Vim tabline
Stars: ✭ 304 (-57.42%)
Mutual labels:  ide, viml
neovim-config
Modern NeoVim config for IDE-like development
Stars: ✭ 89 (-87.54%)
Mutual labels:  ide, nvim
Neovim Dots
most beautiful neovim cli setup
Stars: ✭ 547 (-23.39%)
Mutual labels:  ide, nvim
Vim Css Color
Highlight colors in css files
Stars: ✭ 635 (-11.06%)
Mutual labels:  viml
Ionide Vscode Fsharp
VS Code plugin for F# development
Stars: ✭ 660 (-7.56%)
Mutual labels:  ide
Consulo
Platform repository of Consulo. Plugins implementation hold in their repositories
Stars: ✭ 632 (-11.48%)
Mutual labels:  ide
Timl
Clojure like language which compiles down to VimL
Stars: ✭ 622 (-12.89%)
Mutual labels:  viml
Orchest
A new kind of IDE for Data Science.
Stars: ✭ 694 (-2.8%)
Mutual labels:  ide
Chadtree
File manager for Neovim. Better than NERDTree.
Stars: ✭ 653 (-8.54%)
Mutual labels:  nvim
Jarvis
Dotfiles for a powerful, web development-focused environment powered by Neovim, iTerm2, tmux, and zsh
Stars: ✭ 617 (-13.59%)
Mutual labels:  ide

any-jump.vim

— IDE madness without overhead for 40+ languages

Vim code inspection plugin for finding defitinitions⚒ and references/usages🔬.

Any-jump can be used with any language, but definitions search only available for supported languages. This is not a problem in general, so use any-jump freely on any code project.

Based on syntax rules for 40 languages and fast regexp engines like ripgrep and ag.

On screen: jumping through source code of Discourse project

Requirements

  • nvim 0.4+ or vim 8.2
  • ripgrep 11.0.0+ or ag
  • some languages requires rg with PCRE2 support

Installation

via vim-plug:

Plug 'pechorin/any-jump.vim'

Usage

In normal or visual mode.

Just place you cursor on any variable/class/constant/name/symbol and press <leader>j or execute :AnyJump in normal mode. You can also use visual mode to select proper keyword (j also works in visual mode)

With :AnyJumpArg myKeyword command you can manually write what you want to be searched for.

Searches

  • keyword definitions: find files where keyword defined

  • keyword references/usages: find files where keyword used and referenced

version 1.0 roadmap

  • [ ] paths priorities for better search results
  • [ ] [nvim] ability to jump through preview text (and another keyword)
  • [ ] show latest N search keywords in popup to save jumping history
  • [ ] ctags support
  • [ ] basic refactoring support

Keybindings

Default global mappings for normal and visual modes:

" Normal mode: Jump to definition under cursore
nnoremap <leader>j :AnyJump<CR>

" Visual mode: jump to selected text in visual mode
xnoremap <leader>j :AnyJumpVisual<CR>

" Normal mode: open previous opened file (after jump)
nnoremap <leader>ab :AnyJumpBack<CR>

" Normal mode: open last closed search window again
nnoremap <leader>al :AnyJumpLastResults<CR>

Disabling default any-jump keybindings:

let g:any_jump_disable_default_keybindings = 1

Mappings for popup search window

o/<CR>     open
s          open in split
v          open in vsplit
t          open in new tab
p/<tab>    preview
q/x        exit
r          references
b          back to first result
T          group by file
a          load next N results
A          load all results
L          toggle results lists ui style

Settings

" Show line numbers in search rusults
let g:any_jump_list_numbers = 0

" Auto search references
let g:any_jump_references_enabled = 1

" Auto group results by filename
let g:any_jump_grouping_enabled = 0

" Amount of preview lines for each search result
let g:any_jump_preview_lines_count = 5

" Max search results, other results can be opened via [a]
let g:any_jump_max_search_results = 10

" Prefered search engine: rg or ag
let g:any_jump_search_prefered_engine = 'rg'


" Search results list styles:
" - 'filename_first'
" - 'filename_last'
let g:any_jump_results_ui_style = 'filename_first'

" Any-jump window size & position options
let g:any_jump_window_width_ratio  = 0.6
let g:any_jump_window_height_ratio = 0.6
let g:any_jump_window_top_offset   = 4

" Customize any-jump colors with extending default color scheme:
" let g:any_jump_colors = { "help": "Comment" }

" Or override all default colors
let g:any_jump_colors = {
      \"plain_text":         "Comment",
      \"preview":            "Comment",
      \"preview_keyword":    "Operator",
      \"heading_text":       "Function",
      \"heading_keyword":    "Identifier",
      \"group_text":         "Comment",
      \"group_name":         "Function",
      \"more_button":        "Operator",
      \"more_explain":       "Comment",
      \"result_line_number": "Comment",
      \"result_text":        "Statement",
      \"result_path":        "String",
      \"help":               "Comment"
      \}

" Disable default any-jump keybindings (default: 0)
let g:any_jump_disable_default_keybindings = 1

" Remove comments line from search results (default: 1)
let g:any_jump_remove_comments_from_results = 1

" Custom ignore files
" default is: ['*.tmp', '*.temp']
let g:any_jump_ignored_files = ['*.tmp', '*.temp']

" Search references only for current file type
" (default: false, so will find keyword in all filetypes)
let g:any_jump_references_only_for_current_filetype = 0

" Disable search engine ignore vcs untracked files
" (default: false, search engine will ignore vcs untracked files)
let g:any_jump_disable_vcs_ignore = 0

Theme configuration

Where are default theme configuration based on standard Vim hightlight groups, you can override any setting:

let g:any_jump_colors = {
      \"plain_text":         "Comment",
      \"preview":            "Comment",
      \"preview_keyword":    "Operator",
      \"heading_text":       "Function",
      \"heading_keyword":    "Identifier",
      \"group_text":         "Comment",
      \"group_name":         "Function",
      \"more_button":        "Operator",
      \"more_explain":       "Comment",
      \"result_line_number": "Comment",
      \"result_text":        "Statement",
      \"result_path":        "String",
      \"help":               "Comment"
      \}

Background settings

You can set non-theme background by set Pmenu hl group like this:

hi Pmenu guibg=#1b1b1b ctermbg=Black

Where are also PmenuSel, PmenuSbar, PmenuThumb groups for configuring.

Features

open definitions and references/usages list

screenshot

preview definition with p or tab

screenshot

group results by file

screenshot

search results with line numbers

screenshot

vim 8.2 inside terminal

vim-support

Supported languages

  • ruby
  • elixir
  • crystal
  • rust
  • haskell
  • java
  • javascript
  • typescript
  • scala
  • kotlin
  • php
  • protobuf
  • scss
  • fsharp
  • c++
  • coffeescript
  • go
  • lua
  • nim
  • scad
  • elisp
  • nix
  • clojure
  • coq
  • systemverilog
  • objc
  • racket
  • vhdl
  • scheme
  • r
  • sql
  • faust
  • vala
  • matlab
  • python
  • pascal
  • tex
  • swift
  • shell
  • perl
  • csharp
  • commonlisp
  • ocaml
  • erlang
  • julia
  • sml
  • groovy
  • dart
  • fortran

Original idea

Comes from dumb-jump.el emacs package

Issues and contibutions

Please open issue on any question / problem / feedback / idea.

Garanteed contribution feedback: 3-5 days, but it's stable.

 /~~||/~\\  /---   ||   ||/~\ /~\ |~~\
 \__||   |\/       | \_/||   |   ||__/
         _/     \__|              |
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].