EditorConfig を使用する
ReSharper は、EditorConfig(英語) 形式で定義されたコード形式スタイル、コード構文スタイル、C# の命名スタイル、コードインスペクション重大度レベルをサポートします。
Matthell は、ReSharper が EditorConfig を使用してフォーマットルールの設定全体をどのように維持するのをヘルプいるかを示しています。
EditorConfig とは何ですか? ReSharper はどのようにそれを拡張しますか?
EditorConfig は、同じコードで作業しているチームメンバー間、およびメンバーが使用する可能性のあるさまざまな IDE 間で一貫したコードスタイルを定義および維持するために使用される構成ファイルの規則です。スタイルは、.editorconfig という名前の INI のようなファイルに保存されます。ここで、セクション名はファイルマスクであり、セクション内のプロパティは、それらのマスクに一致するファイルのコードスタイルを定義します。
EditorConfig の規則が示すように、ReSharper は現在のファイルのディレクトリとそのすべての親ディレクトリの .editorconfig という名前のファイルで定義されているコードスタイルを、ルートファイルパスに達するか root=true
で EditorConfig ファイルが見つかるまで適用します。.editorconfig ファイルで指定されているファイルマスク、たとえば *Test.cs
も考慮されます。
ReSharper は、標準の EditorConfig プロパティ、最も頻繁に使用される .NET コーディング規約 EditorConfig プロパティを理解し、カスタム EditorConfig プロパティのセットを提供します。これにより、フォーマット、構文、コードインスペクションルールのより詳細な構成が可能になります。ReSharper オプションダイアログには、独自の EditorConfig プロパティがあります。これは、EditorConfig ファイルでコードスタイルとインスペクションルールの構成全体を維持できることを意味します。以下は、ReSharper でサポートされている EditorConfig プロパティの例です。
ソリューションの EditorConfig
デフォルトでは、ReSharper は EditorConfig プロパティを考慮し、ReSharper および Visual Studio オプションで定義された設定を上書きします。ReSharper でコードのフォーマットとコード構文の EditorConfig スタイルを無視する場合は、ReSharper オプションの
ページで対応するチェックボックスをオフにします。EditorConfig からコードインスペクションと命名スタイルを構成するには、ReSharper オプションのeditorconfig とプロジェクト設定から設定を読み込むチェックボックスを選択する必要があります。
ページでEditorConfig サポートが有効で、現在のファイルに影響する .editorconfig ファイルがある場合、ReSharper はどの EditorConfig スタイルが適用されているか、これらの設定がどこから来るのかを理解できます:
ReSharper コードスタイルおよびフォーマットオプションページでは、ページ上の少なくとも 1 つの設定が現在のファイルの EditorConfig スタイルによってオーバーライドされると、黄色の警告が表示され、オーバーライドされた各設定も黄色でハイライトされます。例:
ファイルフォーマット情報ウィンドウでは、現在のファイルに影響を与えるすべての .editorconfig ファイルを確認して調べることができます。
EditorStyle へのコードスタイル設定のエクスポート
EditorConfig を介してコードスタイル設定を共有する場合、ReSharper ですでに構成されているスタイルを .editorconfig ファイルにエクスポートすることができます。
メインメニューから Alt+R O を押してから、左側の を選択します。
を選択するか、コードスタイルの設定ファイルセクションで、現在のスタイルを .editorconfig に書き込むをクリックします。これで .editorconfig へのエクスポートダイアログが開きます。
デフォルトでは、ReSharper は現在のソリューションのルートディレクトリにある新しい .editorconfig ファイルに設定を書き込みます。1 つ以上の .editorconfig ファイルが存在する場合、ReSharper は設定を保存するためにディレクトリ階層で最も近いファイルを使用します。必要に応じて、ダイアログの上部にあるパスセレクターを使用して宛先ファイルを変更できます。
セクション (ファイルマスク) フィールドでは、生成されたプロパティを持つセクションに使用するワイルドカードパターンを指定できます。標準の EditorConfig プロパティをエクスポートすることを選択した場合、それらは言語の規則に従って他のセクションに配置されることに注意してください。
より詳細な設定については、追加オプションを表示を展開して以下のオプションを選択することができます。
- デフォルト値を持つ設定をエクスポートする
デフォルトでは、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 の構成可能なコードインスペクションの重大度レベルを保存するかどうかを定義します。
指定された場所に既存の .editorconfig ファイルがある場合、そこに存在するプロパティの値と ReSharper が保存しようとしているプロパティの値の間に競合が発生する可能性があります。このようなプロパティは赤で表示され、保存を続行すると、競合は新しく生成されたプロパティに優先して解決されます。
エクスポートをクリックしてください。ReSharper は指定された場所に .editorconfig ファイルを作成または更新します。
フォーマットルールのコンテキスト構成後に、フォーマットスタイルを EditorConfig に保存することもできます。

