Life goes on

何かJavaScriptとかVimとかMacとかに関係してそうな深淵から覗かれる者

Doctor JSがとても良い件

新年明けましておめでとうございました。今年もゆるくお願いします。

全然正月とか新年に関係無いのですが。 何だかググってもあんまり情報が出てこないので。

Vimだけじゃないですが、ctagというコマンドがあります。これはソースコードの関数やら変数やらをインデックスしておくファイルを作ってくれるという便利コマンドでして、これを使ってVimから関数呼び出ししている部分でC-[を押すと、定義部分に飛んでくれてC-tで元の場所に戻るというとてもIDEライクに動かす事ができるものです。

で、これはずっと使っていたんですが、自分の専門(なはず)のJavaScriptの場合は、どうもあんまり上手く解析してくれない…。ちょっと不便ではあるんだけどまあ使えてはいたんで良かったんですが。現在、MozillaDoctor 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_javascriptjsctagsのパスを渡すと使えるようになります。Tagbarを使う場合は上記のtagsを作成しなくても勝手に解析してくれるので、面倒がありません。

見た目はこんな感じで、ちゃんとjsdocsの情報とかも出てて非常に見やすくなります。

f:id:Layzie:20130103024131p:plain