ReSharper 2019.2ヘルプ

EditorConfigの使用

ReSharperは、EditorConfig(英語)形式で定義されているコードフォーマットスタイルコード構文スタイル、およびコードインスペクションの重大度をサポートしています。

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

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

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

EditorConfigの規則が示すように、ReSharperは現在のファイルのディレクトリーとそのすべての親ディレクトリーの .editorconfig という名前のファイルで定義されているコードスタイルを、ルートファイルパスに達するか root=trueで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 # 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=do not show

ソリューションのEditorConfig

デフォルトでは、EditorConfigプロパティーはコードの書式設定スタイルおよびコードの構文スタイルに対して有効になり、コードのインスペクション重大度に対して無効になります。それらはReSharperおよびVisual Studioオプションで定義された設定をオーバーライドします。ReSharperがコードフォーマットとコード構文のEditorConfigスタイルを無視するようにしたい場合は、ReSharperオプションのコード編集 | 一般的なフォーマッタスタイルページの対応するチェックボックスをクリアしてください。

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

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

  • ReSharperのコードスタイルと書式設定オプションページでは、現在のファイルのEditorConfigスタイルによってページの少なくとも1つの設定がオーバーライドされている場合は黄色の警告が表示され、上書きされた各設定も黄色で強調表示されます: たとえば:

    Code formatting options overridden by EditorConfig styles

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

    ReSharper. File Formatting Info window

コードスタイル設定をEditorConfigにエクスポートする

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

コードスタイル設定をEditorConfigにエクスポートするには

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

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

  3. デフォルトでは、ReSharperは現在のソリューションのルートディレクトリーにある .editorconfig ファイルに設定を書き込みます。必要に応じて、ダイアログ上部のパスセレクタを使用して保存先ファイルを変更できます。

  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に保存することもできます。

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プロパティーサポートメモ

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

  • 書式設定規則(英語)の次のプロパティー:
    • csharp_new_line_before_open_brace
    • csharp_new_line_before_else
    • csharp_new_line_before_catch
    • csharp_new_line_before_finally
    • csharp_new_line_before_members_in_object_initializers
    • csharp_indent_switch_labels
    • csharp_space_after_cast
    • csharp_space_after_keywords_in_control_flow_statements
    • csharp_space_between_method_declaration_parameter_list_parentheses
    • csharp_space_between_method_call_parameter_list_parentheses
    • csharp_space_between_parentheses
    • csharp_preserve_single_line_blocks
  • 言語規則(英語)の次のプロパティー:
    • dotnet_style_qualification_for_field
    • dotnet_style_qualification_for_property
    • dotnet_style_qualification_for_method
    • dotnet_style_qualification_for_event
    • dotnet_style_predefined_type_for_locals_parameters_members
    • dotnet_style_predefined_type_for_member_access
    • dotnet_style_require_accessibility_modifiers
    • csharp_preferred_modifier_order
    • csharp_style_var_for_built_in_types
    • csharp_style_var_when_type_is_apparent
    • csharp_style_var_elsewhere
    • csharp_style_expression_bodied_constructors
    • csharp_style_expression_bodied_methods
    • csharp_style_expression_bodied_properties
    • csharp_style_expression_bodied_accessors
    • csharp_prefer_braces

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

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 availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is available

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

最終更新日: 2019年8月16日

関連事項

関連ページ:

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

このウィンドウでは、現在開いているファイルの書式スタイル設定について説明します。字下げの原因とその価値、インデント設定の自動検出のステータス。現在のファイルに影響するEditorConfigサポートとすべての.editorconfigファイルのステータス。現在のファイルに影響するStyleCopサポ...

コードの書式設定と再フォーマット

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

構文スタイル

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

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

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

コードの書式設定ルールの管理と適用

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

ASP.NET MVC特有の機能

ReSharperには、一般的なASP.NET機能に加えて、ASP.NET MVCでの作業をより簡単にサポートする特殊機能があります。構文の強調表示:ASP.NET MVCメソッドの呼び出しとパラメータに対する特別な構文の強調表示コード補完:文字列リテラルでアクションとコントローラーを参照するための...