4 ms·
You definitely don't need to go to a full IDE just to get find-definition and find-references. Those are basic features of any ctags-enabled editor, and nowaday
by apetresc 7y ago
You definitely don't need to go to a full IDE just to get find-definition and find-references. Those are basic features of any ctags-enabled editor, and nowadays with the momentum behind LSPs you get carrier-grade versions of it without even needing to generate a tag file. (In fact, Neovim's next version will actually ship with an LSP client, you won't even need an extension for it).
I just bind 'gd' and 'gr' to go to definitions and references, respectively, and I'm good to go in vim.
- bordercases 7y agoVery popular LSPs actually have poor support for basic definition/reference jumping. `javascript-typescript-language-server` sticks out to me as my first disappointment. And the only implementation of a vue language server is no better, where tls would just throw errors for mixing HTML templates with scripts even if it handles the Javascript properly.
- fiddlerwoaroof 7y agoWhichever language server the tide package uses in emacs has excellent jump to definition abilities.
- m0zg 7y agoThere's also YouCompleteMe, which gives you completion for half a dozen popular languages.
- dleslie 7y agoEmacs has dumb-jump, which is just... Fantastic. Absolutely fantastic. It doesn't perform any deep semantic analysis; it just abuses whatever existing grep-like tools you have and a bare minimum understanding of the language syntax to find likely correct definitions. https://github.com/jacktasia/dumb-jump https://github.com/jacktasia/dumb-jump
- TeMPOraL 7y agoHoly hell, it's the missing companion for Hippie Expand! For non-emacsers, hippie-expand completes the word you're typing by throwing a bunch of heuristics at it, most notable of which is "search this and every other opened buffer for the last few things before the cursor, and see if this produces a completion". (A funny side effect of this heuristic is that it essentially behaves like a Markov chain. If you have it bound to a key, say M-/, then you can type a starting word and repeatedly press "M-/ Space", and it'll start generating text based on what you have in your open buffers.) https://www.emacswiki.org/emacs/HippieExpand https://www.emacswiki.org/emacs/HippieExpand