XTAGS #2 飛ぶ
タグジャンプ(jump-tag)できるようにするための何やら。
ローカル変数 ed:tags-find-target
この変数にセットした関数が引数なしで呼び出されるので、カーソル位置の単語を調べて
- クラス名
- 名前
- 関数か否か
を多値で返す。
3つ目の値は、nil なら変数、'lisp:structure なら構造体、それ以外なら関数、と扱われるっぽい(tags-find-entry-1 参照)のでそんな感じで。
この情報を元に XTAGS からジャンプ先のファイル名/ポイントを探してくれる。
ローカル変数 ed:tags-find-point
ジャンプ先のファイル名が見つかったらそのファイルを開いて、この関数が呼び出される。引数は以下の4つ。
- クラス名(ed:tags-find-target から)
- 名前(ed:tags-find-target から)
- 関数か否か(ed:tags-find-target から)
- ポイント(XTAGS エントリから)
ポイントを返すとそこへカーソルを移動する(その後行頭に移動してしまう)ので、XTAGS エントリに記録するポイントは必ずしも正確でなくてもこの関数で調整したりできる。
nil を返すと元のポイントへ移動する。
その他のタグジャンプ関連ローカル変数
ed::tags-case-insensitive
non-nil だと ed:tags-find-target から XTAGS エントリを探すのが case-insensitive になる。