ReSharper 2024.1 ヘルプ

設計時にコードの問題を分析する

ReSharper は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。

デザインタイムインスペクションの機能

ReSharper によって実行されるデザインタイムコードインスペクションを説明するために、エディターに表示された次のコードの抜粋を考えてみましょう。

ReSharper: Design-time code inspection

この例では、ReSharper コードインスペクションの次の機能を確認できます。

  1. 中優先度のコードの問題(この場合、命名スタイルと一致しないシンボル名に関する警告)は、中向きの下線でハイライトされます。

  2. 優先度の低いコードの問題(この場合、未使用のパブリックメンバーに関する提案)はグレー表示されます。

  3. ステータスインジケータは、現在のファイルにコードの問題があるかどうかをすばやく確認できます。

  4. コード分析のヒントを使用すると、関数の戻り値の欠落、switch ステートメントの中断の欠落、破棄されたリソースに気づきやすくなります。

  5. インポートされていないタイプに対して表示される修正ポップアップ。Alt+Enter を押すか、このポップアップをクリックするだけで、ReSharper がファイル内のすべてのタイプに不足しているディレクティブを追加します。詳細については、欠落している名前空間をインポートするを参照してください。

  6. 警告に対応するマーカーがマーカーバーに表示されます。

  7. エラーに対応するマーカーがマーカーバーに表示されます。

  8. ReSharper に何か提案がある場合に、キャレット位置の左側に表示されるアクションインジケーター

  9. 優先度の高いコードの問題(この場合、未解決のシンボルと誤ったリターンタイプに関連するエラー)は、赤いテキストと赤い下線でハイライトされます。

  10. 提案に対応するマーカーがマーカーバーに表示されます。

  11. Alt+Enter を押すか、アクションインジケーターをクリックして開くことができるアクションリストには、キャレットでの問題のクイックフィックスのリストが含まれています。

  12. ソリューション全体の分析が有効になっている場合、ReSharper を使用すると、さらに多くのコードの問題を確認できます。この例では、未使用のパブリックメンバーを検出し、ソリューション内の他のファイルのエラーを通知します。ソリューション全体の分析アイコンをクリックして、検出された問題を調べます。

  13. キャレットの問題の簡単な説明がステータスバーに表示されます。

問題の説明を表示

コードの問題ごとに、ReSharper は、いくつかの方法で表示できる簡単な説明を提供します。

  • キャレットがハイライトされたコードにあるときに、ステータスバーの左下隅を確認します。

    ReSharper: Problem description in status bar
  • キャレットがハイライトされたコードにあるときに Ctrl+K, I を押すと、ツールヒントに問題の説明が表示されます。あるいは、ハイライトされたコードの上にマウスを置きます。

    ReSharper: Problem description in status bar
  • マーカーバー上のコード発行マーカーの上にマウスを置きます。

    ReSharper: Problem description

設計時コードインスペクションが有効になっている場合は、現在のファイルで検出されたすべての問題(ヒントの重要度レベルを持つものを除く)間を簡単に移動できます。

現在のファイルのコードの問題を移動する

  • 次のコードの問題に進むには F12、前のコードの問題に進むには Shift+F12 を押します。

  • メインメニューから ReSharper | インスペクション | 次のファイルの問題または ReSharper | インスペクション | ファイルでの前回の問題を選択します。

  • エディターウィンドウの右側にあるマーカーバーを使用します。マーカーをクリックすると、対応する問題にキャレットが表示されます。マーカーバーの上部にあるステータスインジケーターをクリックすると、キャレットがファイル内の次の問題に移動します。

  • ステータスインジケータを右クリックして次へ / 前のエラー / 警告 / 提案に進むを選択します。これらのコマンドは、最高の重大度レベルのコードの問題間を移動できます。エラーがある場合、エラー間を移動するだけであり、すべてのエラーが修正されるとすぐに警告間を移動します。

ファイルまたはソリューションのエラーを移動する

  • Alt+F12 を押して次のエラーに進み、Shift+Alt+F12 を押して前のエラーに進みます。

  • メインメニューから ReSharper | インスペクション | 次のエラー / 警告または ReSharper | インスペクション | 前のエラー / 警告を選択します。

  • ソリューション全体の分析が有効で、エラーがいくつかある場合は、エラーの数がステータスバーの右端に表示されます。この番号をクリックすると、ソリューションの次のエラーに移動できます。