.editorconfig をインタラクティブに編集する
EditorConfig 形式は、テキストエディターで構成ファイルを読み取って編集できるように設計されていますが、利用可能なすべての EditorConfig プロパティを覚えておき、正しいプロパティを見つけるのは問題になる可能性があります。
.editorconfig を手動で編集するときに起こりうるエラーを回避するために、代わりに対話形式で編集できます。
メインメニューから Alt+R O を押してから、左側の を選択します。
を選択するか、コードスタイルの設定ファイルセクションで、.editorconfig をインタラクティブに編集するをクリックします。
オプションダイアログが開き、コードスタイル設定に影響するページのみが表示されます。
エディター内の現在のアクティブファイルに影響を与える既存の .editorconfig ファイルがある場合、ReSharper はこれらのファイルの設定を使用してダイアログの値を初期化します。それ以外の場合、デフォルト値が使用されます。
コードに影響する .editorconfig ファイルは、ソリューションディレクトリの外部、親ディレクトリにある可能性があることに注意してください。
EditorConfig 設定を表示および構成するには、ダイアログのコントロールを使用します。終了したら、保存をクリックします。これにより、.editorconfig へのエクスポートダイアログが開きます。
デフォルトでは、ReSharper は現在のソリューションのルートディレクトリにある新しい .editorconfig ファイルに設定を書き込みます。1 つ以上の .editorconfig ファイルが存在する場合、ReSharper は設定を保存するためにディレクトリ階層で最も近いファイルを使用します。必要に応じて、ダイアログの上部にあるパスセレクターを使用して宛先ファイルを変更できます。
セクション (ファイルマスク) フィールドでは、生成されたプロパティを持つセクションに使用するワイルドカードパターンを指定できます。標準の EditorConfig プロパティをエクスポートすることを選択した場合、それらは言語の規則に従って他のセクションに配置されることに注意してください。
より詳細な設定については、追加オプションを表示を展開して以下のオプションを選択することができます。
- デフォルト値を持つ設定をエクスポートする
デフォルトでは、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 の構成可能なコードインスペクションの重大度レベルを保存するかどうかを定義します。
指定された場所に既存の .editorconfig ファイルがある場合、そこに存在するプロパティの値と ReSharper が保存しようとしているプロパティの値の間に競合が発生する可能性があります。このようなプロパティは赤で表示され、保存を続行すると、競合は新しく生成されたプロパティに優先して解決されます。
エクスポートをクリックしてください。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 プロパティを使用して C# ファイルに異なるインデントサイズを設定できます。
カスタム EditorConfig プロパティ
ReSharper が提供するカスタム EditorConfig プロパティを使用すると、コードスタイルとコードインスペクション設定を構成できます。コードインスペクションのプロパティは C# のコードインスペクションにあります。コードスタイルとフォーマットのプロパティは、言語およびカテゴリ別の EditorConfig プロパティトピックの子ページに一覧表示されています。
.NET コーディング規約 EditorConfig プロパティ
2024.3 の時点で、ReSharper は .NET コーディング規則のために最も頻繁に使われる EditorConfig プロパティをサポートします:
csharp_space_between_method_call_empty_parameter_list_parentheses
csharp_space_between_method_call_name_and_opening_parenthesis
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
dotnet_diagnostic.*
— すべてのコンパイラー警告でサポートされています。dotnet_naming_rule.*
、dotnet_naming_style.*
、dotnet_naming_symbols.*
— 指定された種類の記号が ReSharper 命名設定で使用可能な記号の種類と一致する場合に機能します。
この機能は、次の言語とテクノロジーでサポートされています。
ここで説明する手順と例では、C# の機能の使用について説明します。他の言語の詳細については、言語およびフレームワークセクションの対応するトピックを参照してください。
関連ページ:

