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

東京Node学園祭2012にも行ってた

そういえば、ブログに書いてなかったけど、東京Node学園祭2012にも行ってました。何か1ヶ月も経ってたけど。こちらがレポートになるんですが、ちょっと途中聞き入ってしまい、中途半端なレポートになってしまった…。

substackがとても個性的なプログラマーで面白かったですな。大津さんのお話で、Nodeの中の仕組みが若干分かった…気になりました。あと、Stream重要っていうのを実感しました。

DevLove Conference 2012に行ってきた

昨日ですが、DevLove Conference 2012に行ってきました。

という事でいつものレポートはこちらに上げてあります。

本当は今日も行こうとしてたんですが、腰痛が悪化した為に断念…。見たかった…。

生のMatzのお話を聞けたのが大分感動しました。他にkawashimaさんのプロダクトのお話も 斬新で面白く、最後の増井さんの「自分の人生をコントロールする」っていうのが胸に染みましたね。

自分は主にフロントエンドなのですが、意識してこういう色々な職種の方が集まる勉強会に参加した方が良いなーと改めて思いました。

grunt-buster使ってwatchで自動テストが快適過ぎワロタwww

先日から、Grunt.jsを業務で使い始めた訳ですが、やっぱり個人でも使ってみないとなーというところで、 自分の若干放置気味だった、rockstage.jsで、使ってみることにしました。

今まで、makefileで作ってた、minifyなんかをGrunt.jsに置き変えておいて、ひとまず、上手く行く事を確認しました。

で、業務では使ってなかったけど興味があったgrunt-busterを使う事に。

Buster.jsは残念ながら、ファイルをwatchしての自動テストが今の所できない感じ。(今のバージョンはできるのかな… 調べてない)なので、grunt watchを使って普段のテストはgrunt-busterを使って自動で監視できないかなーと思って 導入してみました。

結果…超絶便利ww

何が便利って、Phantom.js使って、ヘッドレスでしかもテスト結果をGrowlで通知してきてくれるという親切仕様! JavaScriptファイルを保存するだけで!!

まあ、結局Phantom.jsだけしかテストしないので、リポジトリpushする前には、普通にブラウザでテストしないと なーという感じですが、それでも普段の開発時には快適。

Grunt.jsはデフォルトでqunit使ってテストしてくれるようですが、自分はqunitは若干面倒だなーと思ってるので…。

という事で、Buster.js使ってる人にはオススメです。