Doctor JSがとても良い件
新年明けましておめでとうございました。今年もゆるくお願いします。
全然正月とか新年に関係無いのですが。 何だかググってもあんまり情報が出てこないので。
Vimだけじゃないですが、ctagというコマンドがあります。これはソースコードの関数やら変数やらをインデックスしておくファイルを作ってくれるという便利コマンドでして、これを使ってVimから関数呼び出ししている部分でC-[
を押すと、定義部分に飛んでくれてC-t
で元の場所に戻るというとてもIDEライクに動かす事ができるものです。
で、これはずっと使っていたんですが、自分の専門(なはず)のJavaScriptの場合は、どうもあんまり上手く解析してくれない…。ちょっと不便ではあるんだけどまあ使えてはいたんで良かったんですが。現在、MozillaがDoctor JSというプロジェクトでJavaScript用のctagを作ってくれています。GitHubのREADMEを読む限りBespinで使うという事で作ってるのかな?
元々Mozillaの中の人がjsctagsというプロダクトを作ってたらしいのが、正式にMozillaのプロジェクトになって名前が変わったらしいです。(コマンド自体はjsctags
ですけども)
気になるインストール方法は、実は超絶簡単です。
$ brew install jsctags
終わり。一応node.jsに依存してるらしいので、使用前には入れないとですが、大体最近の良い子はnode.jsを入れてるはずなので、割愛。
1/3追記:
gyaaaaaaaa!新年早々嘘書きました、すいません。 正しくは、Homebrewじゃなくってnpmでのインストールです…。
$ npm install -g jsctags
上記のコマンドでした。なので、npmが入ってるなら、node.jsも入ってるわけで…。大変失礼しました。下でTagbarの設定でもnpm指定してるのに何でこんな間違いを…。穴があったら埋めたい。
追記終わり
使い方自体は
$ cd project
$ jsctags lib
プロジェクトのトップで、解析したいディレクトリを引数にjsctags
コマンドを入れるだけです。
tags
というファイルがトップディレクトリに出来ると思うので、そちらを各エディタで使用する形になります。
で、VimではTagbarというプラギンと一緒に使うと非常に使いやすいものになります。元々TagbarはctagをVimで一覧できるというようなプラギンなのですが、これでjsctags
の設定をしておくと大変に幸せになります。.vimrcの設定はこんな感じで。
let g:tagbar_type_javascript = { \ 'ctagsbin' : '/usr/local/share/npm/bin/jsctags' \ }
g:tagbar_type_javascript
にjsctags
のパスを渡すと使えるようになります。Tagbarを使う場合は上記のtags
を作成しなくても勝手に解析してくれるので、面倒がありません。
見た目はこんな感じで、ちゃんとjsdocsの情報とかも出てて非常に見やすくなります。