ReSharper 2020.2 ヘルプ

EditorConfig を使用する

ReSharper は、EditorConfig(英語) 形式で定義されたコード形式スタイルコード構文スタイルC# の命名スタイル、およびコードインスペクション重大度レベルをサポートします。

Matthell は、ReSharper が EditorConfig を使用して書式設定ルールの設定全体をどのように維持するのをヘルプいるかを示しています。

EditorConfig とは何ですか? ReSharper はどのようにそれを拡張しますか?

EditorConfig は、同じコードで作業しているチームメンバー間や、異なるエディターと使用している IDE 間で一貫したコードスタイルを定義して維持するために使用される構成ファイルの規則です。スタイルは、セクション名がファイルマスクで、セクション内のプロパティがそのマスクに一致するファイルのコードスタイルを定義する .editorconfig という名前の INI 形式のファイルに保存されます。

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

ReSharper は、最も頻繁に使用される .NET-coding-convention EditorConfig プロパティである標準の EditorConfig プロパティを理解し、カスタム EditorConfig プロパティのセットを提供します。これにより、フォーマット、構文、およびコードインスペクションルールのより詳細な構成が可能になります。実際、ReSharper オプションダイアログには、独自の EditorConfig プロパティがあります。これは、EditorConfig ファイルでコードスタイルとインスペクションルールの構成全体を維持できることを意味します。以下は、ReSharper でサポートされている EditorConfig プロパティの例です。

root = true [*] # Most of the standard properties are supported indent_size=2 max_line_length=100 # Most frequently used .NET-coding-convention properties are supported csharp_space_between_parentheses=expressions, type_casts, control_flow_statements csharp_style_var_for_built_in_types=true # dotnet_diagnostic rules are supported dotnet_diagnostic.CS1058.severity = hint # ReSharper custom properties for code formatting styles resharper_csharp_brace_style=next_line resharper_csharp_blank_lines_around_invocable=2 # ReSharper custom properties for code syntax styles csharp_default_private_modifier=explicit braces_for_ifelse=not_required # ReSharper custom properties for code inspections resharper_possible_null_reference_exception_highlighting=error resharper_replace_with_string_is_null_or_empty_highlighting=none

ソリューションの EditorConfig

デフォルトでは、EditorConfig プロパティは有効になっています。ReSharper および Visual Studio オプションで定義された設定を上書きします。ReSharper で EditorConfig スタイルを無視する場合は、ReSharper オプションのコード編集 | 一般的なフォーマッタスタイルページで対応するチェックボックスをオフにします。

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

EditorConfig サポートが有効で、現在のファイルに影響を与える .editorconfig ファイルがある場合、ReSharper は、どの EditorConfig スタイルが適用され、これらの設定がどこから来るのかを理解できます。

  • ReSharper コードスタイルおよびフォーマットオプションページでは、ページ上の少なくとも 1 つの設定が現在のファイルの EditorConfig スタイルによってオーバーライドされると、黄色の警告が表示され、オーバーライドされた各設定も黄色で強調表示されます。例:

    Code formatting options overridden by EditorConfig styles

  • ファイルフォーマット情報ウィンドウでは、現在のファイルに影響を与えるすべての .editorconfig ファイルを確認して調べることができます。

    ReSharper. File Formatting Info window

EditorStyle へのコードスタイル設定のエクスポート

EditorConfig を介してコードスタイル設定を共有する場合、ReSharper で既に構成されているスタイルを .editorconfig ファイルにエクスポートすることができます。

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押してから、左側のコード編集 | 一般的なフォーマッタスタイルを選択します。

  2. コードスタイルの設定ファイルセクションで、現在のスタイルを .editorconfig に書き込むをクリックします。これで .editorconfig へのエクスポートダイアログが開きます。

  3. デフォルトでは、ReSharper は現在のソリューションのルートディレクトリにある新しい .editorconfig ファイルに設定を書き込みます。1 つ以上の .editorconfig ファイルが存在する場合、ReSharper は設定を保存するためにディレクトリ階層で最も近いファイルを使用します。必要に応じて、ダイアログの上部にあるパスセレクターを使用して宛先ファイルを変更できます。

  4. セクション (ファイルマスク) フィールドでは、生成されたプロパティを持つセクションに使用するワイルドカードパターンを指定できます。標準の EditorConfig "をエクスポートする場合は、プロパティは、言語の規則に従って他のセクションに配置されます。

  5. より詳細な設定については、追加オプションを表示を展開して以下のオプションを選択することができます。

    • デフォルト値を持つ設定をエクスポートする
      デフォルトでは、ReSharper は変更した設定のプロパティのみを保存します。これらの設定のみが適用され、結果の .editorconfig が ReSharper または Rider によって読み取られるときに他の設定をオーバーライドします。他のすべての設定は、IDE で指定された値を取ります。
      このオプションを有効にすると、ReSharper は、変更されたかどうかに関係なく、すべての設定を現在の状態で保存します。このようにして、ReSharper または Rider で読み取ったときにすべてのコードスタイルとフォーマット設定をオーバーライドする、より厳密な .editorconfig を取得します。

    • あいまいな値を持つ既存のプロパティを削除する
      一部の EditorConfig プロパティは複数の ReSharper 固有のプロパティに対応しているため、より正確な構成が可能です。より一般的なプロパティがいくつかの関連する ReSharper 固有のプロパティと一致し、他のプロパティと矛盾する場合があります。これにより、このより一般的なプロパティがあいまいになります。
      より詳細なプロパティの優先度が高いため、このような状況は問題ではなく、あいまいな値を持つプロパティを削除する必要はありません。
      あいまいな値を持つプロパティを削除する必要がある唯一のケースは、プロジェクトの EditorConfig スタイルが ReSharper および Rider によってのみ読み取られ、.editorconfig ファイルから冗長性を削除する場合です。

    • 標準の .editorconfig プロパティをエクスポートする - 標準の .editorconfig プロパティ(英語)を保存するかどうかこれらのプロパティは、生成された EditorConfig が他のエディターや IDE によって読み込まれる場合にも適用されます。

    • クロスエディターの言語固有のプロパティをエクスポートする - .NET コーディング規約のプロパティを保存するかどうか。これらのプロパティは、生成された EditorConfig が他のエディターや IDE によって読み込まれる場合にも適用されます。

    • JetBrains Rider / ReSharper 特有のコードスタイルプロパティをエクスポートする — 製品固有のコードフォーマットスタイルコード構文スタイルを保存するかどうか。

    • JetBrains Rider / ReSharper 特有のインスペクション重大度をエクスポートする — ReSharper の構成可能コードインスペクションの重大度レベルを保存するかどうか。

  6. 指定した場所に既存の .editorconfig ファイルがある場合、そこに存在するプロパティの値と ReSharper が保存しようとしているプロパティの値との間に競合が発生する可能性があります。このようなプロパティは赤で表示され、保存を続行すると、新しく生成されたプロパティが優先されて競合が解決されます。

  7. エクスポートをクリックしてください。ReSharper は指定された場所に .editorconfig ファイルを作成または更新します。

書式設定ルールのコンテキスト構成後に、書式設定スタイルを EditorConfig に保存することもできます。

ReSharper: saving formatting styles to EditorConfig after contextual configuration

.editorconfig をインタラクティブに編集する

EditorConfig 形式は、テキストエディターで構成ファイルを読み取って編集できるように設計されていますが、利用可能なすべての EditorConfig プロパティを覚えておき、正しいプロパティを見つけるのは問題になる可能性があります。

.editorconfig を手動で編集するときに起こりうるエラーを回避するために、代わりに対話形式で編集できます。

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押してから、左側のコード編集 | 一般的なフォーマッタスタイルを選択します。

  2. コードスタイルの設定ファイルセクションで、.editorconfig をインタラクティブに編集するをクリックします。

  3. オプションダイアログが開き、コードスタイル設定に影響するページのみが表示されます。

    ReSharper: Edit .editorconfig interactively(英語)
  4. エディター内の現在のアクティブファイルに影響を与える既存の .editorconfig ファイルがある場合、ReSharper はこれらのファイルの設定を使用してダイアログの値を初期化します。それ以外の場合、デフォルト値が使用されます。

    コードに影響する .editorconfig ファイルは、ソリューションディレクトリの外部、親ディレクトリにある可能性があることに注意してください。

  5. EditorConfig 設定を表示および構成するには、ダイアログのコントロールを使用します。終了したら、保存をクリックします。これにより、.editorconfig へのエクスポートダイアログが開きます。

  6. デフォルトでは、ReSharper は現在のソリューションのルートディレクトリにある新しい .editorconfig ファイルに設定を書き込みます。1 つ以上の .editorconfig ファイルが存在する場合、ReSharper は設定を保存するためにディレクトリ階層で最も近いファイルを使用します。必要に応じて、ダイアログの上部にあるパスセレクターを使用して宛先ファイルを変更できます。

  7. セクション (ファイルマスク) フィールドでは、生成されたプロパティを持つセクションに使用するワイルドカードパターンを指定できます。標準の EditorConfig" をエクスポートする場合は、プロパティは、言語の規則に従って他のセクションに配置されます。

  8. より詳細な設定については、追加オプションを表示を展開して以下のオプションを選択することができます。

    • デフォルト値を持つ設定をエクスポートする
      デフォルトでは、ReSharper は変更した設定のプロパティのみを保存します。これらの設定のみが適用され、結果の .editorconfig が ReSharper または Rider によって読み取られるときに他の設定をオーバーライドします。他のすべての設定は、IDE で指定された値を取ります。
      このオプションを有効にすると、ReSharper は、変更されたかどうかに関係なく、すべての設定を現在の状態で保存します。このようにして、ReSharper または Rider で読み取ったときにすべてのコードスタイルとフォーマット設定をオーバーライドする、より厳密な .editorconfig を取得します。

    • あいまいな値を持つ既存のプロパティを削除する
      一部の EditorConfig プロパティは複数の ReSharper 固有のプロパティに対応しているため、より正確な構成が可能です。より一般的なプロパティがいくつかの関連する ReSharper 固有のプロパティと一致し、他のプロパティと矛盾する場合があります。これにより、このより一般的なプロパティがあいまいになります。
      より詳細なプロパティの優先度が高いため、このような状況は問題ではなく、あいまいな値を持つプロパティを削除する必要はありません。
      あいまいな値を持つプロパティを削除する必要がある唯一のケースは、プロジェクトの EditorConfig スタイルが ReSharper および Rider によってのみ読み取られ、.editorconfig ファイルから冗長性を削除する場合です。

    • 標準の .editorconfig プロパティをエクスポートする - 標準の .editorconfig プロパティ(英語)を保存するかどうかこれらのプロパティは、生成された EditorConfig が他のエディターや IDE によって読み込まれる場合にも適用されます。

    • クロスエディターの言語固有のプロパティをエクスポートする - .NET コーディング規約のプロパティを保存するかどうか。これらのプロパティは、生成された EditorConfig が他のエディターや IDE によって読み込まれる場合にも適用されます。

    • JetBrains Rider / ReSharper 特有のコードスタイルプロパティをエクスポートする — 製品固有のコードフォーマットスタイルコード構文スタイルを保存するかどうか。

    • JetBrains Rider / ReSharper 特有のインスペクション重大度をエクスポートする — ReSharper の構成可能コードインスペクションの重大度レベルを保存するかどうか。

  9. 指定した場所に既存の .editorconfig ファイルがある場合、そこに存在するプロパティの値と ReSharper が保存しようとしているプロパティの値との間に競合が発生する可能性があります。このようなプロパティは赤で表示され、保存を続行すると、新しく生成されたプロパティが優先されて競合が解決されます。

  10. エクスポートをクリックしてください。ReSharper は指定された場所に .editorconfig ファイルを作成または更新します。

EditorConfig で ReSharper フォーマッターを無効にする

C#、C++、JavaScript、TypeScript、HTML、Protobuf では、disable_formatter=true を持つ EditorConfig マスクを使用して ReSharper フォーマッタを無効にすることができます。

標準 EditorConfig プロパティのサポートノート

ReSharper は次の標準の EditorConfig プロパティを適用します:

  • indent_size
  • indent_style
  • tab_width
  • max_line_length
  • insert_final_newline

ReSharper のカスタム EditorConfig プロパティの中には、特定の言語の標準プロパティをオーバーライドするプロパティがあることに注意してください。例: indent_size プロパティを csharp_indent_size プロパティと js_indent_size プロパティでオーバーライドすることにより、C# と JavaScript で異なるインデントサイズを設定できます。

.NET-coding-convention プロパティサポートメモ

