ctagsでCとアセンブラ間のタグジャンプができるようにする

ctags使っていて、Cとアセンブラでお互いにタグジャンプできないのが不便だったので、やっつけでtagsファイルを書き換えるスクリプト書いた。

Gist: ryochack / ctags_ac.rb

アセンブラからCの関数を呼ぶ時には、関数名の先頭に"_"がつく。
そのため、tagsファイルにある関数名の記載と異なり、タグジャンプできないことがままある。

call  _sys_call    ! sys_call(function, src_dest, m_ptr)

こういった時に、

$ ruby ctags_ac.rb tags

で、Cとアセンブラのシンボルをお互いにタグジャンプで行き来できるようにtagsファイルを書き換える。

要Ruby2.1.0以上、もしくはstring-scrub

スクリプトでやっていることは、 tagsファイルに記載されているCのシンボル名の頭に"_"を付加したものと、 アセンブラのシンボル名の頭から"_"をとったものを追記するだけのお粗末なもの。

もちろんtagsのファイルサイズは大きくなる。
あとCとアセンブラしか対応していない。

参考