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.

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 "Methoden zum Hinzufügen einer EditorConfig-Datei".

Referenzinformationen zu .NET-Codeformatvorlageneinstellungen finden Sie unter Codeformatvorlageneinstellungen.

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

Sie können viele individuelle Code-Formatierungsoptionen angeben, z. B. Einrückungen 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 individuelle Code-Formatierungsoptionen angeben, z. B. Einrückungen 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 Schnelle Aktionen 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 von Build-only-Ausgabe ausgeschlossen.

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

Erzwingen von Codeformaten 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:

  • Codebereinigung.

    Wählen Sie Codebereinigung im Visual Studio-Editor aus, 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 Bearbeiten>Erweitert>Dokument formatieren aus, oder drücken Sie STRG+K, STRG+D im Standardprofil. Dieser Befehl gilt nur für Leerzeicheneinstellungen, z. B. Einzugsformat.

Anwenden von Codestilen durch 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 Codeformate 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 enthalten C++ im Namen des Fixers.

  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: „Codebereinigung ausführen“ 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 Keiner konfiguriert sind, nehmen nicht an der Codebereinigung teil, können aber einzeln über das Menü Schnelle Aktionen und Refactorings angewendet werden.

So wenden Sie Codeformate 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: „Codebereinigung ausführen“ für ein gesamtes Projekt oder eine gesamte Projektmappe

    Wenn Ihre Codeformateinstellungen bei jedem Speichern einer Datei angewendet werden sollen, kann möglicherweise die Erweiterung Codebereinigung beim Speichern nützlich sein.

.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
Sortieren von Importen oder Verwendungen
dotnet_sort_system_directives_firstdotnet_separate_import_directive_groups
Anwenden von Dateiheadereinstellungen Datei-Kopfzeile_Vorlage
Nicht verwendete Variablen entfernen CS0219
Objekterstellungsvorgaben anwenden Visual-Basic-Stil: Bevorzuge vereinfachte Objekterstellung
IsNot-Einstellungen anwenden Visual-Basic-Stil_vorzugsweise_IsNot-Ausdruck
Hinzufügen der Qualifizierung „this“ oder „Me“ IDE0003-IDE0009
Hinzufügen von Barrierefreiheitsmodifizierern dotnet_style_require_accessibility_modifiers
Ordnen der Modifizierer IDE0036
Festlegen des Schreibschutzes für ein Feld dotnet_style_readonly_field
Entfernen unnötiger Umwandlungen IDE0004
Anwenden von Parametern für Objekt-/Sammlungsinitialisierungen dotnet_style_object_initializer
Anwenden using-Anweisungen für Platzierungseinstellungen csharp_using_directive_placement
Anwenden von Klammernpräferenzen IDE0047-IDE0048
Anwenden ungenutzter Wertepräferenzen IDE0058
Anwenden von Sprach-/Framework-Typeinstellungen IDE0049
Entfernen nicht verwendeter Unterdrückungen dotnet_remove_unnecessary_suppression_exclusions
Anwenden der Vereinfachung der Einstellungen für boolesche Ausdrücke dotnet_Stil_vorzug_einfacherer_boolescher_Ausdrücke
Anwendung von Präferenzen für die Zeichenfolgeninterpolation dotnet_style_prefer_simplified_interpolation
Nicht verwendete Parameter entfernen dotnet_code_quality_unused_parameters
Anwenden von automatischen Eigenschaftsvoreinstellungen dotnet_style_prefer_auto_properties
Anwenden von Verbundzuweisungseinstellungen dotnet_style_prefer_compound_assignment (Bevorzugung zusammengesetzter Zuweisungen)
Anwenden von Einstellungen für zusammengefügte Ausdrücke dotnet_style_coalesce_expression
Anwenden bedingter Ausdruckspräferenzen
dotnet_style_prefer_conditional_expression_over_assignmentdotnet_style_prefer_conditional_expression_over_return
Anwenden von Einstellungen für Tupelnamen
dotnet_style_explicit_tuple_namesdotnet_style_prefer_inferred_tuple_names
Anwenden abgeleiteter 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
Anwenden von Einstellungen für die NULL-Weitergabe dotnet_style_null_propagation
Anwenden von "var"-Voreinstellungen IDE0007-IDE0008
Hinzufügen von geschweiften Klammern für einzeilige Steuerungsanweisungen csharp_prefer_braces
Anwenden von Ausdrucks-/Blocktextkörpereinstellungen Ausdruckskörpermember
Anwenden von Einstellungen für Inline-Variablen vom Typ 'out' csharp_stil_eingebettete_Variablendeklaration
Anwenden von Musterabgleichseinstellungen Einstellungen für den Musterabgleich
Anwenden von Einstellungen für bedingte Stellvertretungsaufrufe csharp_style_conditional_delegate_call
Anwenden statischer lokaler Funktionseinstellungen csharp_bevorzugt_statische_lokale_funktionen
Anwenden von Dekonstruktionseinstellungen csharp_style_dekonstruierte_Variable_Deklaration
Anwenden von Standardpräferenzen (T) csharp_prefer_simple_default_expression
Anwenden von new()-Einstellungen csharp_style_implicit_object_creation_when_type_is_apparent
Anwenden von Bereichseinstellungen csharp_Stil_Bereichsoperator_bevorzugen
Lokale Einstellungen gegenüber Präferenzen für anonyme Funktionen bevorzugen csharp_stil_muster_lokal_über_anonyme_funktion
Anwenden von Null-Präferenzen für Parameter Einstellungen für die NULL-Überprüfung
Anwenden von using-Anweisungseinstellungen csharp_präferiere_einfaches_using_anweisung
Anwenden von Einstellungen für throw-Ausdrücke csharp_style_throw_expression