typedefで定義したシンボルへのダイレクトNo.20344
うえむ さん 05/11/08 15:03
 
こんにちは、うえむです

表題の通りですが、typedefで定義したシンボルへのダイレクトタグジャンプはでき
ないでしょうか?

例えば
typedef unsigned char UBYTE;

typedef struct{
    unsigned char aaa;
    int           bbb;
}TEST;
という風に定義されており、
関数内でUBYTEやTESTという記述の上でダイレクトタグジャンプをしたときにその定
義部に飛んでって欲しいのです。何とフリーのさくらエディタでは可能のようです。

[ ]
RE:20344 typedefで定義したシンボルへのNo.20345
秀丸担当 さん 05/11/08 15:59
 

>表題の通りですが、typedefで定義したシンボルへのダイレクトタグジャンプはでき
>ないでしょうか?

tagsファイルにtypedefの場所が書かれているような形で出力されていればでき
ます。

tagsファイルの作成で、ルールが「C言語の関数一覧」になっているとtypedef
は出力されません。
ルールに自動または強調表示定義ファイルを指定すれば、行の強調に該当する部
分を出力します。
例えば.hのファイルを開いて、行の強調表示にtypedefを追加し、対象ファイル
を「*.h」、ルールを「自動」にするとできます。

「tagsファイルの作成」コマンド(hidetags.exe)を使わなくても、grep結果を
tagsというファイル名で保存したりしても簡単にできます。


サクラエディタはできるというよりctagsを使えばできるということなんだと思
います。
秀丸エディタでもctagsを使えばできると言えばできます。ただし秀丸エディタ
の形式に合わないので変換が必要なようです。
Web検索してみたところ、ctagsの結果を秀丸エディタ用に変換するものもあった
りするようです。

ちょっと見てみたところでは、ctagsの結果を正規表現の置換で
検索文字列「([^\t]+)\t([^\t]+)\t([0-9]+).*$」
置換文字列「\2(\3) : \1」
とかしてみてもできそうな気がします。

[ ]
RE:20345 typedefで定義したシンボルへのNo.20346
秀丸担当 さん 05/11/08 16:21
 

自己レスですが、typedefで複数行にまたがることがあるので、単純に行の強調
というわけにはいきませんでした。すみません。
ctagsを利用できるようにすると便利なようです。

[ ]