Freigeben über


Codeformateinstellungen und Codebereinigung

Mit Code-Stil-Einstellungen können Sie Aspekte des Codes steuern, wie z. B. Einzugsstil, Tabstoppbreite, Codierung, Zeilenendzeichen und viele andere Formatierungsoptionen. Sie können Codeformateinstellungen auf zwei Arten definieren:

Sie können Visual Studio auch so konfigurieren, dass Codeformateinstellungen mithilfe der Befehle "Codebereinigung " und " Dokument formatieren " angewendet werden.

Sie können Code-Stil-Einstellungen pro Projekt mithilfe einer EditorConfig-Datei definieren oder für den gesamten Code, den Sie in Visual Studio bearbeiten, auf der Seite mit den .NET-Optionen oder der Seite mit den C/C++-Optionen des Text-Editors festlegen. Für C#-Code können Sie visual Studio auch so konfigurieren, dass diese Codeformateinstellungen mithilfe der Befehle CodeBereinigung (Visual Studio 2019) und "Dokument formatieren " (Visual Studio 2017) angewendet werden.

Für .NET basieren die Codestileinstellungen auf .NET-Compilerplattform(Roslyn)-Analyzern. Weitere Informationen finden Sie unter Codeanalyse mithilfe von .NET Compiler Platform (Roslyn)-Analysegeräten.

In Visual Studio 2019, Version 16.5 und höher, wurden Rule-Set-Dateien durch EditorConfig-Dateien für die Konfiguration des Codestils von .NET-Code abgeschafft. Weitere Informationen finden Sie unter Konvertieren einer vorhandenen Regelsatzdatei in eine EditorConfig-Datei.

Code-Stile in EditorConfig-Dateien

Codeformateinstellungen können durch Hinzufügen einer EditorConfig-Datei zu Ihrem Projekt angegeben werden. EditorConfig-Dateien werden einer Codebasis und nicht einem Visual Studio-Personalisierungskonto zugeordnet. Einstellungen in einer EditorConfig-Datei haben Vorrang vor Codeformatvorlagen, die im Dialogfeld Optionen angegeben sind. Verwenden Sie eine EditorConfig-Datei, wenn Sie Codierungsstile für alle Mitwirkenden für Ihr Repository oder Projekt erzwingen möchten. Sie sind besonders nützlich, um die Konsistenz in einer Teams-Programmierumgebung sicherzustellen.

Informationen zum Hinzufügen einer EditorConfig-Datei finden Sie unter Hinzufügen und Entfernen von EditorConfig-Dateien.

Referenzinformationen zu .NET-Codeformatvorlageneinstellungen finden Sie unter Codeformatvorlageneinstellungen.

C/C++-Codeformatvorlagen im Dialogfeld "Optionen"

Sie können viele einzelne Codeformatierungsoptionen angeben, z. B. Einzug und Klammerpositionen. Wechseln Sie dazu zu Extras>Optionen>Text-Editor>C/C++>Code Stil>Formatierung (oder drücken Sie STRG+Q und suchen Sie nach "Formatierung"). Alternativ können Sie eine der ClangFormat-Formatvorlagen (oder ihre eigene benutzerdefinierte ClangFormat-Formatvorlage) angeben.

Screenshot des Bereichs

Sie können viele einzelne Codeformatierungsoptionen angeben, z. B. Einzug und Klammerpositionen. Wechseln Sie dazu zu Extras>Optionen>Text Editor>C/C++>-Formatierung (oder geben Sie Strg + Q ein und suchen Sie nach "Formatierung"). Alternativ können Sie eine der ClangFormat-Formatvorlagen (oder ihre eigene benutzerdefinierte ClangFormat-Formatvorlage) angeben.

Weitere Informationen zu allen Formatierungsoptionen finden Sie unter "Optionen", "Text-Editor", "C/C++", "Formatierung".

.NET-Codeformatvorlagen im Dialogfeld "Optionen"

Code-Stilpräferenzen können für alle C#- und Visual Basic-Projekte festgelegt werden, indem Sie das Dialogfeld Optionen im Menü Extras öffnen. Wählen Sie im Dialogfeld "Optionen " den Text-Editor> [C# oder Visual Basic] >Codeformat aus.

  • Wählen Sie für Formatvorlagen eine Option unter Formatierung aus.
  • Wählen Sie optionen unter "Allgemein" oder "Benennung" aus, um Codestileinstellungen für Schnelle Aktionen und IDE-Codestilregeln zu verwenden.