フォーマットルールを構成する
フォーマットルールは非常に高いレベルの詳細に設定できます。例: 特定の演算子の周囲に空白を配置するか、入れ子になった文をインデントするかを定義できます。オプションでコードフォーマットルールを構成するメインメニューからを選択するか、Alt+R O を押します。ページを使用して、すべての言語で適用されるオプションを確認し、設定します。ページを使用して、言語固有のフォーマットを構成します。これらのページでは、下部にあるプレビュー領域を使用して、ReSharper がコードに特定の設定を適用する方法を表示...

スペース、タブ、改行を使用してコードをフォーマットする
コードスタイルの重要な側面は、コードのフォーマット方法、つまり、空白、タブ、改行を使用してコード要素を配置する方法、インデントにタブを使用するかどうかと方法、長い行を折り返すかどうかと方法などです。オン。ReSharper コードフォーマットルールの広範なセットには、デフォルトの Visual Studio フォーマットオプションと多数のベストプラクティスを考慮したデフォルト構成があります。フォーマットルールのすべての詳細を構成し、コードにルールを適用できます。これらのルールは、ReSharpe...

ネーミングスタイル
ReSharper は、コード内のシンボルの希望する命名スタイルを定義、制御、適用できます。一連のルールがあり、各ルールは一連の制約を持つ特定の識別子を対象とします (たとえば、ルールは静的プライベート読み取り専用フィールドを対象にすることができます)。各ルールには、複合語、アンダースコア、接尾辞、接頭辞などの大文字化を定義する 1 つ以上の関連スタイルを含めることができます。これらのルールは、ReSharper がコード補完およびコード生成機能を使用して新しいコードを生成し、コードテンプレート...

ASP.NET MVC 特有の機能
ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト:ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト: コード補完:文字列リテラルでアクションとコントローラーを参照するための専用コード補完: ナビゲーションと検索:さまざまなナビゲーション機能がアクションとコントローラーでも機能します。コード生成:使用箇所から新しいコントローラーとアクションを作成する: 最終...

言語による ReSharper: MSBuild
MSBuild は、アプリケーションを構築するために広く使用されているプラットフォームです。特定の XML タグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharper を使用すると、より速く行うことができます。コード検査:あらかじめ定義された要素またはその属性の名前を誤って入力した場合、ReSharper はそのような不一致についてハイライト表示します。まだ定義されていないプロパティを参照しようとすると、ReSharper はそのようなケースも検出します。MSBuild...

言語による ReSharper: Google プロトコルバッファ (Protobuf)
ReSharper オプションのページで Protobuf サポートが明示的に有効になっている場合、ReSharper は Google Protocol Buffers (Protobuf) バージョン 2.x および 3.0 の .proto ファイルでコード分析および支援機能を提供します。ReSharper は、.proto ファイルの言語構文をハイライトし、エラーを検出してハイライトします。基本コード補完と他のタイピング支援機能はエディターで利用可能です。型と値の宣言に行き、それらの使用箇所を...