Java のフォーマットとリント
Language Support for Java™ by Red Hat は、フォーマット設定も提供します。Eclipse のフォーマッタファイルをエクスポートし、それを VS Code のプロジェクトで使用できます。
さらに、Checkstyle for Java や SonarLint 拡張機能もあり、ライブリントやコード分析の機能を提供します。
フォーマッタ
ドキュメントのフォーマット コマンドを使用して、Java ファイルをフォーマットできます。事前にフォーマッタプロファイルを指定しなかった場合、Java ファイルはデフォルト設定を使用してフォーマットされます。
フォーマッタ設定の適用
Eclipse スキームの既存のフォーマッタプロファイルから、フォーマッタ設定を簡単に適用できます。たとえば、Java プロジェクトに Google スタイルを適用したい場合は、settings.json
に次のプロパティを設定します。
"java.format.settings.url": "https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml",
このプロパティには、URL またはローカルファイルのパスを設定できます。フォーマッタの XML ファイルに複数のプロファイルが含まれている場合は、プロファイル名を指定できます。
"java.format.settings.profile": "GoogleStyle",
フォーマッタプロファイルを設定した後、ドキュメントのフォーマット コマンドは、指定されたプロファイルを使用して Java ファイルをフォーマットします。
フォーマッタ設定の編集
Extension Pack for Java には、既存のフォーマッタプロファイルの編集を支援するエディターが用意されています。Java: Open Java Formatter Settings with Preview コマンドでエディターを開くことができます。エディターでは、フォーマッタ設定を変更し、その効果をプレビューできます。現在のエディターを保存すると、変更はフォーマッタプロファイルに保存されます。
注: フォーマッタ設定エディターは、ローカルのフォーマッタプロファイルのみをサポートします。ワークスペースにリモートのフォーマッタプロファイルが含まれている場合は、
.vscode
フォルダーにダウンロードするように案内されます。
エディターで設定を編集すると、右側の プレビュー パネルで変更の効果をプレビューできます。
変更を元に戻したり、やり直したりすることもできます。
SonarLint
SonarLint は、コーディング中にバグやセキュリティの問題を発見し、修正するのに役立つ使いやすい拡張機能です。この拡張機能はバックグラウンドで実行され、スペルチェッカーのように、品質やセキュリティ上の懸念があるソースコードの問題をハイライトします。この拡張機能は、問題が何であるかを伝えるだけでなく、なぜそれが有害なのか、どのように修正するのかについて、例を挙げて状況に応じたガイダンスを提供します。500以上の Java ルールをサポートし、特定の品質問題を自動的に修正するためのいくつかのクイックフィックスを含んでいます。
オンザフライでのコード分析
問題はエディター内で直接ハイライトされ、ホバーで詳細な説明が表示されます。
開いているファイルで見つかった問題は、VS Code の問題パネルからも確認できます。該当する場合、問題の発生源を理解できるように、二次的なコードの場所が示されます (たとえば、バグにつながったコードパスなど)。
ルールのドキュメントと修正ガイダンス
検出された問題については、SonarLint は違反したルールと、それに関連するベストコーディングプラクティスについての完全なドキュメントを提供します。これにより、なぜ問題が提起されたのか、そしてどのようにそれを修正するのかを理解することができます。
より多くの品質とセキュリティのルールを有効にする
デフォルトでは、SonarLint はバグや脆弱性を検出するための幅広いルールを提供します。SonarLint Rules ビューから、さらに多くのチェックを有効にすることができます。
SonarLint for VS Code 拡張機能の詳細については、SonarLint のウェブサイトをご覧ください。
Checkstyle
Checkstyle for Java 拡張機能を使用すると、既存の checkstyle
設定 (Google または Sun のチェック) や、プロジェクト用にカスタマイズした独自のファイルを使用できます。Java ファイルを編集中、拡張機能はファイル形式をチェックし、可能であればその場でクイックフィックスを提供します。
Checkstyle: Set the Checkstyle Configuration File コマンドを使用して Checkstyle の設定ファイルを設定し、ドロップダウンから Checkstyle ファイルを選択します。
Checkstyle for Java 拡張機能は、ライブリントをサポートしています。
そして、バッチチェックも可能です。
ステータスバーの Checkstyle ステータスアイコンをクリックすると、問題パネルが開きます。
Checkstyle の設定ファイルを設定する
設定ファイルを設定するには、.xml
ファイルを右クリックし、Set the Checkstyle Configuration File を選択します。
また、Checkstyle: Set Checkstyle Configuration File コマンドを実行して、ファイルエクスプローラーで設定ファイルを選択することもできます。この拡張機能は、Checkstyle の設定を容易にするために、ワークスペース内の checkstyle.xml
ファイルを探します。また、2つの組み込み設定も表示されます。
- Google's Check
- Sun's Check
Checkstyle: Set the Checkstyle Configuration コマンドは、潜在的な Checkstyle 設定ファイルを検出し、それらを一覧表示します。入力ボックスに直接 URL を書き込むことで、設定ファイルを提供することもできます。
Checkstyle: Set the Checkstyle Version コマンドを使用して、Checkstyle のバージョンを設定することもできます。
このコマンドは次のことを行います。
- メインリポジトリから最新の Checkstyle バージョンを一覧表示します。
- ダウンロードされたすべてのバージョンを一覧表示します。
- サポートされているすべてのバージョンを一覧表示します。
- 現在使用されているバージョンをチェック記号でマークします。
さらに、パスを設定することで、Checkstyle 用のサードパーティモジュールを取り込むこともできます。たとえば、以下の設定を使用した後、<module name="SingleBreakOrContinueCheck"/>
または <module name="com.github.sevntu.checkstyle.checks.naming.SingleBreakOrContinueCheck"/>
を checkstyle.xml
に追加して、それらのチェックを使用できます。
"java.checkstyle.modules": [ "${workspaceFolder}/src/main/resources/sevntu-checks-1.35.0.jar" ]
スタイルをチェックし、違反を修正する
Java ファイルを編集中、拡張機能はファイル形式をチェックし、可能であればクイックフィックスを提供します。エディターの電球ボタンをクリックすると、利用可能なクイックフィックスが表示されます。
Checkstyle for Java の詳細については、その GitHub リポジトリをご覧ください。