ソースコードを読む際に役立つのではと思い調べてみました。
一通り調べてみましたが、Doxygenの方が良いかもしれません。
ご参考までにまとめます。
Table of Contents
1 ebrowseパッケージとは
C++のクラス構造をemacs上で閲覧するためのemacsパッケージです。
ebrowseプログラムでデータベースファイルを作成し、データベースファイルをemacsで開くことでクラス構造を閲覧できるようになります。
ebrowseコマンドとelispのebrowseパッケージからなります。
ebrowseコマンドはemacsパッケージに含まれています。
elispのebrowseパッケージはemacsに組み込まれております。
1.1 大規模なソースツリーには向かない
データベースファイルが大きくなると表示処理に時間が掛かってしまいます。(起動時とC-lキーによって表示処理は動作します)。
データベースファイルが10MBを越えると厳しいかもしれません。
LLVM/Clangの全ヘッダファイルをデータベースファイルに取り込むと17MB程度になります。
2 データベースファイルの作成
ebrowseコマンドで作成します。
ebrowseに直接ファイル一覧を渡すこともできますが、ファイル一覧が多くなるとシェルの引数文字列の制限に引っかかる為、一度ファイル一覧をファイルに落としてから、ebrowseに渡したほうが良いでしょう。
以下の例ではccファイルとhファイルをファイルに書き込み、ebrowseに渡しています。
$ find . -name "*.cc" > LIST $ find . -name "*.h" >> LIST $ ebrowse -f LIST
3 実行例
cppcheckのコードで試してみます。
ちなみにcppcheckはdoxygenに対応しているので、本来はそちらで閲覧すべきです。
3.1 TreeバッファとMemberバッファ
Treeバッファにクラスの一覧が表示されます。
インデントはクラスの継承関係を表しています。
クラスにカーソルを合わせてLキー vキーを押すことでMemberバッファに切り替わり、メンバ変数の一覧を見ることができます。
TABキーでTreeバッファとMemberバッファを切り替えます。
TreeバッファでTABキーを押した場合、その直前に開いていたMemberバッファの内容が表示される点に留意してください。
3.2 ショートカット
RETキー | 定義場所のファイルを開く |
TABキー | TreeバッファとMemberバッファの切り替え |
Lキー vキー | メンバ変数を表示 |
Lキー Vキー | staticなメンバ変数を表示 |
Lキー fキー | メンバ関数を表示 |
Lキー tキー | 定義された型を表示 |
Lキー Fキー | staticなメンバ関数を表示 |
Lキー pキー | メンバ変数、メンバ関数の表示を切り替える |
Lキー nキー | メンバ変数、メンバ関数の表示を切り替える |
4 Doxygenの簡単な使い方
Doxyfileやdoxyfileがない場合はdoxygen -gで作成する必要があります。
doxygen/html/index.htmlをemacsのw3mパッケージで開くと良いでしょう。
$ doxygen -g $ sed -i -e 's/^INPUT *= */INPUT = ./g' \ -e 's/^RECURSIVE *= *NO/RECURSIVE = YES/g' \ -e 's/^OUTPUT_DIRECTORY *= */OUTPUT_DIRECTORY = doxygen/g' Doxyfile $ doxygen
cppcheckではdoxyfileが用意されており、Class Hierarchyのページは以下のようになります。
doxygen用のコメントにも対応しており、表示に時間がかからないので、こちらのが良いでしょう。