MilkodeとChromeでサクサクっとソースコード検索


ソースコード検索をブラウザの検索エンジンに組み込んで、
いつでもサクッとコードを検索しちゃおうという試みです。


Milkodeとはなんぞ

これ↓
http://d.hatena.ne.jp/tuto0621/20110730/1312040692


仕事上でソースコードを横断して検索することが多くなってきたので独自にgrepを拡張してアレコレやっていたのですが、
ヒットしたキーワードの周辺行を出力して欲しかったり(もしかしてできる?)、
量が多すぎて読みづらくなってしまったりと困ることがいくつかあったので
Webブラウザで動作するソースコード検索システムであるMilkodeを導入してみました。

Milkode自体は去年の夏ぐらいに流行っていたみたいですね。遅ればせながら導入してみました。

インストール

OSはUbuntu11.04
RubyGemsで一発で入ります。

$ gem install milkode

すみません嘘をつきました、私の環境では一発で入りませんでした。

$ sudo apt-get install libxml2-dev libxslt-dev

必要なライブラリをインストールしたあとでもう一度 gem install milkode すると無事インストールされました。

サーバ立ち上げ

まずは初期設定をし、検索対象のソースコードが入ったディレクトリをaddしていきます。

$ milk init --default
$ milk add ~/workspace

設定がおわったら後はサーバを起動するだけ。

$ milk web

デフォルトではhttp://127.0.0.1:9292/ が立ち上がるようです。
ホストや待受ポートを変えたい場合は以下のように指定します。

$ milk web -o example.com -p 1234

以上で準備が整いました。
たったこれだけ!簡単!

検索してみる

Googleのごとく検索バーに対象のキーワードを入れるとソースコードが検索されます。
私の環境にはソースファイルが5000ほどあるのですが、
作者さんが公称しているようにほんとに1秒,いや0.1秒で検索できます。速い!

他にも検索時にファイルや拡張子などの細かい指定もできるようです。
正規表現が使えたら完璧なのですが…。

hoge f:main.class    main.classから検索する
hoge s:java      拡張子がjavaのファイルを対象にする

Chromeと連携させてみる

せっかくWebブラウザで動くんだから、Chrome検索エンジンとして登録してしまいましょう。
Chromeの検索ボックス(Omniboxというらしいです。)を右クリックし、「検索エンジンの編集」を選択。

検索エンジン名:任意
検索キーワード:任意(grepにしました)
検索URL:http://127.0.0.1:9292/home?query=%s


あとは検索ボックスに「grep キーワード」と入力するだけでいつでも好きな時にソースコードを検索することができます。素敵!