WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

ソースコード検索エンジン gonzui のタブ幅を指定する

今週は個人的にドタバタしてしまいまして、投稿が滞ってしまいました。今もちょっと時間がないので、本日はソースコード検索エンジン gonzui に関するちょっとした Tips をお届けします。

gonzui とは、国産検索エンジンの草分け Namazu の開発者である高林 哲氏(現在は Google に在籍されているそうです)が開発された、ソースコード専用の検索エンジンです。 gonzui 自体に関しては、以下のページを参照してください。

残念ながら現在は開発が停止しているようですが、インストールのしやすさ、多数の言語への対応、そして日本語のハンドリングなどを考えると、便利であることに変わりありません。

ただ、ちょっと不満なのが、ソース表示時のタブ幅が「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 は、とくに大規模なソースの解析に大変便利なツールです。皆さんもぜひ活用してください!

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles