ReSharper 2024.1 ヘルプ

ネーミングスタイル

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

これらのルールは、ReSharper がコード補完およびコード生成機能を使用して新しいコードを生成し、コードテンプレートを適用し、リファクタリングを実行するときに考慮されます。ReSharper は、命名規則の違反を検出して修正するのにも役立ちます。必要に応じて、命名規則の自動チェックを構成または無効にできます

命名規則を構成する

ReSharper は、あらゆる種類の識別子をカバーする命名規則のセットをすぐに使用できます。これらの規則は、マイクロソフトの命名ガイドライン.NET プラットフォームのコーディングスタイル(英語)、さまざまなベストプラクティスに基づいています。

個人の好みや会社の標準が ReSharper のデフォルトと異なる場合は、命名スタイルを柔軟に構成できます。識別子の種類ごとに、大文字と小文字の規則、接頭辞と接尾辞、さまざまなアクセス権のバリエーション、無視する略語などを選択できます。

命名スタイルの設定は、レイヤーベースの設定のメカニズムを使用して保存されます。とりわけ、このメカニズムにより、さまざまなソリューションのさまざまな設定を維持したり、これらの設定を VCS に保持したり、チームメンバーと自動的に共有することができます。

命名規則のプロパティ

各命名規則には次のプロパティがあります。

  • ルールの説明 : ルールが適用される場所を理解するのに役立つ任意の説明。

  • このスタイルを適用する : ルールによって許可される 1 つ以上の命名スタイル。対応するボタンを使用してスタイルを追加または削除します。

    リストでスタイルを選択したら、スタイルセレクターで UpperCamelCaselowerCamelCase などの基本スタイルを選択し、必要に応じてプレフィックスとサフィックスを追加します。

    1 つのルールに複数のスタイルがある場合、対応するシンボル名がこれらのスタイルの少なくとも 1 つと一致すると、ReSharper はコードスタイル違反を報告しません。それ以外の場合、ReSharper はコードスタイル違反を検出し、デフォルトスタイル (リストの最初のスタイル) に従ってシンボルの名前を変更することを提案します。デフォルトスタイルを変更するには、上へ移動 ThemedIcon.Up.Screen.(Gray).png ボタンと下へ移動 ThemedIcon.Down.Screen.(Gray).png ボタンを使用します。

  • 次の要素に: この領域では、命名規則が適用される場所を定義します。対応するチェックボックスを使用して、どの種類の型と修飾子を持つメンバーが規則に準拠する必要があるかを指定します。

  • インスペクションを有効化する : このチェックボックスを使用すると、このルールに関連付けられたコードスタイル違反の報告を無効にしながら、ReSharper が他の命名ルール違反を検出できるようにすることができます。

    このチェックボックスを無効にすると、ReSharper がコード補完コード生成機能を使用して新しいコードを生成し、コードテンプレートを適用し、リファクタリングを実行するときに、このルールが考慮されます。すべての命名規則の自動チェックを無効にする方法もいくつかあります。

ReSharper: Add/Edit Naming Rule dialog

命名規則を変更する

  1. 以下のいずれか 1 つを実行します:

    • ハイライトされているシンボル上で Alt+Enter を押し、名前の一致しないインスペクション '不整合な名前付け' | 命名規則 '[ 規則名 ]' の設定を変更しますを選択します。

    • メインメニューから ReSharper | オプション | コード編集 | C# | ネーミングスタイルを選択し、目的のルールを選択して、編集 ThemedIcon.EditorOptionsPage.Screen.(Gray).png をクリックするか、ダブルクリックします。

  2. 必要に応じて命名規則のプロパティを構成します。

  3. ルールエディターがオプションダイアログから開かれた場合は、OK をクリックしてルール設定の編集ダイアログを閉じます。

  4. オプションダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。

既存のルールが命名規則に対して十分に細かくない場合は、さらにルールを追加できます。たとえば、列挙型に大文字のキャメルケースを使用し、プレフィックスを E にする必要があるとします。

命名規則を追加する

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押してから、左側のコード編集 | C# | ネーミングスタイルを選択します。

  2. 「+」をクリックします。

  3. 必要に応じて命名規則のプロパティを構成します。

  4. OK をクリックして、命名規則の追加ダイアログを閉じます。

  5. オプションダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。

命名規則は削除できます。規則を削除すると、一部の種類の識別子がどの規則でもカバーされなくなる可能性があります。この場合、ReSharper がコード補完コード生成機能を使用して新しいコードを生成し、コードテンプレートを適用してリファクタリングを実行するときに、ReSharper は内部のデフォルトを適用します。

ルールを削除するには、ReSharper オプション Alt+R, Oコード編集 | C# | ネーミングスタイルページでルールを選択し、削除 ThemedIcon.Delete.Screen.(Gray).png をクリックします。

EditorConfig を使用して命名規則を構成する

EditorConfig を使用してプロジェクトのコードスタイルを維持する場合、.editorconfig ファイルから命名規則を構成することもできます。

EditorConfig から命名規則を構成するには、ReSharper オプション Alt+R, Oコードインスペクション | 設定ページで editorconfig とプロジェクト設定から設定を読み込むチェックボックスを選択する必要があります。

ReSharper 設定ですでに構成した命名スタイルを .editorconfig ファイルにエクスポートすることもできます。

.editorconfig ファイルの命名スタイル設定は、EditorConfig の .NET 命名規則のプロパティを使用して構成されます。dotnet_naming_rule.*dotnet_naming_style.*dotnet_naming_symbols.* — 指定された種類の記号が ReSharper 命名設定で使用可能な記号の種類と一致する場合に機能します。

それに加えて、ReSharper は多くのカスタムプロパティを使用して、.NET 命名規則でカバーされていないケースをサポートできます。これらのプロパティは、ReSharper の名前設定をエクスポートするときに、主に .editorconfig ファイルに表示されます。

  • import_to_resharper

    このサフィックスを使用すると、特定のプロパティを ReSharper(true または false)で無視するかどうかを指定できます。

    ReSharper がその設定を editorconfig にエクスポートするとき、as_predefined を書き込むこともできます。手動で変更しないでください。例: dotnet_naming_rule.protected_rule_rule.import_to_resharper = false

  • resharper_description

    ツールチップのルールの説明を指定できます。例: dotnet_naming_rule.protected_rule_rule.resharper_description = Something

  • resharper_guid

    ReSharper は、エクスポート時にこのプロパティを使用できます。手動で変更しないでください。例: dotnet_naming_rule.protected_rule_rule.resharper_guid = eb5720f3-bc0a-442d-9f3c-8dc32b7c5c12

  • resharper_style

    可能なスタイルのリストを指定できるようになり、.NET 命名スタイルのリストを拡張できます。各スタイルは、「スタイル」、「プレフィックス + スタイル + サフィックス」、「プレフィックス + スタイル」、または「スタイル + サフィックス」になります。

    スタイルは AaBbAaBb_AaBbAaBb_aaBbaaBbaaBb_AaBbaaBb_aaBbAA_BBaa_bbAa_bb の 1 つにすることができます

    リストの最後に :do_not_check を追加して、インスペクションを無効にすることができます。

    サンプル: dotnet_naming_rule.protected_rule_rule.resharper_style = AA_BB, aa_bb, I+AaBb, aaBb_AaBb, AaBb+Local

  • resharper_applicable_kinds

    命名規則を適用する識別子の種類: namespacetypetest_typeclasspure_classrecordstructinterfacedelegateenumtype_membertest_membermethodasync_methodextension_methodpropertyeventany_fieldfield (読み取り専用または定数ではない単純なフィールド)、readonly_fieldconstant_fieldunity_serialised_field (Unity サポートプラグインがインストールされている場合)、enum_member locallocal_variablecatch_variablelocal_constantparameterlambda_parameterlabeltype_parameterlocal_function

    サンプル: dotnet_naming_symbols.protected_rule_symbols.resharper_applicable_kinds = pure_class

  • resharper_required_modifiers

    staticinstance (なし、これらのいずれか、両方)。例: dotnet_naming_symbols.protected_rule_symbols.resharper_required_modifiers = static, instance

  • resharper_csharp_naming_rule

    resharper_style の場合と同じ値を使用しますが、この設定は、事前定義されたルールの 1 つを指定するためにのみ使用できます。 types_and_namespacesinterfacestype_parametersmethodpropertyeventlocalslocal_constantsparameterspublic_fieldsprivate_instance_fieldsprivate_static_fieldsconstantsprivate_constantsstatic_readonlyprivate_static_readonlyenum_memberlocal_functionsother

    サンプル: resharper_csharp_naming_rule.private_instance_fields = I+AaBb_AaBb,_+aaBb:do_not_check

EditorConfig の規則が提案するように、ReSharper は、ルートファイルパスに到達するか、root=true で EditorConfig ファイルを見つけるまで、現在のファイルのディレクトリとそのすべての親ディレクトリの .editorconfig という名前のファイルで定義された命名規則を適用します。.editorconfig ファイルで指定されたファイルマスク、たとえば *Test.cs も考慮されます。

CamelCase の命名スタイルと競合する大文字の略語を無視する

CamelCase シンボル名で大文字の略語、頭字語、頭字語 (MicroSoft の代わりに MS など) を使用したい場合があります。デフォルトでは、ReSharper は、複数の大文字が連続しているため、これを一貫性のないキャメルケースとして報告します

ReSharper: Naming style. abbreviations

これを回避するには、一貫性のない命名インスペクションによって省略語のリストが無視されるように構成できます。

大文字の略語は、特定の種類の識別子に対して定義された命名スタイルと矛盾してはならないことに注意することが重要です。

例: 無視された略語に MS を追加した場合、MSBuilderUpperCamelCase スタイルの識別子には受け入れられる名前になりますが、lowerCamelCase または all_lower 命名スタイルの識別子には受け入れられません。

同様に、myMSBuilderlowerCamelCase に対しては問題ありませんが、UpperCamelCase -styled 識別子に対しては問題ありません。

略語を無視リストに追加する

  1. エディターで、名前に略語が使用されているハイライトされたシンボルにキャレットを置きます。

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

  3. インスペクション '不整合な名前付け' | 略語リストに [ 略語 ] を追加するを選択

    Adding an abbreviation to the ignore list
  4. 必要に応じて、無視された略語を特定の設定レイヤーに保存することもできます。

    ReSharper: Saving an ignored abbreviation to a settings layer

シンボル名に許可する略語が多数ある場合は、無視する略語のリストを編集できます。

無視された略語のリストを編集する

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押してから、左側のコード編集 | C# | ネーミングスタイルを選択します。

  2. 略語の横にある ... をクリックします。

  3. 略語を入力して、追加をクリックします。必要なすべての略語に対してこれを繰り返し、OK をクリックします。

  4. または、スペースを区切り文字として使用して、略語フィールドを手動で編集します。

  5. オプションダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。

命名規則の違反を検出して修正する

ReSharper は、「一貫性のない命名」コードインスペクションを使用して、コード内の命名規則の違反を検出します。デフォルトでは、このインスペクションは設計時コードインスペクション中に常に適用され、検出された違反がエディターで警告としてハイライトされます。例: デフォルトのスタイルによれば、インターフェースの名前には接頭辞「I」が必要です。インターフェース名がこのルールに一致しない場合、ReSharper はこの名前をハイライトし、その上にマウスを置くと問題について通知します。

ReSharper: Highlighted violation of the naming style

現在のファイル以外で命名スタイルの違反を見つけたい場合は、プロジェクト内またはソリューション全体で「不整合な名前」インスペクションを実行できます。

