パターンで検索...ReSharper_StructuralSearchSearch場合によっては、正規表現に一致する特定のシンボルやテキストの出現を検索するなどの標準的な検索方法では、目的の結果が得られない場合があります。例:プロジェクトに固有のコードの匂いを見つけたり、リファクタリングする必要があるコードを見つける必要があるかもしれません。ReSharperを使用すると、特定のパターンに一致するコードブロックを検索し、必要に応じて置き換えることができます。これらのブロックはまったく異なる場合があります。異なるタイプ、式、ステートメントなどを含むことができますが、論理的には似ています。ループに一致する一般的なパターンを作成できます。反復されるものとループ内にあるものに関係なく、特定のタイプを反復するループのみを見つけるためにこのパターンをより詳細にすることができます。パターンは必要に応じて複雑にすることができ、必要な詳細レベルを設定できます。カスタムインスペクションおよびクイックフィックスとしての構造パターンの使用は、コード分析セクションの対応するトピックで説明されています作成したすべてのパターンはパターンカタログに格納され、カスタム重大度レベルを持つカスタムコードインスペクションとして機能します。特定のパターンに一致するすべてのコードブロックは、ヒント、提案、警告、またはエラーとしてエディター内で強調表示できます。パターンの「置換」部分で定義されているように、一致したコードブロックを変換できます。検索パターンのプレースホルダパターンは、通常ターゲット言語で許可された識別子のみを含むテキスト部分。改行は無視されることに注意してください。ターゲットコードブロックの可変部分を一致させることができるプレースホルダ。プレースホルダの形式は以下のとおりです。placeholder_nameは任意の識別子です。各プレースホルダは一度定義しなければならず、パターン内で数回使用できます。プレースホルダを定義するときは、その種類とオプションの制約を定義する必要があります。プレースホルダには5種類あります。—メソッド呼び出しの1つ以上の引数。必要に応じて、一致する必要がある引数の最小数または最大数を指定できます。—一連の演算子とオペランド。オプションで、この式によって返されるタイプを指定できます。—任意のシンボル識別子。シンボル名の一致に使用される正規表現を指定できます。—セミコロンまたはステートメントのブロックで終わる単一行ステートメント。必要に応じて、一致する必要があるステートメントの最小数または最大数を指定できます。デフォルトでは、この種類のプレースホルダーはどのタイプにも一致しますが、特定のタイプを明示的に指定できます。パターンの特定の部分に対して正しい種類のプレースホルダを選択することが非常に重要であることに注意してください。パターンが一致するコードブロックと一致しない場合は、間違って選択されたプレースホルダーの種類が問題になることがよくあります。検索パターンの作成コードブロックを検索または置換するか、カスタムコードインスペクションを作成するには、検索パターンを作成する必要があります。既存のコードブロックをパターンのベースとして使用することも、新しいものを最初から作成することもできます。検索パターンを作成するにはエディターで、パターンと一致するコードブロックを選択します。このステップはオプションですが、パターンをすばやく作成できます。選択するか、選択項目があればそれを右クリックし、コンテキストメニューでパターンで検索を選択します。パターンで検索ダイアログが開きます。最初のステップでコードブロックが選択された場合、ReSharperはブロック内のすべてのシンボル名を検出し、プレースホルダーに置き換えます。必要に応じて、コードを編集し、プレースホルダーを追加および削除して、目的のパターンを取得できます。ReSharperは、パターンで使用されているすべてのプレースホルダが適切な定義をダイアログの右側に持つかどうかをチェックします。定義のないプレースホルダがある場合は、赤で強調表示されます。入力するだけで、その定義が自動的に追加されます。常に自動的に追加されるプレースホルダ定義の種類を確認してください。曖昧さなくその種類を定義することは不可能なので、手動で修正したい場合があります。プレースホルダの種類を変更したり、制約を指定するには、右のプレースホルダ定義を選択し、編集をクリックして、プレースホルダ定義を編集します。パターン本体でプレースホルダの使用を削除すると、その定義は自動的に削除されます。プレースホルダ定義を手動で追加および削除することもできます。これを行うには、プレースホルダ定義のリストの上にある対応するボタンをクリックします。同様のコードブロックを一致させるかどうかに応じて、類似の構造に一致するチェックボックスをオンまたはオフにします。ReSharperは、以下の構成体を同様と見なします。波括弧で囲まれた単一行ステートメントとsingle-lineステートメント。バイナリ式は、パターンと逆の順序で指定されます。式で指定された式と、オペランドの順序が異なる式。オペランドが括弧で囲まれた式、およびオペランドが囲まれていない式。接尾辞と接頭辞のインクリメント演算子。異なるアクセス修飾子を持つメソッドReSharperは、パターン本体で基本的なコード分析を実行します。するか、一致するブロックを置き換える方法を定義するか、または単に保存をクリックしてパターンをパターンカタログに保存します。検索パターンごとに置換パターンを追加すると、検索パターンに一致するコードブロックをすばやく置き換えることができます。パターンカタログからパターンを編集するために開きます。パターンで検索ダイアログで、右上隅の置換をクリックします。ダイアログ下部に表示されるパターンを置き換えるエリアで、パターンの置換部分を指定します。パターンで定義されたプレースホルダーを使用してください。一致したコードブロックが置き換えられると、プレースホルダと一致した各コードは、置き換え部分でのこのプレースホルダの位置に従ってコピーされます。置換領域にあるチェックボックスを使用して、フォーマット規則を適用するかどうか、および/または置換されたコードブロック内の完全修飾名を短縮名に置き換えるかどうかを指定します。ReSharperはパターンの置換部分で基本コード分析を実行します。エラーが見つからない場合は、一致するコードブロックを置き換えるか、パターンをパターンカタログに保存します。作成したパターンを保存すると、ReSharperはそれをパターンカタログに配置します。パターンカタログでは次のことができます。パターンをプレビューするには、リストでパターンを選択します。ページの下部には、その本文とプレースホルダの定義が表示されます。パターンを削除するには、リスト内でパターンを選択し、ページツールバーの除去をクリックします。新しいパターンを追加するには、ツールバーのパターンの追加をクリックします。ReSharperはパターンで検索ダイアログを開き、そこでパターンの詳細を指定できます。ReSharperのコードインスペクションエンジンではすべてのパターンが使用されるため、一致するコードブロックは自動的に検出されます。'表示しない'があります。しても一致したコードブロックはエディターで強調表示も検出もされません。コードインスペクションで検索パターンと一致するコードを検出したい場合は、そのパターンに適切な重大度レベルを選択してください。既存のパターンを編集するには、それをダブルクリックするか、選択して、ウィンドウツールバーの編集をクリックします。パターンが編集用に開いている場合、その検索の説明を指定してパーツを交換できます。検索の説明は、カタログ内のパターンを表示するため、およびエディターで強調表示された一致したブロックの説明として使用されます。置換の説明は、クイック修正の名前として表示されます。これは、強調表示されたブロックの候補です。詳細については、カスタムコードインスペクションとクイックフィックスを作成するを参照してください。パターンの「抑制キー」を指定できます。インスペクションを抑制するために使用できる識別子です。コードを見つけてパターンで置き換えるコードを検索してパターンに置き換えるには、次の3つの方法があります。パターンで検索コマンドを呼び出して新しいパターンを作成した直後にコードを検索または置換することができます。置換ボタンをクリックするだけです。あなたのパターンカタログからパターンの1つを使うことができます。カスタム・パターンページのツールバーで検索をクリックします。パターンに一致するコードブロックはエディターで強調表示できます。パターンに置換ロジックが指定されている場合は、コードブロックをクイックフィックスに置き換えることができます。'表示しない'以外のある重大度レベルを指定することです。カスタム・パターンページの各パターンの右側にある対応するセレクターを使用してください。詳しくは、カスタムコードインスペクションとクイックフィックスを作成するを参照してください。最初の2つの方法のいずれかを検索すると、ソリューション内のすべての一致するコードブロックが検索結果ウィンドウに一覧表示されます。結果に探しているものが含まれていない場合は、パターンをすばやく変更して検索プロセスを再度呼び出すことができます。最初の2つの方法のいずれかで置換を実行すると、ソリューション内のすべての置換候補がパターンで置き換えるダイアログに表示されます。このダイアログでは、候補を学習およびグループ化できます。候補のいずれかをダブルクリックして、エディターに含まれているファイルを開くこともできます。表示された候補が置き換えたいものである場合、ダイアログの下部にある置換をクリックします。検索と置換のパターンは共有設定レイヤーに保存でき、チーム全員が利用できるようになります。カスタム・パターンページでパターンを作成する場合は、次へ保存をクリックし、パターンが準備できたら共有設定レイヤーを選択します。共有されていない既存のパターンを共有するには、編集用に開き、強調表示パターンの編集ダイアログでコピーを保存をクリックします。次に、次へ保存をクリックし、共有設定レイヤーを選択します。この機能は、次の言語とテクノロジでサポートされています。C#の機能の使用方法については、こちらの説明と例を参照してください。他言語の詳細については、言語によるReSharperの対応するトピックを参照してください。2020年2月24日スタックトレースから例外に移動する検索結果を分析する関連ページ:カスタムコードインスペクションとクイックフィックスを作成するコードに課題または悪い習慣があるが、ReSharperがそれを検出しない場合は、カスタムコードインスペクションを作成することができます。課題のあるコードを置き換えるコード、つまりカスタムクイックフィックスを指定することができます。カスタムインスペクションが正しく作成されていれば、コードベース...コード・インスペクションReSharperはサポートされているすべての言語で2500以上のインスペクションを提供します。これらのインスペクションは、開いているすべてのファイルで設計時にコードの課題を検出して強調表示するため、および/または特定の範囲内ですべてのコードの課題を見つけるために使用されます。Re...設計時にコードの課題を検出するReSharperは、エディターでコード・ファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの課題は、重大度に従ってエディターで強調表示されます。課題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、...コードの課題のクイックフィックスReSharperを使用すると、設計時に検出されたほとんどのコード課題を即座に修復できます。押して、課題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。クイックフィックスを適用する:クイックフィックスは、強調表示されたコ...強調表示パターンの追加/編集/検索ダイアログこのダイアログは、特定のパターンに一致するコードを検出するカスタムパターンを作成または編集し、必要に応じてこのコードを置き換えるのに役立ちます。このトピックでは、ダイアログ内のコントロールについて説明します。コードを検索してカスタムパターンで置き換える方法については、構造検索と置換およびカスタムコー...コードフォーマットルールの管理と適用コードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。Studioフォーマットオプションと多数のベ...。