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

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

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

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

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