特定のスコープで命名スタイル違反を見つける

  1. エディターで、一貫性のない名前を持つハイライトされたシンボルにキャレットを置きます。

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

  3. インスペクション '不整合な名前付け' | ファイル内に同様の問題を見つけるを選択し、目的の範囲を選択します。

    ReSharper: Using action list to find naming style issues
  4. 検出された命名スタイル違反はすべて、インスペクション結果ウィンドウに表示されます。

    ReSharper: Naming style violations in solution
  5. 検出された問題をダブルクリックすると、対応するシンボルのコードに移動できます。

エディターでハイライトされているほとんどの命名スタイル違反について、ReSharper は準拠する名前のクイックフィックスを提案します。Alt+Enter を押して、アクションリストで名前を [ 適合名 ] に変更を選択できます。

Quick-fix for naming style violation

スコープ内修正機能を使用して、現在のファイル、プロジェクト、ソリューションでネーミングスタイル違反の自動修正を実行することもできます。

ただし、一致する名前が計算されたシンボルがすでに同じ名前空間に存在する場合、クイックフィックスは提案されません。名前変更リファクタリングでそのようなシンボルの命名を修正することができます。

命名規則の自動検査を構成して無効にする

ReSharper に既存のコードベースの命名スタイルをチェックさせたくない場合は、その原因となっているコードインスペクションを無効にするか、特定のルールの自動チェックを無効にすることができます。ただし、自動チェックが無効になっている場合でも、ReSharper がコード補完コード生成機能を使用して新しいコードを生成し、コードテンプレートを適用してリファクタリングを実行するときには、すべての命名ルールが考慮されます。

命名スタイルの自動検査を無効にする

  • ハイライトされているシンボル上で Alt+Enter を押し、名前の一致しないインスペクション '不整合な名前付け' | インスペクションの重大度を設定する | 表示しないを選択します。

  • ReSharper オプション Alt+R, Oコード編集 | C# | ネーミングスタイルページで「矛盾した命名」インスペクションを有効にするチェックボックスをオフにします。

  • ReSharper オプション Alt+R, Oコードインスペクション | インスペクション重大度ページで、「一貫性のないネーミング」と入力し、対応するコードインスペクションの横にあるチェックボックスをオフにします。

  • ソリューションで .editorconfig を使用を使用する場合、特定のスコープで「一貫性のない命名」インスペクションを無効にすることができます。

    resharper_inconsistent_naming_highlighting=none

特定の命名規則の自動検査を無効にする

  1. 以下のいずれか 1 つを実行します:

    • ハイライトされているシンボル上で Alt+Enter を押し、名前の一致しないインスペクション '不整合な名前付け' | 命名規則 '[ 規則名 ]' の設定を変更しますを選択します。

    • メインメニューから ReSharper | オプション | コード編集 | C# | ネーミングスタイルを選択し、目的のルールを選択して、編集 ThemedIcon.EditorOptionsPage.Screen.(Gray).png をクリックするか、ダブルクリックします。

  2. 開いたルール設定の編集ダイアログで、インスペクションを有効化するチェックボックスをオフにします。

  3. オプションダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。

既存のコードから C# 命名規則を使用する

パブリックリポジトリからソリューションをチェックアウトするか、別のコード命名スタイルが確立されているチームに一時的に参加する場合は、このソリューションの命名規則に従うと同時に、グローバルに構成された命名規則を変更しないことをお勧めします。

ReSharper は自動的にそのような状況に対処します。シンボルの命名がグローバル設定と異なる新しいソリューションを開くと、グローバル設定と異なる命名規則が検出され、それに応じてこれらの規則が変更され、変更された規則が「Solution personal」設定レイヤーに保存されます(ソリューションの隣の .sln.DotSettings.user ファイル)。

新しいソリューションを開いたときにこれが発生した場合、ReSharper はエディターに通知を表示します。

