ReSharper 2020.1ヘルプ

インレイ・ヒント

インレイヒントは、コードの読みやすさを向上させる構成可能なエディター装飾です。

パラメーター名ヒント

メソッド呼び出しで名前付き引数(英語)を記述する代わりに、ReSharperのパラメーター名ヒントを使用できます。これは、メソッド呼び出しで対応する引数の隣にパラメーター名を表示するエディターの装飾です。

次のメソッド呼び出しを考えてみましょう。

AddCheckbox(true, true, "AutoFill", null);

このコードを読むときは、ここで何が起こるかを理解するために、メソッドシグネチャーを停止して調査する必要があります( パラメータ情報ツールチップを使用するか、メソッド宣言に移動することで実行できます)。パラメーター名のヒントを使用すると、同じ呼び出しがより明確になります。

ReSharper: inline parameter name hints help understanding arguments in a method call

パラメーター名のヒントの考え方は、インテンションが明確ではない可能性のある引数のパラメーター名を自動的に表示することですが、同時に、引数の目的が明らかなヒントでエディターを乱雑にしないことです。呼び出し。これを実現するために、ReSharperは多くの構成可能なヒューリスティックを適用します。

型名のヒント

型名のヒントは、異なるコンテキストで変数と式が持つ型を理解できます。例:

  • 匿名型

    ReSharper: Inlay hints. long type name
  • ラムダ式のパラメーター

    ReSharper: Inlay hints. lambda expression parameter
  • コールチェーンでメソッドのタイプを返します。

    ReSharper: Inlay hints return type in call chain

他の多くの場合。

必要に応じて、特定のケースごとにタイプ名のヒントを構成できます。

欠落している構成ヒント

ReSharperは、インレイヒントを使用して、関数で欠落しているリターンとswitchステートメントで欠落しているブレークを表示できます。これにより、不足しているものをすぐに理解できます。

ReSharper Inlay hints: missing return

ReSharperオプション(Alt+R,O)のコード・インスペクション | 設定ページの不足している構造をエディターのヒントとして表示するチェックボックスを使用して、これらのヒントを有効または無効にできます。

パラメーター名ヒントの構成

ReSharperオプション(Alt+R,O)の環境 | エディター | インレイ・ヒントページで、パラメーター名のヒントを切り替えて構成できます。インレイヒントを表示するを使用してヒントを切り替えてから、オプションで他のコントロールを使用して、ヒントを表示または非表示にする場所を指定します。

パラメーター名ヒント
パラメーター名ヒントを表示する

パラメータ名のヒントを有効または無効にできます。

非リテラル用に非表示

変数、リソース、式、または呼び出しである引数に対するパラメータ名のヒントを非表示にして、特定の種類の非リテラル引数に対して例外を設定できるようにします。

ビルダーのようなメソッドの非表示

System.Text.StringBuilder(英語)のメソッドと同様のメソッドのパラメータ名ヒントを非表示にします。このメソッドは、そのクラスを含む変更されたオブジェクトを返します。このようなメソッドの名前は、通常、そのパラメータの目的を明確にします。

メソッドパラメータが番号付き接尾辞だけ異なる場合は非表示にする

次のようなシグネチャーを持つメソッドを呼び出すときに、パラメータ名のヒントを非表示にします。

void DoSomething(int arg0, int arg1, int arg2, int arg3) {/*...*/}

メソッド名から最初のパラメータのインテンションがわからない場合は非表示にする

シグネチャーが類似したメソッドを呼び出すときに、最初の引数にパラメータ名のヒントを隠す

void SetExtension(string extension, object next) {/*...*/}

引数のインテンションが使用箇所から明らかな場合は隠す

シグネチャーが類似したメソッド

void DoSomething(int value, object context) {/*...*/}
メソッドがそのように呼び出された場合、value パラメータ名のヒントを隠します
DoSomething(myValue, context: null);

他の設定とは関係なく、パラメーター名のヒントが常に非表示になるメソッドパターンのリストを構成できます。

パターンは、完全修飾メソッド名、パラメータ数、およびパラメータ名と照合されます。例:

  • System.Math.* は、FQNが System.Mathで始まるすべてのメソッドに一致します。

  • System.Math.*(*, *) は、System.Math 名前空間のすべてのメソッドを2つのパラメータと照合します。

  • (*info) は、パラメータ名が infoで終わるすべての単一パラメータメソッドに一致する

  • (key, value) は、すべてのメソッドとパラメータ key および valueを一致させます。

  • Put(key, value) はすべての Put メソッドを keyvalueに一致させます

タイプ名のヒント
コンパクトなタイプ名のプレゼンテーションを使用する

型名が長すぎる場合があります。例:いくつかのフィールドを持つ匿名型は次のようになります。

ReSharper: Inlay hints. long type name

このオプションを有効にすると、短縮されたタイプ名がヒントに表示されます。ヒントの上にマウスを置くと、完全なタイプ名が表示されます。

ReSharper: Inlay hints. compact type name
メソッドの戻り型名のヒントを表示する

