ソースコード検索エンジン gonzui のタブ幅を指定する
今週は個人的にドタバタしてしまいまして、投稿が滞ってしまいました。今もちょっと時間がないので、本日はソースコード検索エンジン gonzui に関するちょっとした Tips をお届けします。
gonzui とは、国産検索エンジンの草分け Namazu の開発者である高林 哲氏(現在は Google に在籍されているそうです)が開発された、ソースコード専用の検索エンジンです。 gonzui 自体に関しては、以下のページを参照してください。
- gonzui: ソースコード検索エンジン (公式サイト)
- 今夜はgonzuiでソース探索 (マイコミジャーナルのハウツー記事)
- ソースコード検索エンジンgonzuiとは (高橋氏本人による CNET ブログの記事)
残念ながら現在は開発が停止しているようですが、インストールのしやすさ、多数の言語への対応、そして日本語のハンドリングなどを考えると、便利であることに変わりありません。
ただ、ちょっと不満なのが、ソース表示時のタブ幅が「8」で固定されていることです。 Emacs な人を除けばタブ幅 8 でソースを書くことは稀なので、たいていインデントが崩れます(笑)。そんなわけで、タブ幅を変更する方法を探してみました。
タブ幅の変更方法
残念ながらタブ幅はソースコードに埋め込まれていますので、変更するにはソースを直接書き換えるしかありません。変更箇所は、 gonzui/util.rb の String#untabify です。
def untabify new = "" self.each_line {|line| true while line.gsub!(/\t+/) { ' ' * ($&.length * 8 - $`.length % 8) #`) } new << line } return new end</code>
ここで直値で指定されている "8" がタブ幅です(^^;;;;;。ですので、例えばそれを "4" に変更すると、タブ幅が "4" になります。
' ' * ($&.length * 4 - $`.length % 4) #`)
ちょっとうろ覚えなのですが、たしかこの untabify はインデックス作成時に呼ばれていたはずなので、この変更を施した後に gonzui-import をやり直す必要があると思います。
参考
私はぜんぜん試していないのですが、この記事を書くにあたって見つけた便利そうな gonzui 関連情報です。元がバージョンアップされていない分、情報が古くなることもありませんね(^^;
- gonzui-win32 (Ruby なしで動く Windows 用 gonzui)
- Gonzui for Emacs (Emacs 上で gonzui 検索)
- gonzui-1.2 が ruby のソースを解析してくれない (Ruby ソースを検索する方法)
簡単ですが、本日はこんなところで。 gonzui は、とくに大規模なソースの解析に大変便利なツールです。皆さんもぜひ活用してください!
詳しくはこちらの記事をどうぞ!
この記事にコメントする