2020.2 の時点で、ReSharper は .NET コーディング規則(英語)のために最も頻繁に使われる EditorConfig プロパティをサポートします:

  • csharp_indent_braces

  • csharp_indent_switch_labels

  • csharp_new_line_before_catch

  • csharp_new_line_before_else

  • csharp_new_line_before_finally

  • csharp_new_line_before_members_in_object_initializers

  • csharp_new_line_before_open_brace

  • csharp_new_line_between_query_expression_clauses

  • csharp_preferred_modifier_order

  • csharp_preserve_single_line_blocks

  • csharp_space_after_cast

  • csharp_space_after_colon_in_inheritance_clause

  • csharp_space_after_comma

  • csharp_space_after_dot

  • csharp_space_after_keywords_in_control_flow_statements

  • csharp_space_after_semicolon_in_for_statement

  • csharp_space_around_binary_operators

  • csharp_space_before_colon_in_inheritance_clause

  • csharp_space_before_comma

  • csharp_space_before_dot

  • csharp_space_before_open_square_brackets

  • csharp_space_before_semicolon_in_for_statement

  • csharp_space_between_empty_square_brackets

  • csharp_space_between_method_call_empty_parameter_list_parentheses

  • csharp_space_between_method_call_name_and_opening_parenthesis

  • csharp_space_between_method_call_parameter_list_parentheses

  • csharp_space_between_method_declaration_empty_parameter_list_parentheses

  • csharp_space_between_method_declaration_name_and_open_parenthesis

  • csharp_space_between_method_declaration_parameter_list_parentheses

  • csharp_space_between_parentheses

  • csharp_space_between_square_brackets

  • csharp_style_var_elsewhere

  • csharp_style_var_for_built_in_types

  • csharp_style_var_when_type_is_apparent

  • csharp_using_directive_placement

  • dotnet_style_parentheses_in_arithmetic_binary_operators

  • dotnet_style_parentheses_in_other_binary_operators

  • dotnet_style_parentheses_in_relational_binary_operators

  • dotnet_style_predefined_type_for_locals_parameters_members

  • dotnet_style_predefined_type_for_member_access

  • dotnet_style_qualification_for_event

  • dotnet_style_qualification_for_field

  • dotnet_style_qualification_for_method

  • dotnet_style_qualification_for_property

  • dotnet_style_require_accessibility_modifiers

  • dotnet_diagnostic.* — すべてのコンパイラ警告でサポートされています。

  • dotnet_naming_rule.* , dotnet_naming_style.* , dotnet_naming_symbols.* — 指定された種類のシンボル(英語)が、ReSharper 命名設定で使用可能なシンボルの種類と一致する場合に機能します。

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

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is available in C#Feature is available in Visual Basic .NETFeature is available in C++Feature is available in HTMLFeature is available in ASP.NETFeature is available in RazorFeature is available in JavaScriptFeature is available in TypeScriptFeature is available in CSSFeature is available in XMLFeature is available in XAMLFeature is available in Resource filesFeature is available in build script filesFeature is available in ProtobufFeature is available in JSON

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

最終更新日 :

関連ページ:

ファイルフォーマット情報ウィンドウ

ReSharper | Windows | ファイルフォーマット情報このウィンドウでは、現在開いているファイルの書式スタイル設定について説明します。インデントのソースとその値。インデント設定の自動検出のステータス。現在のファイルに影響するEditorConfigサポートとすべての.editorco...

コードのフォーマットと再フォーマット

コードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。ReSharper コードのフォーマットルールの豊富なセットには、デフォルトの Visual Studio フォーマットオプ...

構文スタイル

コードスタイルの側面の 1 つは、互換性のある言語構文構造を使用する方法です。例:以下の 2 つのメソッド定義は、コンパイラの観点からは同じですが、構文構造の選択により、それらは異なって見えます。 [Conditional("DEBUG")] [Test] static publ...

ネーミングスタイル

バージョン 2018.3 から、ReSharper は既存のコードから C# シンボルの命名規則を自動的に学習を実行できます。命名規則を手動で構成する場合は、ReSharper オプション(Alt+R O)のコード編集 | C# | ネーミングスタイルページの自動検出ルールを使用するチェックボッ...

コードインスペクション

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

コードフォーマットルールの管理と適用

ReSharper | 編集 | コードの再フォーマットコードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。ReSharper コードのフォーマットルールの豊富なセットに...