EditorConfig ファイルを生成する

EditorConfig ファイルでコードのスタイルとフォーマットを定義することで、コードの一貫性を維持できます。 これらの規則により、Visual Studio では、ドキュメントをクリーンアップするための、スタイルとフォーマットの自動修正を提供することができます。 C# 開発者は、IntelliCode でコード スタイルと書式規則を推論して、動的に EditorConfig ファイルを作成できます。

IntelliCode で生成された EditorConfig ファイルを、Visual Studio のプロジェクト レベルまたはソリューション レベルに (または、ソリューション フォルダーに) 追加できます。 事前作成された EditorConfig ファイルを追加するには、ソリューション エクスプローラーで目的の場所を右クリックし、[追加][新しい EditorConfig (IntelliCode)] の順に選択します

Visual Studio で IntelliCode によって生成された EditorConfig ファイルを追加する

この方法でファイルを追加した後は、IntelliCode によってコードベースから推論されたコード スタイル規則が自動的に設定されます。

Note

コード スタイルの推論はプレビュー機能で、既定では無効になっています。 [ツール][オプション][IntelliCode] から有効にすることができます。 現在は、C# コードに対してのみ使用できます。 この機能にアクセスするには、最新の Visual Studio 2019 Preview リリースに更新してください。

コードベース内のコード スタイルに基づく EditorConfig ファイルの生成について詳しくは、こちらのブログ記事をご覧ください。

EditorConfig の規則を適用する

EditorConfig ファイルのコード スタイル規則の違反は、[エラー一覧] にも、コード内の "波線" としても表示されません。 ただし、[コードのクリーンアップ] コマンド (Visual Studio 2019) または [ドキュメントのフォーマット] コマンド (Visual Studio 2017) を使って適用することは可能です。

Visual Studio 2017 を使っていて、[ドキュメントのフォーマット] でスタイル規則が修正されない場合は、ドキュメントの書式設定中にコード スタイルの修正にオプトインしていない可能性があります。 たとえば、[暗黙的/明示的な型の設定の適用] では、 の使用に関するスタイル規則が実行されます。 [書式オプション] ダイアログ ボックスを使って、修正する問題を構成します。 [ツール][オプション][テキスト エディター][C#][コード スタイル][書式設定][全般][ドキュメントのフォーマット設定 (実験)] の順に選択します。

推論される規則の参照

IntelliCode では、コード スタイル設定の参照に記載されている規則のセットはまだ完全にはサポートされていません。 現在、IntelliCode で推論できる書式スタイルの規則は次のとおりです。

書式規則

  • csharp_space_between_method_declaration_parameter_list_parentheses
  • csharp_space_between_method_declaration_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_call_empty_parameter_list_parentheses
  • csharp_space_after_keywords_in_control_flow_statements
  • csharp_space_between_parentheses
  • csharp_space_after_cast
  • csharp_space_after_colon_in_inheritance_clause
  • csharp_space_before_colon_in_inheritance_clause
  • csharp_space_around_binary_operators
  • csharp_indent_switch_labels
  • csharp_indent_case_contents
  • csharp_indent_case_contents_when_block
  • csharp_indent_labels
  • csharp_preserve_single_line_blocks
  • csharp_preserve_single_line_statements
  • 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_new_line_before_members_in_anonymous_types
  • csharp_new_line_between_query_expression_clauses

スタイル規則

  • csharp_new_line_before_catch
  • csharp_new_line_before_else
  • csharp_new_line_before_members_in_anonymous_types
  • csharp_new_line_before_members_in_object_initializers
  • csharp_new_line_before_finally_style
  • csharp_new_line_between_query_expression_clauses
  • csharp_prefer_braces
  • csharp_preferred_modifier_order_style
  • csharp_prefer_simple_default_expression
  • csharp_preserve_single_line_blocks
  • csharp_space_after_cast
  • csharp_space_after_keywords_in_control_flow_statements
  • csharp_space_between_method_call_parameter_list_parentheses
  • csharp_space_between_method_declaration_parameter_list_parentheses
  • csharp_space_between_parentheses
  • csharp_style_expression_bodied_accessors
  • csharp_style_expression_bodied_constructors
  • csharp_style_expression_bodied_indexers
  • csharp_style_expression_bodied_methods
  • csharp_style_expression_bodied_operators
  • csharp_style_expression_bodied_properties
  • csharp_style_inlined_variable_declaration
  • csharp_style_pattern_local_over_anonymous_function
  • csharp_style_pattern_matching_over_as_with_null_check
  • csharp_style_var_for_built_in_types
  • csharp_style_var_when_type_is_apparent
  • dotnet_sort_system_directives_first
  • dotnet_style_explicit_tuple_names
  • dotnet_style_object_initializer
  • dotnet_style_predefined_type_for_locals_parameters_members
  • dotnet_style_predefined_type_for_member_access
  • dotnet_style_prefer_inferred_anonymous_type_member_names
  • 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

関連項目