Erstellen von EditorConfig-Dateien

EditorConfig-Dateien definieren Codestile und -formate und sorgen so für konsistenten Code. Durch diese Konventionen kann Visual Studio automatische Korrekturen von Stil und Format zur Bereinigung Ihres Dokuments anbieten. Für C#-Entwickler kann IntelliCode Konventionen für den Codestil und die Formatierung ableiten, um auf dynamische Weise eine EditorConfig-Datei zu erstellen.

Sie können in Visual Studio eine mit IntelliCode erstellte EditorConfig-Datei auf Projekt- oder Projektmappenebene (bzw. zu einem Projektmappenordner) hinzufügen. Klicken Sie im Projektmappen-Explorer erst mit der rechten Maustaste auf den gewünschten Speicherort und anschließend mit der linken auf Hinzufügen > Neue EditorConfig (IntelliCode), um eine vorab ausgefüllte EditorConfig-Datei hinzuzufügen.

Hinzufügen einer mit IntelliCode erstellten EditorConfig-Datei in Visual Studio

Wenn Sie die Datei auf diese Weise hinzufügen, füllt IntelliCode sie automatisch mit Codestilkonventionen auf, die von Ihrer Codebasis abgeleitet werden.

Hinweis

Der Codestilrückschluss ist eine Previewfunktion und ist standardmäßig deaktiviert. Sie kann über Tools > Optionen > IntelliCode aktiviert werden. Derzeit ist es nur für C#-Code verfügbar. Um auf dieses Feature zugreifen zu können, müssen Sie auf das neueste Release von Visual Studio 2019 Preview aktualisieren.

Weitere Informationen zum Erstellen einer EditorConfig-Datei, die auf den Codestilen in Ihrer Codebasis basiert, finden Sie in diesem Blogbeitrag.

Anwenden von EditorConfig-Konventionen

Verstöße gegen Codestilkonventionen, die in einer EditorConfig-Datei enthalten sind, werden nicht in der Fehlerliste angezeigt oder durch Wellenlinien im Code gekennzeichnet. Sie können Codestilkonventionen allerdings mithilfe der Befehle Codebereinigung (Visual Studio 2019) oder Dokument formatieren (Visual Studio 2017) anwenden.

Wenn Sie Visual Studio 2017 verwenden und durch den Befehl Dokument formatieren Verstöße gegen Stilkonventionen nicht behoben werden, ist die Nutzung dieses Features während der Codeformatierung möglicherweise nicht aktiviert. Die Option Implizite/explizite Typeinstellungen anwenden führt beispielsweise Stilregeln zur Verwendung von var aus. Konfigurieren Sie über das Dialogfeld „Formatierungsoptionen“, welche Probleme behoben werden sollen. Klicken Sie auf Extras > Optionen > Text-Editor > C# > Codeformat > Formatierung > Allgemein > Einstellungen zur Dokumentformatierung (experimentell) .

Referenz zu abgeleiteten Konventionen

Derzeit unterstützt IntelliCode noch nicht alle in der Referenz zu den Codestileinstellungen aufgeführten Konventionen. IntelliCode kann derzeit folgende Konventionen für die Formatierung oder für den Stil ableiten:

Formatierungskonventionen

  • 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

Konventionen hinsichtlich der Schreibweise

  • 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

Siehe auch