デザイン時のインスペクションはいつ無効になりますか?

デフォルトでは、設計時コードインスペクションはサポートされているすべての言語で有効になっていますが、現在のファイルで分析を使用できない場合がいくつかあります。ステータスインジケータの一時停止アイコン Code analysis paused によって、コードインスペクションが無効になっているファイルを認識できます。

設計時インスペクションはグローバルに無効になっています

ReSharper オプション Alt+R, Oコードインスペクション | 設定ページでコード分析を有効にするを選択すると、再度有効にすることができます。

コードインスペクションは現在のファイルで無効になっています

現在のファイルはコード分析から除外されます。ファイルは、そのファイルを含むフォルダーによって、または ReSharper オプション Alt+R, Oコードインスペクション | 無視されたコードページのスキップする要素セクションのファイルマスクによって明示的にリストされます。

Control+Alt+Shift+D8 を押すと、現在のファイルのコード分析を切り替えることができます。これにより、スキップする要素リストに追加またはスキップする要素リストから削除されます。

ファイルが大きすぎるため、デザイン時コードインスペクションが無効になっています

パフォーマンスとメモリ消費を最適化するために、ReSharper は、300 キロバイトを超えるファイルで設計時のインスペクションを自動的に無効にします。このような各ファイルで Control+Alt+Shift+D8 を押すと、コード分析が有効になります。

ファイルはソリューションに含まれていないため、分析されません

ReSharper には、各ファイルで使用されているシンボルと参照を分析するためのソリューションモデルが必要です。現在のソリューションに含まれていないファイルを分析することはできません。

これは、逆コンパイルされたファイルや、コンパイルされたコードを移動するときに開くシンボルサーバーからのファイルでよく発生します。意味のある編集を行う方法がないため、通常、このようなファイルを分析することは望ましくありません。

一方、システムファイルマネージャーまたはファイル | 開くを介してファイルをドラッグアンドドロップして編集するためにファイルを開いた場合は、ファイルが属するソリューションを開くか、現在のソリューションにファイルを含める必要があります。(ターゲットプロジェクトを右クリックして、追加 | 既存のアイテムを追加を選択します)。

ファイルの分析中に内部エラーが発生しました

まれに、ReSharper がファイルを分析できない内部エラーが発生することがあります。このような場合は、分析インデックスを消去して IDE を再起動します。ReSharper オプション Alt+R, O環境 | 一般ページでキャッシュのクリアをクリックします。

コードインスペクションは部分的に無効になっています

ファイルが明示的に、その包含フォルダーによって、または生成されたコードを含むものとしてファイルマスクによってリストされている場合、設計時コードインスペクションは、そのファイルの構文およびコンパイラーエラーのみを報告します。

インスペクションオプションメニュー

推奨される修正の他に、各構成可能コードインスペクションおよびカスタムインスペクションについて、ReSharper はアクションリストにインスペクション [ インスペクション名 ] ThemedIcon.Settings.Screen.(Gray).png サブメニューを表示し、以下の項目を含みます。

Inspection [name of inspection] sub-menu

類似問題を見つける

ハイライトされた問題をクイックフィックスで修正するだけでなく、ソリューション全体またはより小さな範囲で、すべての類似の問題(同じコードインスペクションで検出されたすべての問題)を検索して調査することができます。

類似問題を見つける

  1. エディター内のハイライトされた問題にキャレットを置きます。

  2. Alt+Enter を押すか、キャレットの左側にあるアクションインジケーターをクリックして、アクションリストを開きます。

  3. 現在のファイルで同様の問題を見つけるには、インスペクション [ インスペクション名 ] | [ ファイル名 ] ファイルで同様の問題を見つけるを選択します。

  4. 現在のプロジェクトまたはソリューションで類似の問題を見つけるには、サブメニューを展開して目的のスコープを選択します。

    ReSharper: Using action list to find similar issues
  5. 必要に応じて、ソリューション内の任意のプロジェクトまたはソリューションフォルダーで同様の問題を検索できます。これを行うには、サブメニューでカスタムスコープで同様の問題を見つけるを選択します。

    開いたダイアログで、目的のプロジェクトまたはソリューションフォルダーの名前を入力し、OK をクリックします。

    ReSharper: Specifying search scope for the similar issues
  6. 見つかった問題はすべて、インスペクション結果ウィンドウに表示されます。

