pechorin / any-jump.vim

Jump to any definition and references 👁 IDE madness without overhead 🚀
1.08k stars 40 forks source link

Roadmap & feedback & updates #40

Open pechorin opened 4 years ago

pechorin commented 4 years ago

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.

pechorin commented 4 years ago

@pyrho @markwu @khalidchawtany @watzon please let me know about missing features/staff you will like .)

watzon commented 4 years ago

Mostly I'm excited to get ctags support. I feel like that will make a huge difference.

marlun commented 4 years ago

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 😄

pechorin commented 4 years ago

@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.

pechorin commented 4 years ago

@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.

pechorin commented 4 years ago

So, tags support is something what we do already, via our regexp rules engine.

watzon commented 4 years ago

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.

pechorin commented 4 years ago

Hmm, okay, i looked at ctags support languages list and it's impressive.

watzon commented 4 years ago

Yeah, and super easy to add support for a new language. So I think it's definitely worth doing.

markwu commented 4 years ago

I use ctags, global(gtags), language-server(coc.nvim) and any-jump at the same time, actually I like the simple of any-jump.

  1. I don't need to 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)
  2. ctags only support definitions, no references.
  3. 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:

  1. definitions from any-jump (through current regexp rules), just find an easy way for user to extend it to find their own staffs.
  2. definitions from ctags (through ctags files) with more kinds(class, function, method, variable ... blah,blah), from tselect command
  3. references from any-jump

One 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!

geodimm commented 4 years ago

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!

kylepollina commented 3 years ago

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!