Giter Site home page Giter Site logo

pechorin / any-jump.vim Goto Github PK

View Code? Open in Web Editor NEW
1.1K 18.0 40.0 15.5 MB

Jump to any definition and references ๐Ÿ‘ IDE madness without overhead ๐Ÿš€

Ruby 2.17% Emacs Lisp 21.19% Vim Script 76.64%
nvim vim definitions ide ui references viml

any-jump.vim's Introduction

any-jump.vim

โ€” IDE madness without overhead for 40+ languages

Vim code inspection plugin for finding definitionsโš’ 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

Keybindings

Default global mappings for normal and visual modes:

" Normal mode: Jump to definition under cursor
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 results
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

" Preferred 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

" Show / hide Help section
let g:any_jump_show_help_section = 1

" 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

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

" Vertically center the screen after jumping
" (default: false)
let g:any_jump_center_screen_after_jump = v:false

Theme configuration

There are default theme configuration based on standard Vim highlight 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

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

Original idea

Comes from dumb-jump.el emacs package

Development

Lang generator

You need ruby to run generator script which actually download language map, parse, extract data and then generate vim representation:

cd generator
bundle exec rake update

Issues and contributions

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

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

 /~~||/~\\  /---   ||   ||/~\ /~\ |~~\
 \__||   |\/       | \_/||   |   ||__/
         _/     \__|              |

any-jump.vim's People

Contributors

bergtholdt avatar bvicenzo avatar emmanueltouzery avatar karate avatar khalidchawtany avatar markwu avatar maxgyver83 avatar paniash avatar pechorin avatar phongnh avatar pyrho avatar rafi avatar waiting-for-dev avatar watzon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

any-jump.vim's Issues

Error when in git rebase editor

when I do git rebase in terminal, I get this error

any-jump can't be loaded: popup_menu support required

Vim version: 8.2
OS: Mac OS X
Terminal: iTerm 2

Support for Vue.js and React.js

I think this plugin would be perfect for component based Javascript frameworks. It already handles the references, but doesn't seem to pick up the definitions based on file name.

First releases feedback

Thanks for using first alpha releases. If you have any feedback about using this plugin/missing features/nice-staff-you-like and any other staff please let me know. This is very important for me.

In generally next big plan is:

  • vim support
  • "save search", "show 10 recent searches"
  • ctags support

Use settagstack to allow C-t to jump back and :tags

Recent vim has settagstack() to set the tagstack. Calling that before moving the cursor for :AnyJump would allow users to use Ctrl-T to jump back to where they came from and to use :tags to see where they've been.

See examples in vim-lsc or vim-lsp.

Not sure if this makes :AnyJumpBack unnecessary.

Roadmap & feedback & updates

Current roadmap:

  • paths priorities for better search results (some project path are more relevant then overs)
  • [nvim] ability to jump through preview text (and another keyword)

The new big stories:

  • tags support - dropped
  • jumps history graph ui
  • basic refactoring support

Please share your ideas.

The main point for me now is to support better navigation within current session. I think i will try to experiment with displaying latest N search keywords for easy navigation through jumps history.

Also in thinking about refactoring support (basically about renaming only), but any-jump already can handle this case with :AnyJumpLastResults. Hmm, the big area to think.

Is it possible to exclude certain directories?

There are certain directories that I do NOT want any-jump to search through when looking for matches.

Is there currently any setting to exclude certain directories from search results?

Thank you again for your great plugin!

Error when using in .scss file

Hi, i'm getting the following
image
when trying to use any-jump on .scss file.
Thanks for the nice work!

Edit:
NVIM v0.5.0-nightly-514-g31614d3eb Build type: Release LuaJIT 2.0.5 Compilation: /usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNDEBUG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/tmp/neovim-20200209-16514-i4xv62/build/config -I/tmp/neovim-20200209-16514-i4xv62/src -I/usr/local/include -I/tmp/neovim-20200209-16514-i4xv62/deps-build/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include -I/usr/local/opt/gettext/include -I/tmp/neovim-20200209-16514-i4xv62/build/src/nvim/auto -I/tmp/neovim-20200209-16514-i4xv62/build/include

Colors and window border

It might be a good thing to add a color and window border management like in FZF