Visual Studio コードインスペクションコントロールとの統合

バージョン 2015 以降、Visual Studio には独自のコード分析エンジン (Roslyn) が付属し、リファクタリングとエラー修正を実行するための独自のクイックアクション機能が提供されます。

Visual Studio のクイックアクションは、多くの場合、ReSharper のクイックフィックスコンテキストアクション、またはリファクタリングと同じ修正を実行します。一部のエラーについては、Visual Studio と ReSharper から 2 つの同様の提案がある場合があります。次の図では、冗長な using ディレクティブを削除することを提案している 2 つのバルブを見ることができます。

Two light bulbs for fixing the same issue

これを回避するために、ReSharper は、ReSharper オプション Alt+R, O環境 | エディター | Visual Studio の機能ページにエディターの左マージンにあるクイックアクションインジケーターセレクターを提供します。

必要に応じて、エディターで Visual Studio のエラーハイライトを無効にして、ReSharper で見つかったコードの問題のみがハイライトされるようにすることもできます。これを行うには、ReSharper オプションの環境 | エディター | Visual Studio の機能ページで Visual Studio 波線を非表示を選択します。

関連ページ:

コードインスペクション

ReSharper は、サポートされているすべての言語で 2500 を超えるコードインスペクションを提供します。これらのインスペクションは、開いているすべてのファイルの設計時にコードの問題を検出してハイライトするために適用されます。また、特定の範囲内のすべてのコードの問題を検出するために適用されます。インスペクション ReSharper が提供するコードの種類を調べるには、異なる言語の ReSharper コードインスペクションの全リストをご覧ください。コードインスペクションは、以下のグループに分...

ネーミングスタイル

ReSharper は、コード内のシンボルの希望する命名スタイルを定義、制御、適用できます。一連のルールがあり、各ルールは一連の制約を持つ特定の識別子を対象とします (たとえば、ルールは静的プライベート読み取り専用フィールドを対象にすることができます)。各ルールには、複合語、アンダースコア、サフィックス、プレフィックスなどの大文字化を定義する 1 つ以上の関連スタイルを含めることができます。これらのルールは、ReSharper がコード補完およびコード生成機能を使用して新しいコードを生成し、コー...

インレイヒント

インレイヒントは、コードの読みやすさを向上させる構成可能なエディターの装飾です。プッシュツーヒントモード:インレイヒントは役立つ場合がありますが、一方で、エディタースペースを取り、場合によっては冗長に見えることがあります。プッシュツーヒントモード(デフォルトで有効になっている)を使用できます。ヒントを非表示にして、Ctrl キーを押したままにすることで必要な場合にのみヒントを表示できます。このモードでは、Ctrl を 2 回押して、現在のエディタータブのヒントを切り替えることもできます。インレイヒ...

欠落している名前空間をインポートする

ファイルに名前空間がインポートされていない型を使用する場合、ReSharper はこれらの型を見つけて不足している名前空間インポートディレクティブを追加できます。たとえば、ファイルにコードのブロックを貼り付けた後など、未解決の型にいくつかの不足している名前空間がある場合、ReSharper はこれらすべての名前空間を 1 回の操作でインポートできます。ReSharper は、現在のプロジェクトで参照されているアセンブリ、ソリューション内の他のプロジェクトで参照されているアセンブリ、推移的に参照さ...

アクションインジケーターとアクションリスト

ReSharper が Visual Studio テキストエディターに追加する最も注目すべきものの中には、アクションインジケータとアクションリストがあります。これらは、ReSharper でサポートされているすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NET など)に表示され、使用可能なアクションについて通知し、適用できます。アクションインジケータ:アクションインジケーターは、設定に応じて、アクションバー、テキストエディターの左マージンおよび / また...

ソリューション全体の分析

ソリューション全体の分析により、プロジェクトのコンパイルを妨げないものを含め、サポートされているすべての言語 C++ を除くでエラーが検出されます。プロジェクトにそのようなファイル (JavaScript、CSS、HTML など) が含まれている場合、ソリューション全体の分析は、実行時にしか検出できないエラーを見つけるのに役立ちます。ReSharper のソリューション全体の分析では、2 つの関連しているが異なる機能が実現します。ソリューション全体のエラー / 警告モニター:ReSharper 自...