Overview Version History Q & A Rating & Review
Empressia Complexity for Java
Javaソースファイルの複雑度を分析して結果を表示します。
Features
以下のメトリクスに対応しています。
保守容易性
Halstead複雑度(Volume)
循環的複雑度
実行可能な行数
各メトリクスは、厳密には、他のツールと値が異なるかもしれません。
保守容易性は、Microsoftの以下のサイトを参考にしています。
https://docs.microsoft.com/ja-jp/visualstudio/code-quality/code-metrics-maintainability-index-range-and-meaning?view=vs-2022
表示のサンプルです。
How to use
複雑度分析パネルを表示する
拡張機能をインストールし、有効になると、
コマンドパレットから、複雑度分析パネルを表示できるようになります。
Ctrl + Shift + P
でコマンドパネルを開き、
Show Empressia Complexity Panel
を実行します。
分析を始める
パネル上に表示される入力欄に、ディレクトリやファイルのパスを入力し、
分析するボタンを押すことで分析が始まります。
相対パスは、ワークスペースからのパスとして解釈されます。
分析が終わったら、入力欄の下に結果が表示されます。
結果を確認する
結果は、一般的なツリーUIの操作と同様に、展開したり、閉じたりできます。
クリック……選択、展開する、閉じる
選択しているとき
→……展開する、移動
←……閉じる、移動
↑……移動
↓……移動
展開する操作と閉じる操作は、ヘッダーのボタンでもできます。
……すべて閉じる。
……すべて展開する。
保守容易性は、以下の条件でアイコンが表示されます。
……20以上100以下
……10以上20未満
……0以上10未満
保守容易性のヘッダー左にあるボタンによって、表示条件を変更する(フィルターする)ことができます。
以下の順で切り替わります。
すべてのノードを表示する
20未満を含むノードを表示する
10未満を含むノードを表示する
表示されている結果は、CSVとしてエクスポートできます。
……CSVとしてエクスポートする。
対応するソースファイルを表示する
結果として表示されている名前をCtrl + クリック
することで、対応しているソースコードを表示できます。
Requirements
分析を始めるには、Java17以上の実行環境が必要です。
Java17以上がパス上にない場合は、設定で位置を決めることができます。
分析対象のソースファイルは、Java17以上である必要はありません。
Extension Settings
jp.empressia.complexity.UseDefaultJava
: システムで初期設定されているJavaを使用するかどうかです。未設定では、この設定は有効になります。有効な場合は、jp.empressia.complexity.JAVA_HOME
は無視されます。
jp.empressia.complexity.JAVA_HOME
: 分析用のEmpressia Complexity CLIを実行するために使用するJAVA_HOMEを指定します。
ライセンスなど
この拡張機能は、原則、MITライセンスでの提供となります。
なお、以下のモジュールを含みます。
これらは、それぞれのライセンスの元での、再配布となります。
Empressia Complexity for Java
JavaParser (Apache-2.0 License)
Empressia Complexity CLI
Jackson (Apache-2.0 License)
picocli (Apache-2.0 License)
jQuery (MIT License)
Honoka (MIT License)
Vue3 (MIT License)
トラブルシュート
std maxBuffer length exceeded.
解析結果が多すぎるときに表示されます。
1.1.2で対応予定です。
write EPIPE
画面が復元されているけど、拡張機能が無効になっているときなどに発生します。
拡張機能が有効になっているか確認してください。
spawn ~java ENOENT
Javaが見つからなかった場合に表示されます。
表示されたパスと設定を確認してください。
command failed: ~java ~
Javaのバージョンが合わなかった場合などに表示されます。
使用されているJavaがバージョンJava17以上になっているか確認してください。
Error occurred during initialization of boot layer ~ Unsupported major.minor version 61.0
Javaのバージョンが合わなかった場合などに表示されます。
使用されているJavaがバージョンJava17以上になっているか確認してください。
Known Issues
Release Notes
1.2.1 2022/01/11
1.2.0 2022/01/07
表示条件の変更機能(フィルター機能)を追加しました。
エクスポート機能を追加しました。
分析に失敗すると次の分析を始められない問題を修正しました。
その他、軽微な変更と修正を行いました。
1.1.8 2022/01/06
1.1.7 2022/01/06
1.1.6 2022/01/05
1.1.5 2022/01/05
分析結果がない状況でエラーになる問題を修正しました。
1.1.4 2022/01/04
パスの参照の初期選択位置が固定になっていた問題を修正しました。
分析するボタンに虫眼鏡アイコンを追加して分析中は回転させるなど、処理中であることをわかりやすくしました。
1.1.3 2022/01/04
すべて展開するボタンが、正しく動作しないことがある問題を修正しました。
状態を維持するために必要な容量を減らしました。
1.1.2 2022/01/04
多くのファイルを分析しようとすると、エラーになる問題を修正しました。
1.1.1 2022/01/04
分析に失敗したときにメッセージが表示されないことがある問題を修正しました。
一部の設定が正しく反映されない問題を修正しました。
1.1.0 2022/01/03
裏で警告が出ている問題を修正しました。
パスを参照ボタンから選択できるようにしました。
1.0.0 2022/01/03