how to make vim ctags works for modern javascript
Solution 1
Like the others had said: DoctorJS (formerly jsctags) is the best option.
However, integrating it with Vim by writing custom wrappers or using Vim-taglist-plus plugin, which isn't currently working, aren't good solutions.
The easiest way I've found is to install the TagBar Vim plugin (NOTE: It's TagBar, not the old infamous TagList!).
See my other answer for more info.
Edit:
There's a new project called tern.js which should replace the dead doctor.js. See the link above for more info.
Solution 2
As @Benoit answered, you can always setup a new languages for ctags; however in the case of JavaScript, you may want to try DoctorJS (formerly jsctags). From the author it is a limited JS environment that records all the functions and objects your script made and turns them into vim-compatible tags file. Here is the original post http://pcwalton.blogspot.com/2010/05/introducing-jsctags.html and its website: http://doctorjs.org/.
To use it with ctags I have to rename the ctags file to smt like ex-ctags
and write a wrapper script named ctags which will switch the tool depending on --language
.
Solution 3
You can setup new languages for ctags. See this and that
Solution 4
provided you install doctorjs, you can use the vim-taglist-plus plugin, which is a fork of the vim-taglist plugin with jsctags (doctorjs) support : https://github.com/int3/vim-taglist-plus
Comments
-
guilin 桂林 about 4 years
I am using vim and ctags to get taglist. but for javascript, it does not works for this convention
MyClass.extend({ xxx: function(){ }, ... }) MyClass.prototype = { method : function(){ } } MyClass.prototype.method = function () { }
-
Ory Band almost 13 yearsWow, you switched the answer. Guess you really enjoyed the solution. :)
-
Iskren Ivov Chernev over 11 yearsToo bad the DoctorJS project is no longer maintained (at least here). It fails to run on itself, and not only...
-
Ory Band over 11 yearsYes, but the wiki in TagBar GitHub repo has a temporary fix for this - you can revert to an earlier commit.
-
Ehtesh Choudhury over 9 yearsInstalling it seems to require a bit of work. And it looks like the package isn't being actively maintained: npmjs.org/package/jsctags, github.com/mozilla/doctorjs But good stuff!
-
Andy Ray almost 9 yearsBoth DoctorJS and Tern for vim are abandonware. There is currently no good way that is documented online (which doesn't mean it doesn't exist).
-
Andy Ray almost 9 yearsTern is, Tern for Vim is not
-
Paul Lynch almost 7 years+1, but this answer would be better if the "this" content were included here for reference (with a source citation).