how to make vim ctags works for modern javascript

21,151

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

Share:
21,151
guilin 桂林
Author by

guilin 桂林

Python and web

Updated on March 10, 2020

Comments

  • guilin 桂林
    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
    Ory Band almost 13 years
    Wow, you switched the answer. Guess you really enjoyed the solution. :)
  • Iskren Ivov Chernev
    Iskren Ivov Chernev over 11 years
    Too bad the DoctorJS project is no longer maintained (at least here). It fails to run on itself, and not only...
  • Ory Band
    Ory Band over 11 years
    Yes, but the wiki in TagBar GitHub repo has a temporary fix for this - you can revert to an earlier commit.
  • Ehtesh Choudhury
    Ehtesh Choudhury over 9 years
    Installing 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
    Andy Ray almost 9 years
    Both 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
    Andy Ray almost 9 years
    Tern is, Tern for Vim is not
  • Paul Lynch
    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).