ReSharper 2019.2ヘルプ

設計時にコードの課題を検出する

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

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

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

ReSharper: Design-time code inspection

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

  1. 現在のファイルにエラーまたは警告があるかどうかをすぐに確認するのに役立つステータスインジケータ

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

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

  4. 中優先順位のコードの課題(この場合は、名前のスタイルに適合しないシンボル名に関する警告)が青い波の下線で強調表示されます。

  5. 提案課題(3)に対応するマーカーがマーカーバーに表示されます。

  6. マーカーバーには、エラーの発生に対応するマーカー(8)が表示されます。

  7. ReSharperがそこに提案するものがあれば、キャレット位置の左側に表示されるアクション標識

  8. 優先順位の高いコードの課題(この場合、未解決のシンボルや不正な戻り値のタイプに関連するエラー)は、赤いテキストと赤い波線で強調表示されます。

  9. マーカーバーには、警告の課題(4)に対応するマーカーが表示されます。

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

  11. キャレットの課題の簡単な説明がステータスバーに表示されます。強調表示されたコードの上またはマーカーバーの課題マーカーの上にマウスを移動すると、コード課題の説明を表示することもできます。(5,6,9)

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

デザインタイムインスペクションを切り替えます

既定では、デザインタイムコードインスペクションはサポートされているすべての言語で有効です。ただし、必要に応じて、すべてのファイルを無効にしたり、特定のファイルに対して無効にすることができます。コードインスペクションの設定の詳細については、コードインスペクション設定の構成を参照してください。

設計時コードインスペクションを設定する

  1. メインメニューでReSharper | オプションを選択するか、Alt+R,,Oを押し、次に左側のコード・インスペクション | 設定を選択します。

  2. 設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用します。

  3. 必要に応じて、このページでデザイン時のインスペクション機能を有効または無効にすることができます。

    色識別子 このオプションを使用すると、ReSharper 構文強調表示スキームを有効または無効にすることができます。
    これが選択されていると、言語IDは、Visual Studioオプションツール | オプション | 環境 | フォントおよび色で定義されている色で強調表示されます。
    ReSharperによって提供される構文IDのリストはアイテムを表示するリストにあり、それぞれの名前はReSharper接頭部で始まります。
    強調表示カラーの使用箇所

    コード内の色定義の強調表示を有効にします。詳細は、カラーアシスタンスを参照してください。

    文字列リテラルの特殊文字を強調表示する

    非逐語文字列内の正しいおよび不正なエスケープシーケンスの強調表示を有効にします: 例:

    Highlighting of escape sequence in strings
    詳しくは、正規表現のアシスタンスを参照してください。

    コンテキスト終了を強調表示する

    このオプションはデフォルトで有効になっており、制御フローが現在のコンテキストを終了できるすべての場所を強調表示するようにReSharperに指示します。例:メソッドの場合、キャレットをこれらの識別子の1つに設定すると、メソッドの戻り型、すべての return , throw キーワードなどが強調表示されます。

    ReSharper highlights context exits
    ループの場合は、ループキーワードと、このループ内のすべての break ステートメントをさらに強調表示します。
    メソッドがエディターに完全に表示されていない場合は、メソッド名に対して関数出口にナビゲートするコマンドを実行して別の種類の強調表示をトリガできます。キャレットがメソッド名を終了しても消えません。

  4. 必要に応じて、ソリューション全体の分析を有効にするためにソリューション全体の分析を可能にするチェックボックスを選択できます。

  5. 保存をクリックして変更を適用し、ReSharperに保存先を選択させるか、次へ保存リストを使用して特定の設定レイヤーに変更を保存します。詳細については、再シャーパー設定の管理と共有を参照してください。

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

現在のファイルで次の/以前のコードの課題に移動するには

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

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

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

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

次/前のエラーに移動するには

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

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

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

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

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

Inspection [name of inspection] sub-menu