Code-Stilpräferenzen können für alle 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 in der Liste zeigt eine Vorschau der Einstellung an, wenn Sie die Option auswählen:

Screenshot der Codestiloptionen.

Screenshot der Codestiloptionen.

In diesem Fenster festgelegte Optionen gelten für Ihr Visual Studio-Personalisierungskonto und sind keinem bestimmten Projekt oder Codebasis zugeordnet. Darüber hinaus werden sie auch nicht während des Buildprozesses erzwungen, auch nicht bei CI-Builds (Continuous Integration). Wenn Sie Ihrem Projekt Codestileinstellungen zuordnen möchten und die Formatvorlagen während des Builds erzwungen werden sollen, geben Sie die Einstellungen in einer EditorConfig-Datei an, die dem Projekt zugeordnet ist.

Präferenz und Schweregrad

Für jede Code-Stil-Einstellung auf den Einstellungsseiten Allgemein und Benennung können Sie die Präferenz und Schweregradwerte mithilfe der Dropdowns in jeder Zeile festlegen. Der Schweregrad kann auf Nur Refactoring, Vorschlag, Warnung oder Fehler festgelegt werden.

  • Die Code-Stil-Vorgaben in den Optionen "Allgemein" und "Benennung" legen die Schnellaktionen für einen Code-Stil fest. 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.
  • Wenn die Verletzung nur als Schnelle Aktion angezeigt und auch von der Codebereinigung ausgeschlossen werden soll, legen Sie den Schweregrad auf "Refactoring Only" fest.
  • Wenn der Verstoß im Fenster "Fehlerliste" sowie "Schnelle Aktionen" angezeigt werden soll und in die Codebereinigung einbezogen werden soll, legen Sie den Schweregrad auf Vorschlag, Warnung oder Fehler fest. Verstöße werden als Vorschlag (Meldung), Warnung oder Fehler angezeigt, wenn Sie die Ausgabe im Fenster "Fehlerliste" auf "Build + IntelliSense" festlegen. Sie sind ausgeschlossen von Bauen Sie nur Ausgabe.

Einstellungen in einer EditorConfig-Datei haben Vorrang vor Code-Stilen, die auf diesen Seiten festgelegt sind.

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 .NET-Codeformatvorlagen als Warnungen oder Fehler mit einem Präfix "IDE" angezeigt. Auf diese Weise können Sie konsistente Codeformatvorlagen in Ihrer Codebasis strikt erzwingen.

Anwenden von Codeformaten

Wenn Sie eine Codeformatvorlage auf der Seite "Optionen" ändern oder ihrem Projekt in Visual Studio eine EditorConfig-Datei hinzufügen, werden nur neue Codezeilen basierend auf den neuen Einstellungen formatiert. Die Formatierung des vorhandenen Codes wird nur geändert, wenn Sie einen der folgenden Befehle ausführen:

  • Code Bereinigung.

    Wählen Sie Code Cleanup (Codebereinigung) im Visual Studio-Editor, oder drücken Sie Strg+K, Strg+E. Dieser Befehl gilt für Leerzeicheneinstellungen, z. B. Einzugsformat und ausgewählte Codeformateinstellungen, z. B. Klammereinstellungen.

  • Dokument formatieren.

    Wählen Sie Edit>Advanced>Format Document oder drücken Sie Strg+K, Strg+D im Standardprofil. Dieser Befehl bezieht sich nur auf die Einstellungen für den Leerraum, z. B. den Einrückungsstil.

Anwenden von Codestilen mit Codebereinigung

Um Code-Stile aus einer EditorConfig-Datei oder von der Optionsseite "Code-Stil" anzuwenden, verwenden Sie die Schaltfläche "Codebereinigung" unten im Editor (Tastenkombination: STRG+K, STRG+E). Wenn eine EditorConfig-Datei für das Projekt vorhanden ist, sind dies die Einstellungen, die Vorrang haben.

Tipp

.NET-Regeln, die mit dem Schweregrad "Nur Umgestaltung" konfiguriert sind, nehmen nicht an der Codebereinigung teil, können aber über das Menü "Schnelle Aktionen und Umgestaltungen" einzeln angewendet werden.

