1.Sourcetrailのインストール
まずは公式サイトからインストーラをダウンロードします。
https://www.sourcetrail.com/downloads
windows版にはinstallerとportableが用意されていますが、好みに合わせて選択すればよいかと思います。
installer版:インストーラが入っている。本体は後からインストールされる。
portable版:初めから全て入っている。ダウンロードした時点で使用可能。
※因みにどちらを選択しても、公式ドキュメント通りに進めると後で躓きます(´・ω・`)
私は、installer派なので、その方法でインストールを行っていきます。
ダウンロードしたインストーラの圧縮ファイルを解凍すると、sourcetrail.msiというファイルがあるはずなので、それをクリックします。
よくあるインストールシーケンスが始まるので画面の指示に従ってポチポチしていきます。
選択もインストール先とショートカット作成くらいだったので特に迷うこともないかと思います。
インストール後、sourcetrailを実行すると、以下のスタート画面が表示され、sourcetrailが起動するはずです。
2.Sourcetrailを使ってみる
2-A 新規プロジェクト作成
初回なのでプロジェクトを作成していきます。
まずは、プロジェクト名とパスを指定するだけの簡単なお仕事です。
次にソースグループを設定していきます。
ソースグループは、sourcetrailがインデックスを作成するための設定です。
インデックスは、sourcetrail上でグラフ表示をするためのもとになるもので、インデックスに登録されたもののみが、sourcetrailで表示されるようになるはずです。
言語としては、C++/C/Java/Pythonが選択できます。
今回はお試しでgoogle-testのソースコードをグラフ表示させてみたいと思うので、C++とPythonの設定を行っていきます。
2-B ソースグループの設定(C++の場合)
C++はその中でもソースグループの設定方法が以下の4つに分かれています。
今回はCDB/VS/CBPは用意せず、Empty C++ Source Groupで進めていきます。
(CDB/VS/CBPを用意すると後々のインデックス作成に要する時間が短くなると予想)
次にC++のバージョン等の設定を行います。
Cross-Compilationについては、未指定時はSourcetrailが自動で選択してくれるので、わかる部分のみ入力すれば問題ありません。
次はインデックスに含めるファイルと除外するファイルを指定します。
基本はFiles & Directories to Indexにプロジェクトのトップディレクトリを指定しておけば良いかと思います。
次はインクルードパスの設定です。
把握していない場合は、auto-detectボタンを押せば、sourcetrailが勝手に必要なパスをインクルードパスに含めてくれます。
(auto-detectの実行は数分程度かかります)
次が、C++最後の設定で、コンパイラのフラグ等を設定します。
特になければ何も設定せずにNextをクリックします。
ソースグループの設定が終わると、最初のプロジェクト作成画面に戻ってきます。
なので、再びAdd Source Groupをクリックして、次のソースグループの設定を行っていきます。
他に設定するソースグループが無い場合は、Createをクリックします。
2-C ソースグループの設定(Pythonの場合)
Pythonの場合はソースグループのタイプはemptyのみなので迷わずこれをクリックします。
Pythonのソースグループも設定自体は必要なのですが、C++に比べると遥かに少ないです。
Pythonのパスと含めるファイルを指定するだけです。
Pythonパスは未入力の場合はデフォルトのパスが使用されます。
Files & Directories to Indexの方はC++同様、プロジェクトのトップディレクトリを指定しておけば良いかと思います。
Pythonのソースグループの設定はこれだけで終了です。
イージーモードなのです。
他のソースグループを設定する予定が無ければ、Createをクリックし、プロジェクト作成を完了させます。
2-D インデックス作成
プロジェクトの作成が完了すると、インデックスを作成するためのウィンドウが表示され、どのようにインデックス作成を作成するかを尋ねられます。
今回は初回なのでall filesを指定します。
Shallow Python Indexingのチェックを入れると、Pythonのインデックス作成を浅く行って、時短できるらしいです(その後ちゃんとしたインデックス作成を再度行うことも可能)。
今回のgoogleテストのプロジェクトは約150ファイルあったのですが、インデックス作成に要した時間は約20分というところでした。
2-E sourcetrail画面イメージ
インデックス作成が完了すると、overviewが表示されます。
この画面がプロジェクトのメイン画面であり、左上の家マークをクリックした際はこの画面まで戻ってきます。
グラフを表示のイメージは以下の感じです。
ソースコード見ながら俯瞰的にその関係性を見れるのはソースを読む助けになりそうです。
細かい機能についてはこれから調べていきたいと思います。
3.VS Code連携
まずは、VS Codeとの連携で何ができるのか?というのが気になるかと思います。
SourcetrailとVS Codeと連携させると、VS Code側で選択したクラス・関数をSourcetrailに表示させることが可能になります。
sourcetrailでわざわざ検索窓に関数名をぶち込まなくてもいいので便利です。
文字と画像だけだと説明が難しかったのでVS Code連携操作のイメージ動画も用意してみました。
本当はもっとすごい連携機能を期待していたのですが、この機能を使いたいと思った人は、以下の手順で設定を行っていきましょう。
まずは、VS Code側にsourcetrailの拡張機能をインストールします。
拡張機能をインストールしたら、設定画面を開き、Sourcetrail: Start Server At Startupにチェックを入れます。
その後、VS Code・sourcetrailを再起動すると、無事に連携が完了しているはずです。
4.終わりに
ドキュメントも本体も英語オンリーなので結構躓きましたが、何とか使用できるところまでたどり着くことができました。
細かい部分の操作方法等は追々調査する必要がありますが、大きいプロジェクトのソースや、OSSのソースを俯瞰的に見たいときに活用していきたいと思います。
5.おまけ
インデックス作成にどれくらい時間がかかるのか試してみた
大きめのプロジェクト(boost 1万ファイル超)でインデックスを作成してみました。
予想以上に時間がかかり、なんと十時間超えです。
平均すると、10ファイルのインデックスに1分程度かかっているみたいでした。
インデックス作成中にタスクマネージャーを確認したところ、ディスク使用率が100%に張り付いていたので、ディスクネックで遅くなっているっぽいです。
(使用PCはHDD×1のラップトップ)
後何故か、インデックス作成中はWifiが数回途絶しました。
iPadは普通にFGOできていたので、電波が届いていないとかではなく、実行中のPCのみ繋がらなくなった感じです。
Wifiを無効化→有効化すると直ったのですが、謎です。
参考
https://www.sourcetrail.com/documentation/
https://qiita.com/mgsk_2/items/b2da73ffbf77a72671a8
コメント