Codeformateinstellungen
Codeformateinstellungen können projektweise mithilfe einer EditorConfig-Datei oder für den gesamten Code, den Sie in Visual Studio bearbeiten, auf der Seite Optionen des Text-Editors definiert werden. Für C#-Code können Sie Visual Studio außerdem mithilfe der Befehle Codebereinigung (Visual Studio 2019, Visual Studio 2022) und Dokument formatieren (Visual Studio 2017) für die Anwendung dieser Codeformateinstellungen konfigurieren.
Codeformate in EditorConfig-Dateien
Codeformateinstellungen für .NET können durch Hinzufügen einer EditorConfig-Datei zu Ihrem Projekt angegeben werden. Diese .editorconfig-Dateien sind nicht mit einem Visual Studio-Personalisierungskonto, sondern mit einer Codebasis verknüpft. Die Einstellungen in der Editorconfig-Datei haben Vorrang gegenüber den im Dialogfeld Optionen angegebenen Codeformaten. Verwenden Sie eine EditorConfig-Datei, wenn Sie Codierungsstile für alle Mitwirkenden an Ihrem Repository oder Projekt erzwingen möchten.
Sie können Ihre EditorConfig-Datei manuell auffüllen oder die Datei basierend auf den Codeformateinstellungen, die Sie im Dialogfeld Optionen von Visual Studio festgelegt haben, automatisch generieren. Diese Optionsseite finden Sie unter Extras>Optionen>Text-Editor> [C# oder Basic] >Codeformat>Allgemein. Klicken Sie auf Generate .editorconfig file from settings (Editorconfig-Datei aus Einstellungen generieren), um automatisch eine .editorconfig-Codeformatdatei auf Grundlage der Einstellungen auf dieser Seite Optionen zu generieren.
Sie können Ihre EditorConfig-Datei manuell auffüllen oder die Datei basierend auf den Codeformateinstellungen, die Sie im Dialogfeld Optionen von Visual Studio festgelegt haben, automatisch generieren. Diese Optionsseite finden Sie unter Extras>Optionen>Text-Editor> [C# oder Visual Basic] >Codeformat>Allgemein. Klicken Sie auf Generate .editorconfig file from settings (Editorconfig-Datei aus Einstellungen generieren), um automatisch eine .editorconfig-Codeformatdatei auf Grundlage der Einstellungen auf dieser Seite Optionen zu generieren.
Codeformate im Dialogfeld „Optionen“
Codeformateinstellungen können für alle Ihre C#- und Visual Basic-Projekte festgelegt werden, indem Sie das Dialogfeld Optionen im Menü Extras öffnen. Wählen Sie im Dialogfeld Optionen die Option Text-Editor> [C# oder Visual Basic] >Codeformat>Allgemein aus.
Codeformateinstellungen können für alle Ihre C#- und Visual Basic-Projekte festgelegt werden, indem Sie das Dialogfeld Optionen im Menü Extras öffnen. Wählen Sie im Dialogfeld Optionen die Option Text-Editor> [C# oder Basic] >Codeformat>Allgemein aus.
Jedes Element auf der Liste zeigt eine Vorschau der Einstellung an, wenn es ausgewählt wird:
In diesem Fenster festgelegte Optionen gelten für Ihr Visual Studio-Personalisierungskonto und sind keinem bestimmten Projekt bzw. keiner bestimmten Codebasis zugeordnet. Darüber hinaus werden sie nicht zur Buildzeit erzwungen. Das gilt auch für CI-Builds (Continuous Integration). Wenn Sie Codeformateinstellungen mit Ihrem Projekt verknüpfen möchten und die Formate während des Buildvorgangs erzwungen werden, geben Sie die Einstellungen in einer Datei vom Typ .editorconfig an, die mit dem Projekt verknüpft ist.
Einstellung und Schweregrad
Sie können für jede dieser Codeformateinstellungen auf dieser Seite über die Dropdownfelder jeder Zeile die Werte für Preference (Präferenz)und Schweregrad festlegen. Der Schweregrad kann auf Nur Refactoring, Vorschlag, Warnung oder Fehler festgelegt werden. Wenn Sie für ein Codeformat Schnellaktionen aktivieren möchten, stellen Sie sicher, dass die Einstellung für den Schweregrad auf einen anderen Wert als Nur Refactoring festgelegt ist. Das Glühbirnensymbol für Schnellaktionen, Fehlerglühbirnensymbol oder Schraubendrehersymbol wird angezeigt, wenn ein nicht bevorzugtes Format verwendet wird, und Sie können eine Option aus der Liste der Schnellaktionen auswählen, um den Code automatisch im bevorzugten Format neu zu schreiben.
Erzwingen von Codeformatregeln beim Build
Ab Visual Studio 2019 Version 16.8, wo das .NET 5.0 RC2 SDK enthalten ist, können Sie für alle .NET-Projekte die .NET-Codierungskonventionen beim Build erzwingen. Zur Erstellungszeit werden Verstöße gegen das .NET-Codeformat als Warnungen oder Fehler mit dem Präfix „IDE“ angezeigt. Dies ermöglicht Ihnen, konsistente Codeformate in Ihrer Codebasis strikt zu erzwingen.
Anwenden von Codeformaten
Für C#-Codedateien verfügt Visual Studio über eine Schaltfläche Codebereinigung unten im Editor (Tastatur: STRG+K, STRG+E), um Codeformate aus einer EditorConfig-Datei oder von der Optionsseite Codeformat anzuwenden. Wenn für das Projekt eine .editorconfig-Datei vorhanden ist, haben diese Einstellungen Vorrang.
Tipp
Regeln, die mit dem Schweregrad Kein konfiguriert sind, nehmen nicht an der Codebereinigung teil, können aber einzeln über das Menü Schnellaktionen und Refactorings angewendet werden.
So wenden Sie Codeformatvorlagen an:
Konfigurieren Sie zunächst im Dialogfeld Codebereinigung konfigurieren (in einem von zwei Profilen), welche Codeformate Sie anwenden möchten. Um dieses Dialogfeld zu öffnen, klicken Sie auf den Erweiterungspfeil neben dem Besensymbol der Codebereinigung, und wählen Sie dann Codebereinigung konfigurieren aus.
Nachdem Sie die Codebereinigung konfiguriert haben, verwenden Sie eine der folgenden Methoden zum Ausführen der Codebereinigung:
Klicken Sie auf das Broomsymbol, oder drücken Sie STRG+K, STRG+E, um die Codebereinigung auszuführen.
Wenn Sie die Codebereinigung für das gesamte Projekt oder die gesamte Projektmappe ausführen möchten, klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projekt- oder Projektmappennamen, wählen Sie "Analysieren" und "Codebereinigung" aus, und wählen Sie dann "Codebereinigung ausführen" aus.
Wenn Ihre Codeformateinstellungen bei jedem Speichern einer Datei angewendet werden sollen, gefällt Ihnen möglicherweise die Erweiterung Code Cleanup on Save (Codebereinigung beim Speichern).
Für C#-Codedateien verfügt Visual Studio über eine Schaltfläche Codebereinigung unten im Editor (Tastatur: STRG+K, STRG+E), um Codeformate aus einer EditorConfig-Datei oder von der Optionsseite Codeformat anzuwenden. Wenn für das Projekt eine .editorconfig-Datei vorhanden ist, haben diese Einstellungen Vorrang.
Tipp
Regeln, die mit dem Schweregrad Kein konfiguriert sind, nehmen nicht an der Codebereinigung teil, können aber einzeln über das Menü Schnellaktionen und Refactorings angewendet werden.
So wenden Sie Codeformatvorlagen an:
Konfigurieren Sie zunächst im Dialogfeld Codebereinigung konfigurieren (in einem von zwei Profilen), welche Codeformate Sie anwenden möchten. Um dieses Dialogfeld zu öffnen, klicken Sie auf den Erweiterungspfeil neben dem Besensymbol der Codebereinigung, und wählen Sie dann Codebereinigung konfigurieren aus.
Nachdem Sie die Codebereinigung konfiguriert haben, verwenden Sie eine der folgenden Methoden zum Ausführen der Codebereinigung:
Klicken Sie auf das Besensymbol, oder drücken Sie STRG+K, STRG+E.
Wenn Sie die Codebereinigung für das gesamte Projekt oder die gesamte Projektmappe ausführen möchten, klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projekt- oder Projektmappennamen, wählen Sie "Analysieren" und "Codebereinigung" aus, und wählen Sie dann "Codebereinigung ausführen" aus.
Wenn die Codeformateinstellungen jedes Mal angewendet werden sollen, wenn Sie eine Datei speichern, wechseln Sie zu Optionen>Text-Editor>Codebereinigung, und wählen Sie Codebereinigungsprofil beim Speichern ausführen aus.
Einstellungen für die Codebereinigung
Die meisten Einstellungen für die Codebereinigung sind mindestens einem .NET-Codeformat zugeordnet, das in .editorconfig unterstützt wird. Verwenden Sie für Beispiele, die die Auswirkungen der Einstellungen zeigen, die Links in der folgenden Tabelle.
Einstellung | Regel-ID oder Formatoption |
---|---|
Entfernen unnötiger Importe oder Verwendungen | IDE0005 |
Importe oder Verwendungen sortieren | dotnet_sort_system_directives_first dotnet_separate_import_directive_groups |
Dateiheadereinstellungen anwenden | file_header_template |
Entfernen nicht verwendeter Variablen | CS0219 |
Objekterstellungsvoreinstellungen anwenden | visual_basic_style_prefer_simplified_object_creation |
IsNot-Voreinstellungen anwenden | visual_basic_style_prefer_isnot_expression |
Qualifizierung „this“ oder „Me“ hinzufügen | IDE0003-IDE0009 |
Zugriffsmodifizierer hinzufügen | dotnet_style_require_accessibility_modifiers |
Modifizierer anordnen | IDE0036 |
Schreibschutz für Feld festlegen | dotnet_style_readonly_field |
Unnötige Umwandlungen entfernen | IDE0004 |
Parameter für Objekt-/Sammlungsinitialisierung anwenden | dotnet_style_object_initializer |
Platzierungseinstellungen für Verwendungsrichtlinien anwenden | csharp_using_directive_placement |
Voreinstellungen für Klammern anwenden | IDE0047-IDE0048 |
Nicht verwendete Werteinstellungen anwenden | IDE0058 |
Typeinstellungen für Sprache/Framework anwenden | IDE0049 |
Nicht verwendete Unterdrückungen entfernen | dotnet_remove_unnecessary_suppression_exclusions |
Voreinstellungen für vereinfachende boolesche Ausdrücke anwenden | dotnet_style_prefer_simplified_boolean_expressions |
Einstellungen für die Zeichenfolgeninterpolation anwenden | dotnet_style_prefer_simplified_interpolation |
Nicht verwendete Parameter entfernen | dotnet_code_quality_unused_parameters |
Automatische Eigenschaftsvoreinstellungen anwenden | dotnet_style_prefer_auto_properties |
Verbundzuweisungsvoreinstellungen anwenden | dotnet_style_prefer_compound_assignment |
Voreinstellungen für zusammengesetzte Ausdrücke anwenden | dotnet_style_coalesce_expression |
Voreinstellungen für bedingte Ausdrücke anwenden | dotnet_style_prefer_conditional_expression_over_assignment dotnet_style_prefer_conditional_expression_over_return |
Voreinstellungen für Tupelnamen anwenden | dotnet_style_explicit_tuple_names dotnet_style_prefer_inferred_tuple_names |
Abgeleitete Einstellungen für Membernamen des anonymen Typs anwenden | dotnet_style_prefer_inferred_anonymous_type_member_names |
Voreinstellungen für NULL-Überprüfung anwenden | dotnet_style_prefer_is_null_check_over_reference_equality_method |
Voreinstellungen für NULL-Weitergabe anwenden | dotnet_style_null_propagation |
„var“-Einstellungen anwenden | IDE0007-IDE0008 |
Geschweifte Klammern für einzeilige Steuerungsanweisungen hinzufügen | csharp_prefer_braces |
Ausdrucks-/Blocktexteinstellungen anwenden | Ausdruckskörpermember |
Einstellungen für out-Inlinevariablen anwenden | csharp_style_inlined_variable_declaration |
Musterabgleichseinstellungen anwenden | Einstellungen für den Musterabgleich |
Einstellungen für bedingte Stellvertretungsaufrufe anwenden | csharp_style_conditional_delegate_call |
Statische lokale Funktionseinstellungen anwenden | csharp_prefer_static_local_function |
Dekonstruktionseinstellungen anwenden | csharp_style_deconstructed_variable_declaration |
default(T)-Einstellungen anwenden | csharp_prefer_simple_default_expression |
new()-Einstellungen anwenden | csharp_style_implicit_object_creation_when_type_is_apparent |
Bereichseinstellungen anwenden | csharp_style_prefer_range_operator |
Lokale statt anonyme Funktionseinstellungen anwenden | csharp_style_pattern_local_over_anonymous_function |
Parameter-NULL-Einstellungen anwenden | Einstellungen für die NULL-Überprüfung |
Using-Anweisungseinstellungen anwenden | csharp_prefer_simple_using_statement |
Voreinstellungen für Ausdrucksauslösung anwenden | csharp_style_throw_expression |
::: moniker-end