So wenden Sie Codestile an:

  1. 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. Alternativ können Sie das Menü "Codebereinigung>" verwenden.

    Screenshot: Codebereinigung konfigurieren.

    Eine Zuordnung von .NET-Codebereinigungs-Fixern zu .NET-Codestilregeln finden Sie unter .NET-Codebereinigungseinstellungen.

    C/C++-Optionen schließen C++ in den Namen des Fixers ein.

  2. 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.

      Screenshot von

    • Um die Codebereinigung für das gesamte Projekt oder die gesamte Projektmappe auszuführen, klicken Sie im 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.

      Screenshot: Ausführen der Codebereinigung für ein gesamtes Projekt oder eine gesamte Projektmappe.

  3. (Optional) Wenn Sie möchten, dass Ihre Codeformatvorlageneinstellungen bei jedem Speichern einer Datei angewendet werden, gehen Sie zu Optionen>Text-Editor>Codebereinigung und wählen Sie "Profil für Codebereinigung beim Speichern ausführen" aus.

Für C#-Codedateien verfügt Visual Studio über eine Schaltfläche Codebereinigung unten im Editor (Tastatur: STRG+K, STRG+E), um Code-Stil-Vorlagen aus einer EditorConfig-Datei oder von der Seite Code-Stil-Optionen anzuwenden. Wenn eine EditorConfig-Datei für das Projekt vorhanden ist, sind dies die Einstellungen, die Vorrang haben.

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 Codestile an:

  1. 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.

    Screenshot: Codebereinigung konfigurieren.

  2. 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.

      Screenshot von

    • Zum Ausführen der Codebereinigung für das gesamte Projekt oder die gesamte Projektmappe klicken Sie mit der rechten Maustaste auf den Projekt- oder Projektmappennamen im Projektmappen-Explorer, wählen Sie Analysieren und Codebereinigungaus, und wählen Sie dann Codebereinigung ausführenaus.

      Screenshot: Ausführen der Codebereinigung für ein gesamtes Projekt oder eine gesamte Projektmappe.

    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).

.NET-Codebereinigungseinstellungen

Die meisten Codebereinigungseinstellungen werden einem oder mehreren .NET-Codeformatvorlagen zugeordnet, die in EditorConfig unterstützt werden. Verwenden Sie die Links in der folgenden Tabelle für Beispiele, die die Auswirkungen der Einstellungen zeigen.

Einstellung Regel-ID oder Stiloption
Entfernen unnötiger Importe oder Verwendungen IDE0005
Importe oder Verwendungen sortieren dotnet_sort_system_directives_first
dotnet_separate_import_directive_groups
Dateiheadereinstellungen anwenden Datei-Kopfzeile_Vorlage
Nicht verwendete Variablen entfernen CS0219
Objekterstellungsvorgaben anwenden Visual-Basic-Stil: Bevorzuge vereinfachte Objekterstellung
IsNot-Einstellungen anwenden visual_basic_style_prefer_isnot_expression
Qualifizierung „this“ oder „Me“ hinzufügen IDE0003-IDE0009
Hinzufügen von Barrierefreiheitsmodifizierern 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
Anwenden von Klammernpräferenzen IDE0047-IDE0048
Anwenden ungenutzter Wertepräferenzen IDE0058
Anwenden von Sprach-/Framework-Typeinstellungen 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
Anwendung von Präferenzen für die Zeichenfolgeninterpolation 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
Anwenden bedingter Ausdruckspräferenzen
dotnet_style_prefer_conditional_expression_over_assignmentdotnet_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
Anwenden von Nullprüfungspräferenzen dotnet_style_prefer_is_null_check_over_reference_equality_method
Voreinstellungen für NULL-Weitergabe anwenden dotnet_style_null_propagation
Anwenden von "var"-Voreinstellungen IDE0007-IDE0008
Geschweifte Klammern für einzeilige Steuerungsanweisungen hinzufügen csharp_prefer_braces
Ausdrucks-/Blocktexteinstellungen anwenden Expression-bodied Mitglieder
Einstellungen für out-Inlinevariablen anwenden csharp_style_inlined_variable_declaration
Musterabgleichseinstellungen anwenden Pattern-Matching-Einstellungen
Einstellungen für bedingte Stellvertretungsaufrufe anwenden csharp_style_conditional_delegate_call
Anwenden statischer lokaler Funktionseinstellungen csharp_bevorzugt_statische_lokale_funktionen
Dekonstruktionseinstellungen anwenden csharp_style_deconstructed_variable_declaration
Anwenden von Standardpräferenzen (T) 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 Einstellungen gegenüber Präferenzen für anonyme Funktionen bevorzugen csharp_style_pattern_local_over_anonymous_function
Anwenden von Null-Präferenzen für Parameter Nullprüfungs-Einstellungen
Using-Anweisungseinstellungen anwenden csharp_prefer_simple_using_statement
Voreinstellungen für Ausdrucksauslösung anwenden csharp_style_throw_expression