類似課題を見つける

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

同様の課題を見つけるには

  1. 強調表示された課題にエディターでキャレットを設定します。

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

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

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

    Using action list to find similar issues

  5. 必要に応じて、ソリューション内の任意のプロジェクトまたはソリューションフォルダーで同様の課題を検索できます。これを行うには、サブメニューでカスタムスコープで同様の課題を見つけるを選択します。
    表示されたダイアログで、目的のプロジェクトまたはソリューションフォルダーの名前を入力し、OKをクリックします。

    Specifying search scope for the similar issues

  6. 見つかった課題はすべてインスペクション結果ウィンドウに表示されます。

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

バージョン2015以降、Visual Studioには独自のコード分析エンジン(Roslyn)が付属し、独自の電球(英語)機能を提供して、エラーのリファクタリングや修正などの迅速なアクションを実行します。

Visual Studioのクイックアクションは、ReSharperのクイックフィックスコンテキストアクション、またはリファクタリングと同じ修正を実行することがよくあります。エラーによっては、Visual StudioとReSharperから同様の提案が2つあるかもしれません。下の図では、2つの電球が重複した using ディレクティブを削除することを提案しています。

Two light bulbs for fixing the same issue

これを避けるため、ReSharperはReSharperオプションのコード・インスペクション | 設定ページにVisual Studio Light Bulbを表示しないオプションを提供します。このオプションはデフォルトで有効になっているため、重複した電球は無効にしないと表示されません。

Visual Studio電球が抑制されている場合、Visual StudioアクションはVisual Studio電球アクションをReSharper電球にマージチェックボックスを選択することによってReSharperのアクションリストに統合することができます。選択されている場合、ReSharperは各Visual Studioのクイックアクションに対して次のことを行います。

必要に応じて、エディターでVisual Studioのエラー強調表示を無効にして、ReSharperで見つかったコードの課題のみが強調表示されるようにすることもできます。これを行うには、ReSharperオプションのコード・インスペクション | 設定ページでVisual Studioの波紋を抑制するを選択します。

最終更新日: 2019年11月13日

関連ページ:

コード・インスペクション

ReSharperはサポートされているすべての言語で2500以上のインスペクションを提供します。これらのインスペクションは、開いているすべてのファイルで設計時にコードの課題を検出して強調表示するため、および/または特定の範囲内ですべてのコードの課題を見つけるために使用されます。インスペクション Re...

マーカーバーとステータスインジケータ

マーカーバーとステータスインジケーターを使用すると、現在のファイルの設計時コードインスペクションの結果を確認し、コードの課題間を移動できます:また、マーカーバーには、たとえば現在のファイルの使用箇所を強調表示するときに、他のReSharperアイテムの特別なマークが表示されます次の場合、マーカーバー...

Web Linterでコードの検証

ReSharperは、Webコード品質ツール(linterとも呼ばれます) - JSLint、ESLint、およびTSLintと統合して、コード内のさらに多くの問題を検出して修正できます。Linterはコマンドラインツールとして設計されているため、通常はコードを検証するたびに、コンソールに移動して...

不足している名前空間をインポートする

ファイルに名前空間がインポートされていない型を使用する場合、ReSharperはこれらの型を見つけて不足している名前空間インポートディレクティブを追加できます。たとえば、ファイルにコードのブロックを貼り付けた後など、未解決の型にいくつかの不足している名前空間がある場合、ReSharperはこれらすべ...

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

ReSharperがVisual Studioテキストエディターに追加する最も注目すべきものには、アクションインジケータとアクションリストがあります。これらは、ReSharperでサポートされるすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NETなど)に表示され...

コードの課題のクイックフィックス

ReSharperを使用すると、設計時に検出されたほとんどのコード課題を即座に修復できます。強調表示されたコードの課題で を押して、課題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。クイックフィックスの適用:クイックフィックスは、強調表示されたコード...