Clang-Tidy インテグレーション
Clang-Tidy(英語) は、一般的な Clang コンパイラーに基づいた強力なオープンソースコード解析ツールです。 典型的なプログラミングエラーのための広範な一連のコードチェックとそれに伴う修正が付属しています。
JetBrains Rider は Clang-Tidy とのシームレスな統合を提供します。 これは、ファイルを編集すると、JetBrains Rider が別プロセスとしてバックグラウンドで Clang-Tidy を実行し、インスペクション結果が他の JetBrains Rider のインスペクションと一緒に表示されることを意味します。 保存されていないファイルは、現在のドキュメントのテキストを一時ファイルに保存し、ディスク上のバージョンの代わりにそれを使用するように Clang-Tidy に指示することにより、透過的に処理されます。
Clang-Tidy インスペクション
Clang-Tidy チェックと JetBrains Rider のインスペクションを区別するには、インスペクションメッセージに追加された角括弧内のチェック名を確認できます:

Clang-Tidy チェックからの診断に加えて、JetBrains Rider は Clang 静的アナライザーからの診断および Clang コンパイラー自体が提供する警告も発行します。 すべてに対応する 構成可能な重要度レベルがあり、これは ニーズに合わせて調整可能です。
JetBrains Rider のビルトインインスペクションと重複する一部の Clang-Tidy チェックは、デフォルトで無効になっています。 さらに、 すべての静的アナライザーチェックは無効化されています。これらを有効化すると Clang-Tidy の動作が大幅に遅くなるためです。
ビルトインインスペクションと同様に、インスペクションコンテキストメニューを使用して Clang-Tidy チェックの重要度をすばやく変更、 コメントで抑制 (特定のスコープまたはグローバルで)、または すべての同様の問題を検索して調査できます。 特定のチェックのオンラインドキュメントページを開く追加のアクションもあります。

Clang-Tidy の修正
JetBrains Rider では、Clang-Tidy が提供する修正を独自の組み込み クイックフィックスのように適用できます。 他の一括修正と同様に、Clang-Tidy 修正は個別に適用することも、 特定のスコープ (ファイル、フォルダー、プロジェクト、ソリューション) 内で適用することもできます。

デフォルトでは、JetBrains Rider は Clang-Tidy 修正によって変更された コードを整形してコードスタイルを維持します。 この動作は、 ページの JetBrains Rider 設定 Ctrl+Alt+S の Clang-Tidy 修正を適用した後に変更されたコードを再フォーマットする 設定で無効化できます。 この設定を無効にすると、Clang-Tidy 修正の実行が高速化されます。
コードのクリーンアップによる Clang-Tidy 修正の適用
Clang-Tidy の修正は コードのクリーンアップ でも適用できます。 ビルトインのコードクリーンアッププロファイルには、利用可能なすべての Clang-Tidy 修正が含まれていません。そのため設定する場合は、リストから Clang-Tidy プロファイルを選択し、隣にあるオプションボタンをクリックして、必要なチェックをすべて選択してください。これらのチェックは、このプロファイルで コードのクリーンアップを実行した際に実行されます。

選択された修正は、該当するインスペクションが JetBrains Rider 設定 Ctrl+Alt+S の ページでオフになっている場合でも適用されます。 一度に多くのチェックを有効にする場合は注意してください — コードのクリーンアップは、特定のファイルに対して Clang-Tidy を 1 回だけ実行するため、複数の修正が同じコードブロックに触れると、変更が互いに競合する可能性があります。
Clang-Tidy の設定
JetBrains Rider は独自の Clang-Tidy 構成を作成しないため、ユーザーが用意したものを選択できます。 Clang-Tidy は、ソースファイルの最も近い親ディレクトリにある .clang-tidy ファイルから各ソースファイルの構成を読み取ろうとします。 ここでのソースファイル(他の JetBrains Rider インスペクションと同様)は、分析が実行される場合は .cpp ファイル自体となり、ヘッダーファイルで分析が実行される場合は、そのヘッダーを含むランダムな .cpp ファイルです。 または、 ページの JetBrains Rider 設定 Ctrl+Alt+S で 特定の clang-tidy 構成ファイルを使用する 設定を選択して構成ファイルの場所を指定できます。
Clang-Tidy バイナリの -checks コマンドラインオプションは、有効なチェックのリストを渡すために使用され、それが Clang-Tidy 設定から読み取った checks オプションの値に追加されます。 -checks 引数を構築するために、JetBrains Rider は JetBrains Rider 設定 の ページにある 有効 / 無効な Clang-Tidy チェックのリスト 設定の値を取得し、さらに Ctrl+Alt+S を経由して、 オプションページで無効化されているチェック名を追加します。
デフォルトでは、JetBrains Rider は Clang-Tidy 20.0.0 の組み込みバイナリを使用します。 JetBrains Rider で他の Clang-Tidy バイナリ(バージョン 7 以降)も使用できます。 これを行うには、 ページの JetBrains Rider 設定 Ctrl+Alt+S で追加のオプションがいくつか利用できます:
%PATH% で検索 -
%PATH%環境変数で指定された場所にある Clang-Tidy を使用します。カスタム - 特定の Clang-Tidy 実行可能ファイルを使用します。
必要に応じて、 ステータスインジケーターのコンテキストメニューの Clang-Tidy 分析を有効にする () トグルを使用して、現在のドキュメントで Clang-Tidy 分析を無効にすることもできます。
Clang-Tidy 統合の制限
UTF-16 または UTF-32 エンコーディングを使用するファイルは Clang によって読み取られないため、現時点では Clang-Tidy ではサポートされていません。
Clang-Tidy がコードでクラッシュする場合があり、Windows は「プロセスが動作を停止しました」というメッセージを表示します。 この場合、 ページの JetBrains Rider 設定 Ctrl+Alt+S で現在のソリューションの Clang-Tidy 統合を無効化してください。
カスタム Clang-tidy バイナリ( ページの JetBrains Rider 設定 Ctrl+Alt+S の %PATH% で検索 および カスタム )を使用する場合、バージョン 7 以降のみ利用できます。