2016/12/13

vim のアウトライン表示プラグイン outline.vim を作った

c 言語の関数一覧が欲しかったので作ったので、 そのあたりの作業について備忘メモしておく。

名前負けはご愛敬。

目的

c 言語の関数一覧が欲しかった。

何を考えたか?

c 言語の関数一覧が欲しいけど、 自分で抽出処理はかけない。

そんなわけで、方針としては

以下、各要素について書いていく。

アウトライン抽出

アウトライン抽出は ctags を使う。

ctags -x FILE_NAME --sort=no

これで member, struct, function のリストが表示される。 ここから member を取り除き、awk で無用な列を削除する。

ctags -x FILE_PATH --sort=no | grep -v member | awk '{$1=\"\";$2=\"\";$3=\"\" + $3;$4=\"\";print}'

これを、vim のバッファに読み込ませるには、 read! コマンドを使う。

silent execute "read !ctags -x " . file_path . " --sort=no | grep -v member | awk '{$1=\"\";$2=\"\";$3=\"\" + $3;$4=\"\";print}'"

これで、 ctags の実行結果を成形したものをバッファに読み込むことができる。

対象にジャンプ

ctags を成形した結果は、各行が 行番号 関数名 となっているので、 split してリストの 0 番目をとってきて、元のバッファに戻って [count]gg すれば OK。

で、できたのが下記な感じ。

以上。

0 件のコメント: