htagsをつかってみる

結構大きめのソースコードを読んでると、ブラウザで読みたいなーと思うときがある。
ブラウザだとタブを開きまくれるし、タブの操作も楽だ。

色々調べてみるとhtagsというツールがあることを知った。
htagsを使うとブラウザでソースコードを見ることができる。 関数の呼び出し箇所から関数の定義先にジャンプできたり、ファイル中の関数一覧を表示する機能も付いている。

htagsはGNU GLOBALというソフトフェアの一部で、globalは他にもgtagsをいうツールを同梱しており、 gtagsでインデックスを作ってから、htagsでHTMLファイルを生成するという流れになる。

GNU GLOBALは、Macの場合だとHomeBrewを使えばコマンド一つで入る。

$ brew install global

そうするとgtags、htagsをいうコマンドが使えるようになっているはずだ。

公式ホームページによるとglobalはデフォルトではC、C++YaccJava、PHP4、アセンブラに対応しているらしい。 試しにRedisのソースコードをブラウザから見られるようにしてみよう。

公式サイトからRedisのソースコードを取ってきて、展開。

$ wget http://download.redis.io/releases/redis-3.0.5.tar.gz
$ tar zxvf redis-3.0.5.tar.gz

gtagsでインデックスを作り、htagsでHTMLファイルを生成。
(手元のMacBookProでは、gtagsコマンドは数秒、htagsコマンドは十数秒で終わった。)

$ cd redis-3.0.5
$ gtags -v
$ htags -ans

gtagsのvオプションは作業状況を出力するためのオプション。
htagsのa、n、sオプションは次の通り。

  • -a--alphabetの略でアルファベット順のインデックスを作成するオプション
  • -n--line-numberの略で行番号を表示するためのオプション
  • -s--symbolの略で関数だけでなく変数にもリンクを貼るためのオプション

gtagsコマンドを実行すると、ディレクトリ直下にGPATH、GRTAGS、GTAGSファイルが生成されている。
htagsコマンドを実行すると、ディレクトリ直下にHTMLディレクトリが生成されている。

HTML/index.htmlをブラウザで開くと、コードを見ることができる。

便利だけど、デザインがいまいちかな?