IDE support?
Claus Reinke
claus.reinke at talk21.com
Fri Sep 16 01:42:23 PDT 2011
On the subjects of code navigation and DoctorJS as a basis for tools:
>> - Jump to the definition of a method/function.
..
>> - Find all invocations of a method/function.
..
> I'm in the process of adding scoped tags support to DoctorJS, so that
> in Vim you can also navigate to local definitions and parameters (in
> principle, that would also give access to any local information produced
> by DoctorJS's analysis, but I'm not sure whether that information is
> recorded anywhere). Generation and navigation already works, I just
> have to push to github, figure out pull requests and submodules, and
> write a blog post to explain the whole thing..
(note that scoped tags only refer to lexical scoping, not to the combination
of lexical scoping and property lookup that would be required for method
navigation; nevertheless, this is a natural extension of tags navigation)
This is now online in a fork of DoctorJS (this also includes patches to
make jsctags work on Windows):
https://github.com/clausreinke/doctorjs
If you are a Vim user, you'll find a matching Vim script to use this
scoping information for navigation (go to local definition, cycle
through uses in scope) here:
https://github.com/clausreinke/scoped_tags
More info and examples in an introductory blog post (if you don't
use Vim, there is a small screencast, so you can get an idea of existing
navigation features and compare them with your requirements):
http://libraryinstitute.wordpress.com/2011/09/16/scoped-tags-support-for-javascript-in-vim/
Hope you'll find this useful!-) And if you happen to know a job
where I could work on this kind of Javascript tooling, let me know;-)
Claus
http://clausreinke.github.com/
PS. Assuming that some DoctorJS folks are listening here: the DoctorJS
ticket tracker seems unwatched (not even patches get applied). I do
hope that this is temporary, and that choosing to build on jsctags was
a good idea, but it would be nice to get some confirmation.
More information about the es-discuss
mailing list