このオプションを使用して、コールチェーンのメソッドの戻り型の型名ヒントを有効または無効にします。チェーンの次のメソッドが新しい行に記述されている場合、これらのヒントはメソッドの後に表示されます。

ReSharper: Inlay hints return type in call chain

子オプションを使用して、この種のヒントの例外と表示を構成します。

暗黙的に型付けされた変数の型名のヒントを表示する

このオプションを使用して、varのタイプ名のヒントを表示または非表示にします。

子オプション変数のタイプが明らかな場合は非表示はデフォルトで有効になっているため、この種のヒントは、タイプを理解するのに必要でない場合には表示されません。ReSharperが明らかと考えるケースの詳細については、明確な場合は 'var' を使用する: 明らかと考えられるものは何ですか?を参照してください。

パターンマッチング式のタイプ名のヒントを表示する

このオプションを使用して、C#パターンマッチング式(英語)var、再帰パターン、およびタプルのタイプ名ヒントを表示または非表示にします。例:

ReSharper: Inlay hints. pattern matching
ラムダ式パラメーターの型名のヒントを表示する

このオプションは、ラムダ式のパラメーターの後に型名のヒントを有効にします。

ReSharper: Inlay hints. lambda expression parameter

子オプションパラメータのタイプが明らかな場合は非表示はデフォルトで有効になっているため、この種のヒントは、タイプを理解するのに必要でない場合には表示されません。ReSharperが明らかと考えるケースの詳細については、明確な場合は 'var' を使用する: 明らかと考えられるものは何ですか?を参照してください。

LINQクエリでクエリ範囲変数のタイプ名のヒントを表示する

このオプションは、LINQ式(英語)でタイプ名のヒントを有効にします。

ReSharper: Inlay hints in LINQ expressions
型名が変数名から明らかな場合は非表示

このオプションは、次のような場合にパラメーターヒントを非表示にします。

ReSharper: Inlay hints in evident cases

キャレットがインレイヒントのあるコードアイテムにある場合、Alt+Enterを押してインレイ名のヒントを構成するを選択するか、代わりにパラメーターヒントを右クリックして、次のいずれかのコマンドを選択できます。

  • メソッドのすべての呼び出しのパラメーターヒントを非表示にするか、現在のアイテムに適用される名前ヒントを入力します(無効にしたヒントを表示する場合は、オプションページで対応するアイテムまたは例外パターンを見つけて削除できます)。

  • インレイヒントを完全に無効にします(オプションページで後で有効にできます)。

  • 詳細設定のオプションページを開きます。

ReSharper: configuring parameter name hints from the Alt+Enter menu

Ctrl+Shift+Alt+5 ショートカットまたはステータスインジケーターのコンテキストメニューから現在のソリューションのパラメーター名のヒントを切り替えることもできます。

ReSharper; switching parameter name hints from the status indicator

インレイヒントの色はVisual Studioオプションで構成できます。ツール | オプション | 環境 | フォントおよび色に移動し、表示項目のリストでReSharperインレイヒントを見つけます。

異なる言語での適用性

この機能は、次の言語とテクノロジでサポートされています。

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is availableFeature is availableFeature is availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not available

C#の機能の使用方法については、こちらの説明と例を参照してください。他言語の詳細については、言語によるReSharperの対応するトピックを参照してください。

最終更新日: 2020年5月27日

関連ページ:

パラメータ情報

関数呼び出しを書いたり調べたりしているときはいつでも、ReSharperは関数のすべてのオーバーロードに対して許可された引数に関する詳細を表示できます。ツールチップでは、パラメータを持つすべてのパブリックシグニチャと、存在する場合は関数のドキュメントから取得した簡単な説明が表示されます。また、パラメ...

宣言に移動

このコマンドを使用して、任意のシンボル使用からシンボルの宣言に移動します。このコマンドは、ソリューションエクスプローラー、ファイル構造ウィンドウおよびその他のツールウィンドウから呼び出すことができます。反対方向(シンボルの使用箇所)にナビゲートするには、すでにシンボル宣言にいるときに宣言に移動コマン...

コードの構文スタイル: 名前付き/位置引数

特定のタイプのパラメーターに名前付き引数を使用したい場合は、ReSharperを使用してこのプラクティスを実施できます。次のメソッド呼び出しを考えてみましょう。 AddCheckbox(true, true, "AutoFill", null); このコードを読むときは、メソッドシグネチャーを停止し...

コードの構文スタイル: 暗黙的/明示的な型指定 ('var' キーワード)

C# 3.0で導入された暗黙的に型指定されたローカル変数(キーワードとも呼ばれる)の使用は、多くのシナリオで読みやすさを向上させるため、非常に人気があります。デフォルトでは、ReSharperはキーワードの使用も推奨していますが、その使用のプリファレンスは柔軟に構成可能です。たとえば、特定のケースま...

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

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

異なる言語でのReSharperの機能

以下の表は、各ReSharper機能がサポートされている言語/技術を説明しています。言語固有の機能のみを一覧表示し、プロジェクト依存関係図、名前空間の調整リファクタリング、スタックトレースエクスプローラー、最近のファイルを見るなどのプロジェクト/ソリューションのスコープには多くの機能は含まれていませ...