xxx

let g:fzf_colors =
      \ { 'fg':      ['fg', 'Normal'],
      \ 'bg':      ['bg', 'Normal'],
      \ 'hl':      ['fg', 'Comment'],
      \ 'fg+':     ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
      \ 'bg+':     ['bg', 'CursorLine', 'CursorColumn'],
      \ 'hl+':     ['fg', 'Statement'],
      \ 'info':    ['fg', 'PreProc'],
      \ 'border':  ['fg', 'Ignore'],
      \ 'prompt':  ['fg', 'Conditional'],
      \ 'pointer': ['fg', 'Exception'],
      \ 'marker':  ['fg', 'Keyword'],
      \ 'spinner': ['fg', 'Label'],
      \ 'header':  ['fg', 'Comment'] }

let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6, 'highlight': 'Todo', 'rounded': v:false } }

Thanks for the great plugin, it will probably delete a couple of them from my vimrc

Disregard matches inside multi-line comments

Say we have a function foo(). Somewhere in the codebase (e.g. some_file.cpp) a multi-line comment references it:

...
/**
 * This function wraps foo()
 */
Bar()
...

And when I try to find the definition for foo() I see some_file.cpp:42 * This function wraps foo() listed. Obviously this is undesired.

Fails with fish shell

I use fish shell normally, and launch nvim through it. When calling :AnyJump, I get:

Error detected while processing function <SNR>83_Jump[30]..search#SearchDefinitions[28]..<SNR>246
_RunRgDefinitionSearch[8]..<SNR>246_ParseRgResults:
line    7:
E474: Expected false: fish: $) is not a valid variable in fish.
E474: Failed to parse fish: $) is not a valid variable in fish.
Press ENTER or type command to continue

Support C/C++ macro and function prototype declarations

Macros and functions prototypes declarations are mark as references or not find at all

// Basic function prototyping
// <RETURN_TYPE> <function_name>(<args>);

void foo(...);
int foo(int m, float p);
CustomType foo(CustomType object, long m);
std::string foo(std::string object, long m);
auto foo(auto m);
float* foo();

// Basic macro definition
// #define NAME VALUE
#define MACRO_EX 1
#define MACRO_EX_2(x) func_call(x)

Support ReasonML

Would be nice to support ReasonML, a variant of OCaml.

Thank You

E20: Mark not set

When search in visual mode and then press Enter to jump to the definition, then it prints:


Error detected while processing function <SNR>94_VimPopupFilter[44]..AnyJumpHandleOpen:
line   30: E20: Mark not set

After that it opens the file correctly.

vim 8.2, Ubuntu 18.04.

any-jump can't be loaded: popup_menu support required

Hi, I am new to vim, so bear with me.

I get following when I open VIM.

Error detected while processing /home/<USER>/.vim/plugged/any-jump.vim/plugin/any-jump.vim:
line   40:
any-jump can't be loaded: popup_menu support required
Press ENTER or type command to continue

following is my .vimrc

set nocompatible              " be iMproved, required
filetype off                  " required

set number
syntax on

call plug#begin('~/.vim/plugged')

Plug 'https://github.com/junegunn/vim-github-dashboard.git'
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
Plug 'sheerun/vim-polyglot'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'KeitaNakamura/neodark.vim'  
Plug 'pechorin/any-jump.vim'
" Initialize plugin system
call plug#end()

filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
"
nnoremap <C-p> :Files<CR>
nnoremap <Leader>b :Buffers<CR>
nnoremap <Leader>h :History<CR>

autocmd vimenter * NERDTree
colorscheme neodark

position of the symbol in the preview window

It seems the position of the symbol that is highlighted in the preview window is between first to third line. Is there a way to configure that or at least an option to make sure the highlighted symbol is in the middle of the space allocated to the preview text? Some times I would like to see some text on the above of the highlighted symbol...
image

Restricted s:RunRgUsagesSearch to search filetype only as s:RunAgDefinitionSearch

Can we have an option to let s:RunRgUsagesSearch() search same buffer filetype only as s:RunAgDefinitionSearch() does.

I work with php project, and sometimes I have the same function name or class name in javascript.

