ソースコードの可視化ツールSourcetrail × VSCodeを試してみた

Sourcetailとは

www.atmarkit.co.jp

インタラクティブな依存関係グラフや簡潔なコードビュー、効率的なコード検索
といった機能を組み合わせ、ソースコードの概要と詳細情報を提供する.

ソースコード可視化ツールです.ソースコードリーディングの際に役に立つツールだと思います.

Sourcetrailのインストール

以下の記事参照.Javaを利用する場合は,事前にJDKを設定する必要があります.

www.softantenna.com

VScode拡張設定

いつも拡張機能をインストールするように,「sourcetrail」と検索してインスコ
その後,設定に移動し,「sourcetrail」で検索して,
「Sourcetrail: Start Server At Startup」にチェックを入れます.

SourcetrailとVScodeTCPで相互接続されます.
VSCodeのPortが「6666」,SourcetrailのPortが「6667」にデフォルトではなってるはずです.

f:id:xrdnk:20200201002155p:plain
VSCode画面側
f:id:xrdnk:20200201002156p:plain
Sourcetrail画面側

実際に使ってみる

サンプルコードは以前自分が記事に上げた「Factory Method」パターンを利用します.

xrdnk.hateblo.jp

検索欄に「overview」を入力するとこんな感じになります.
最初に「Create!」するとこの画面になります.

f:id:xrdnk:20200201002526p:plain f:id:xrdnk:20200201002354p:plain

ここで適当にフィールドやメソッドをクリックすると画面が変わります.
ライブラリや依存関係や色々わかりやすく可視化されます.
個人的にUMLの上位互換だと思います.

f:id:xrdnk:20200201003709p:plain

Sourcetrail ⇄ VSCode

Sourcetrailでは参照したい部分に「Ctrl + 左クリック」でVSCodeもそちらにジャンプします.
逆にVSCodeでは,参照したい部分に「右クリック -> Sourcetrail: Send Location」をすることで
Sourcetrailもジャンプし,可視化画面が変わります.

対応言語

C/C++JavaPythonは対応しているのですが,残念ながらC#は対応してない?みたいです.
色々調べたりUnityC#でできないから試してみましたが,本日の時点ではできず….
SourcetrailDBについてもうちょっと知ればできるかな?
issues#398を見ると,C#はまだ対応してない感じっぽい.

github.com

暫くJava用に使おうかと思います.
特に仕事用かな…ソースコードが莫大で解読時間が減りそうだ…
Javaの勉強の時にも利用します.