ReSharper: Naming rules auto-detection notification

構成をクリックして対応する設定ページ(コード編集 | C# | ネーミングスタイル)を開くことができます。この設定ページでは、ソリューションコードに基づいて変更されたルールは黄色でハイライトされています。ReSharper のデフォルトの命名規則を使用する場合、または独自の方法で命名スタイル設定する場合は、自動検出ルールを使用するチェックボックスをオフにします。

ReSharper highlighting automatically-set naming rules with yellow

イベントの Visual Studio 命名スタイルを扱う

デフォルトでは、ReSharper は、フィールドのイベントサブスクリプションに $object$On$event$ 命名パターンを提案し、this のイベントサブスクリプションに On$event$ 命名パターンを提案します。これは、ReSharper が新しいイベントを生成するときと、既存のイベントの命名スタイルをチェックするときの両方で使用されます。必要に応じて、ReSharper オプションのコード編集 | C# | ネーミングスタイルページでこれらのパターンを変更できます。

Visual Studio によって新しいイベントが生成されると、別の命名パターン $object$_$event$ が使用されます。既存のプロジェクトでイベントの名前がこのように付けられていて、名前を変更したくない場合は、ReSharper オプションのコード編集 | C# | ネーミングスタイルページで Microsoft イベントの命名スタイルをサポートチェックボックスが選択されていることを確認してください。これにより、これらのイベントで「名前の不一致」の警告が表示されなくなります。

異なる言語での適用性

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

ここで説明する手順と例では、C# の機能の使用について説明します。他の言語の詳細については、言語別 ReSharper セクションの対応するトピックを参照してください。

関連ページ:

コード補完 (IntelliSense)

ReSharper は、高度な機能を備えた Visual Studio のネイティブコード補完(IntelliSense)を補完し、拡張します。例: あなたの入力に基づいて提案のリストを絞り込み、選択した型と拡張メソッドを自動的にインポートし、メソッド名を補完するときに括弧を追加し、型に応じて変数とフィールド名を提案するなど。ReSharper のコード補完の機能に慣れ親しむために、いくつかの実装の基本があります: デフォルトでは、ReSharper は Visual Studio のネイティブの...

ReSharper 設定の管理と共有

ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例: 記号のアイコンとチーム設定のコード形式を個人設定で保存し、これらの設定を自動的に組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。ReShar...

C++ のコードスタイル支援

ReSharper はあなたのコードをきちんときれいに保つための多くの機能を提供します。ReSharper の他の機能の大部分と密接に連携しているため、特定のコードスタイルに従ってコードを生成したり既存のコードベースを変更したりできます。命名標準、フォーマット規則、その他のさまざまな小さな要素を含むコードスタイルは、非常に詳細なレベルに構成してチーム全体で共有できます。他の言語と同様に、スコープを修正またはコードのクリーンアップを使用して、1 つのコマンドですべての C++ コードスタイル設定を...

Visual Basic でのコードスタイルアシスタンス

C# で使用できる ReSharper の主要なコードスタイル支援機能 (たとえば、ネーミングスタイル、フォーマットルールを適用する、コードのクリーンアップ) は、Visual Basic でもサポートされています。これらの機能の詳細については、コードスタイルとクリーンアップセクションの対応するトピックを参照してください。フォーマットスタイル:コードスタイルの重要な側面は、コードのフォーマット方法、つまり、空白、タブ、改行を使用してコード要素を配置する方法、インデントにタブを使用するかどうかと...

EditorConfig を使用する

ReSharper は、EditorConfig 形式で定義されたコード形式スタイル、コード構文スタイル、C# の命名スタイル、コードインスペクション重大度レベルをサポートします。Matthell は、ReSharper が EditorConfig を使用してフォーマットルールの設定全体をどのように維持するのをヘルプいるかを示しています。EditorConfig とは何ですか? ReSharper はどのようにそれを拡張しますか? :EditorConfig は、同じコードで作業しているチームメ...

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

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