If s:RunRgUsagesSearch() search for all filetypes, the result will become very big and annoying.

Therefore, I am asking for an option to let me search same buffer filetype only.

Thanks.

Ignore files not in git

Is it possible to skip/ignore files that aren't tracked by git? I have some database/JSON dumps inside my project directory that make searching very slow.

Ripgrep doesn`t always support PCRE2

Hello! I managed to use the plugin by setting ag as the default engine, but didn't manage to use it with rg because my build of rg doesn't have PCRE2 support, which gives out the following error message:

Error detected while processing function <SNR>30_Jump[22]..search#SearchDefinitions[19]..<SNR>183_RunRgDefinitionSearch[5]..<SNR>183_Par
seRgResults:                                                                                                                            
line    7:                                                                                                                              
E474: Unidentified byte: PCRE2 is not available in this build of ripgrep                                                                
E474: Failed to parse PCRE2 is not available in this build of ripgrep 

I understand that maybe you don't want to support rg without PCRE2, but maybe a better error message?

Amazing plugin though!

issues without `rg`

I have ag installed but encountered error running with it alone. If I install rg it works great.

Windows GVim cannot open temp files

When I call :AnyJump, I get the following error:

Error detected while processing function <SNR>13_Jump[30]..search#SearchDefinitions[28]..<SNR>109_RunRgDefinitionSearch:

E484: Can't open file C:/Users/jata/AppData/Local/Temp/VIo479B.tmp

This is on Windows, with GVim installed with Choco, and 'rg' as the search engine. The same code works on ubuntu.

Zig support

First of all, this is amazing. Makes navigating code so much easier. I noticed support for zig is missing though, which I know is to be expected. It's a lesser known language. Just thought I'd drop an issue here. I'm going to see if I can add it myself right now and get a PR in.

auto close when vim updatetime trigger

set updatetime=300  "default 4000

<leader>j, and wait updatetime, popup window will be auto close.

nvim don't have this problem.

vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Mar  6 2020 16:27:09)
Included patches: 1-357

Request: Option to not automatically make keymaps

I would prefer to set my own global keybindings for this plugin. It would be helpful if there was a configuration variable to determine whether or not the plugin makes the default keybindings for a user.

E474: unidentified byte error: found argument '--auto-hybrid-regex' which wasn't expected or isn't valid in this context

  • Using nvim 0.5.0-nightly snap
  • Rg installed
  • Ag not installed
  • Default bash shell

When doing :AnyJump I get the following error:
Error detected while processing function <SNR>47_Jump[30]..search#SearchDefinitions[28]..<SNR>56_RunRgDefinitionSearch[8]..<SNR>56_ParseRgRe sults: line 7: E474: Unidentified byte: error: Found argument '--auto-hybrid-regex' which wasn't expected, or isn't valid in this context E474: Failed to parse error: Found argument '--auto-hybrid-regex' which wasn't expected, or isn't valid in this context

I have the following setting enabled in my init.vim:
let g:any_jump_search_preferred_engine = 'rg' let g:any_jump_ignored_files = ['*.tmp','*.temp']

E474: Invalid argument

On vim 8.2 + Ubuntu18 I constantly get this (on ,):

Error detected while processing function <SNR>93_Jump[30]..search#SearchDefinitions[19]..<SNR>142_RunRgDefinitionSearch[5]..<SNR>142_ParseRgResults:
line 7: E474: Invalid argument

ag is installed.

`g:any_jump_results_ui_style` seems backwards

In the following lines it seems as though you are reversing how filename_first and filename_last are operating. In practice this does seem to be the case.

if g:any_jump_results_ui_style == 'filename_first'
let path_text = '' . gr.path . ":" . gr.line_number
let matched_text = self.CreateItem("link", gr.text, g:AnyJumpGetColor('result_text'), original_link_options)
let file_path = self.CreateItem("link", path_text, g:AnyJumpGetColor('result_path'), options)
call add(items, matched_text)
call add(items, file_path)
elseif g:any_jump_results_ui_style == 'filename_last'
let path_text = gr.path . ":" . gr.line_number
let matched_text = self.CreateItem("link", "" . gr.text, g:AnyJumpGetColor('result_text'), original_link_options)
let file_path = self.CreateItem("link", path_text, g:AnyJumpGetColor('result_path'), options)
call add(items, file_path)
call add(items, matched_text)
endif

Other than that, it's been a great plugin! Excellent with React/JSX dev!

E474: Failed to parse file

I'm working with u-boot, it's a bootloader for linux (and other) and it happens to have some non-ascii stuff in one of the headers (a font definition). AnyJumps fails to search for anything in this codebase because of this

Error detected while processing function 15_Jump[30]..search#SearchDefinitions[33]..46_RunRgDefinitionSearch[8]..46_Parse
RgResults:
line 7:
E474: Unidentified byte: include/video_font_data.h: PCRE2: error matching: UTF-8 error: isolated byte with 0x80 bit set
E474: Failed to parse include/video_font_data.h: PCRE2: error matching: UTF-8 error: isolated byte with 0x80 bit set
Press ENTER or type command to continue

Would it be possible to just ignore such errors and not include that file in the result ?

Keybindings configuration

For now i'm a little confusing about keybindings config implementation

Where are several ways:

โ€” user should explicitly set all keybindings in config by self
โ€” user should add let g:any_jump_skip_default_keybindings and explicitly add keybinds, otherwise default will be set
โ€” user can explicitly call call g:AnyJumpSetupKeybinds() (maybe with provided key configs for overriding defaults), otherwise no keybindings will set

The big area to think.

Arrow keys on plugin window.

First of all, congrats on doing this plugin!
I've started to use it and loved it!
I have an improvement suggestion.
Some people that use my .vim are learning and use the arrow keys on the keyboard to navigate.
However, it's not working in the plugin window.
Is there a possibility of it works?

Thank you for your attention :)

Unrecognized filetype javascript

Hey, the plugin looks dope!

trying to test the plugin in javascript apps but i get this error


Error detected while processing function <SNR>51_Jump[24]..search#SearchDefinitions[19]..<SNR>75_RunRgDefinitionSearch[5]..<SNR>75_ParseRgResults:
line    7:
E474: Unidentified byte: unrecognized file type: javascript
E474: Failed to parse unrecognized file type: javascript

any pointers on what might be the issue?

:version                                                                                                                             
NVIM v0.5.0-nightly
Build type: Release
LuaJIT 2.0.5
Compilation: /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/gcc-9 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNDEBUG -Wall
 -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvl
a -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS
_VAR_FROM -DMIN_LOG_LEVEL=3 -I/tmp/neovim-20191210-22270-yx8i82/build/config -I/tmp/neovim-20191210-22270-yx8i82/src -I/home/linuxbrew/.linuxb
rew/include -I/tmp/neovim-20191210-22270-yx8i82/deps-build/include -I/usr/include -I/tmp/neovim-20191210-22270-yx8i82/build/src/nvim/auto -I/t
mp/neovim-20191210-22270-yx8i82/build/include

Operator support

Could you add operators for any jump? That would make it possible to do something like ajiw to "anyjump" "inner word". Instead of having to make a visual selection first.

Adding support for ReasonML

Hello! This is a wonderful plugin, and I'm able to get a lot of utility out of it without support for ReasonML. That said, I'm wondering if it's possible to add support for this language on your roadmap? Alternatively, I'd be happy to consider making a contribution, depending on the complexity of the task.

Just let me know, thanks so much!

"not found map definition for filetype 'cpp'"

As the title indicates, I get this error while attempting to use the plugin in a C++ file. Looking at the code in generator/ it appears that you've generated regexes for a possible c++ filetype, but Neovim uses cpp as the filetype for C++ files. This may also be an issue for other languages with a similar difference in language name and filetype name.

Shifting windows can get any-jump window stuck without exit

Neat project. One thing I noticed was that if I use <C-w><left> or any other pane shifts, I can get trapped where the AnyJump window stays up. Here's a gif, if you look close you can see my cursor shift down to the file while the window still says up. I might suggest auto closing anyjump when the cursor focus is someplace else.

Is it support jump to the library function?

Hi! It was so nice to use any-jump.vim. It increase my productivity a lot.
Is there feature like jump to the library function like installed from pip or else?
Or maybe have include path for finding references.
I hope support this feature too

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.