Though I love vim, it has one pretty big flaw: it doesn't know JavaScript. There are systems that know JavaScript pretty well, like all of Visual Studio Code’s code intelligence features. I've tried all of them: languageserver, tern, typescript server… and they've all broken my heart. And then I went back to the opposite extreme: no autocomplete, no fancy stuff, not even the supertab
plugin. Now I've settled in the middle, and am loving mediocre vim. The combination is:
Ctags is a beautifully ugly system, with extreme performance and simplicity. Just enough intelligence to pluck out the exports and declarations in your files to make jump to definition work mostly. It's basically a set of regular expressions that tries to find keywords and then puts them in a file that your editor can use as an index.
brew install ctags-exuberant