Open pechorin opened 4 years ago
@pyrho @markwu @khalidchawtany @watzon please let me know about missing features/staff you will like .)
Mostly I'm excited to get ctags support. I feel like that will make a huge difference.
I'm impressed how nice this works without much setup! 👍 In my experience these kind of plugins can often add too many features and become somewhat of a behemoth, I'm more for keeping it lightweight 😄
@marlun yeah, where are problem with ui complexity and i think i should care about it specially in context of ctags/refactoring support, think this new features should be pluggable.
@watzon i do some research on tags support question. i use gutentags for tags generation and this works great for autocompletion. i also noticed what tags file contains the same definitions results as any-jump do via syntax regexp rules. So i see only one reason to do tags support — is for perfomance, because sometimes (specially on large code base) searching for definitions can span to 3 and more seconds. Will think about this.
So, tags support is something what we do already, via our regexp rules engine.
There is another reason to support tags. There are already tons of languages that ctags has support for, and it's really easy to write your own .ctags file to add support for another language. If you want to add support for another language here right now you have to make a pull request.
Hmm, okay, i looked at ctags support languages list and it's impressive.
Yeah, and super easy to add support for a new language. So I think it's definitely worth doing.
I use ctags
, global(gtags)
, language-server(coc.nvim)
and any-jump
at the same time, actually I like the simple of any-jump
.
re-generate
tags
file atfer I edited the files. I can just hit <leader>j
to find all definitions and references on the fly. (altough, it might be slow for very big project)ctags
only support definitions, no references.global(gtags)/cscope
support far fewer languages than ctags
, but it supports references with it's native parsing engine. It can support more languages through embed ctags
/pygements
into global(gtags)
, but no references.That's why I am so impressed with any-jump. It just fill the gap between ctags
and grep-like
tools. I like it.
If you want to support ctags
, I will suggest use the strength of ctags
, just use it to find definitions as an enhanced engine.
But, keep references with current implementation.
So, any-jump will have three sections when ctags support ready:
tselect
commandOne thing ctags can beat any-jump is tags stack, you can use <c-]>
jump to it's definition and jump again to another definition. Later, you can use <c-t>
to jump back previous files. Vim keep the jumping histories.
I also use ctags for autocompletion(omnicompletion by vim).
If people want more advanced definitions/references search, I will suggest use language server, it is more precise due to their language semantics parser implementation, not only regexp search.
I personally treat any-jump
a smart grep tools for languages.
Just my two cents!
Hi, what a great project!
I'd like to suggest adding optional borders around the floating windows :)
[
"┌",
"─",
"┐",
"│",
"┘",
"─",
"└",
"│"
]
Example plugins that have that feature are https://github.com/junegunn/fzf.vim and https://github.com/antoinemadec/coc-fzf
Also, it would be great to be able to set the background colour of the popup.
Thanks!
Hello, love this plugin so far. A feature request I would like to see added would be the ability to move up a directory. Unless that would be handled with ctags/gutentags, my idea would be maybe something is defined in the parent directory, it would be useful to hit a button to 'go up one directory and re-run search'. Thanks!
Current roadmap:
The new big stories:
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.