Definieren Sie konsistente Codierungsstile mit EditorConfig

Um konsistente Codierungsstile für alle, die an einer Codebasis arbeiten, zu erzwingen, können Sie eine EditorConfig-Datei zu Ihrer Projektmappe oder Ihrem Projekt hinzufügen. Die Einstellungen der EditConfig-Datei entsprechen einer Dateiformat-Spezifikation, die von EditorConfig.org gepflegt wird. Viele Code-Editoren und Anwendungen unterstützen EditorConfig-Dateien, darunter auch Visual Studio. Außerdem ist es eine portable Komponente, die mit dem Code geliefert wird und Codierungsstile auch außerhalb von Visual Studio erzwingen kann.

In Visual Studio haben die Einstellungen der EditorConfig-Datei Vorrang vor den globalen Texteditor-Einstellungen (die Sie durch Auswahl von Text Editor im Dialogfeld Tools>Optionen aufrufen können). Das bedeutet, dass Sie jede Codebasis für die Verwendung von Text-Editor-Einstellungen anpassen können, die für dieses Projekt spezifisch sind. Wenn Sie EditorConfig-Dateien verwenden, können Sie weiterhin Ihre persönlichen Editoreinstellungen im Visual Studio-Texteditor festlegen. Diese Texteditor-Einstellungen gelten immer dann, wenn Sie in einer Codebasis ohne EditorConfig-Datei arbeiten oder wenn die EditorConfig-Datei eine bestimmte Einstellung nicht außer Kraft setzt. Ein Beispiel für eine solche Einstellung ist die Frage, ob Tabulatoren oder Leerzeichen für den Code-Einzug verwendet werden sollen.

Wenn Sie eine EditorConfig-Datei zu Ihrem Projekt in Visual Studio hinzufügen, werden nur neue Codezeilen auf der Grundlage der EditorConfig-Einstellungen formatiert. Die Formatierung von vorhandenem Code wird nicht geändert, es sei denn, Sie führen einen der folgenden Befehle aus:

  • Codebereinigung.

    Wählen Sie Code Cleanup (Codebereinigung) im Visual Studio-Editor, oder drücken Sie Strg+K, Strg+E. Dieser Befehl bezieht sich auf Einstellungen für den Leerraum, wie z. B. den Einzugsstil, und ausgewählte Einstellungen für den Codestil, wie z. . die Klammerpräferenzen.

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

Hinweis

Dieses Thema bezieht sich auf Visual Studio für Windows. Für Visual Studio für Mac, siehe Erstellen und Bearbeiten einer benutzerdefinierten EditorConfig-Datei in Visual Studio für Mac.

Codekonsistenz

Mit den Einstellungen in der EditorConfig-Datei können Sie konsistente Codierungsstile und -konventionen in einer Codebasis beibehalten, unabhängig von dem verwendeten Editor oder der IDE. Einige Codierungsstile, die Sie steuern können, sind der Einrückungsstil, die Tabulatorbreite, die Zeichen am Zeilenende und die Codierung. Wenn Ihre C#-Codebasis beispielsweise die Konvention hat, dass Einzüge fünf Leerzeichen verwenden, Dokumente UTF-8-Codierung verwenden und Zeilen mit CR/LF enden, können Sie eine EditorConfig-Datei so konfigurieren, dass diese Konvention verwendet wird.

EditorConfig-Dateien sind nützlich, wenn die Konventionen für die Codierung, die Sie in Ihren persönlichen Projekten verwenden, von den Konventionen abweichen, die in den Projekten Ihres Teams verwendet werden. Zum Beispiel könnten Sie es vorziehen, dass ein Einzug ein Tabulatorzeichen in Ihren Code einfügt. Ihr Team könnte es jedoch vorziehen, dass ein Einzug stattdessen vier Leerzeichen hinzufügt. EDITORCONFIG-Dateien lösen dieses Problem, indem sie es Ihnen ermöglichen, für jedes Szenario eine Konfiguration zu verwenden.

Da eine .editorconfig-Datei in der Codebase die EditorConfig-Einstellungen enthält, werden sie mit der Codebase mitgeführt. Sofern Sie die Codedatei in einem mit EditorConfig kompatiblen Editor öffnen, werden die Text-Editor-Einstellungen aktiviert.

Hinweis

Konventionen, die Sie in einer EditorConfig-Datei festlegen, können in einer CI/CD-Pipeline nicht als Build-Fehler oder -Warnungen durchgesetzt werden. Alle Stilabweichungen werden nur im Visual Studio-Editor und in der Fehlerliste angezeigt.

Unterstützte Einstellungen

Der Editor in Visual Studio unterstützt die gebräuchlichsten EditorConfig-Eigenschaften:

  • indent_style
  • indent_size
  • tab_width
  • end_of_line
  • charset
  • trim_trailing_whitespace
  • insert_final_newline
  • root

EditorConfig unterstützt alle von Visual Studio unterstützten Sprachen mit Ausnahme der XML-Unterstützung EditorConfig-Editoreinstellungen.

EditorConfig unterstützt Codestil-Konventionen einschließlich Sprach-, Formatierungs- und Benennungs-Konventionen für C# und Visual Basic.

Hinzufügen und Entfernen von EditorConfig-Dateien

Wenn Sie eine EditorConfig-Datei zu Ihrem Projekt oder Ihrer Codebase hinzufügen, formatiert Visual Studio alle neuen Codezeilen, die Sie schreiben, entsprechend den Einstellungen der EditorConfig-Datei. Visual Studio konvertiert die vorhandenen Stile jedoch erst dann in die neuen, wenn Sie das Dokument formatieren oder Code Cleanup ausführen. Wenn die Einzüge in Ihrer Datei beispielsweise mit Tabulatoren formatiert sind und Sie eine EditorConfig-Datei hinzufügen, die Einzüge mit Leerzeichen formatiert, werden die Einzugszeichen nicht automatisch in Leerzeichen umgewandelt. Wenn Sie das Dokument formatieren (wählen Sie Edit>Advanced>Format Document oder drücken Sie Strg+K, Strg+D), werden die Leerraumeinstellungen in der EditorConfig-Datei auf bestehende Codezeilen angewendet.

Wenn Sie eine EditorConfig-Datei aus Ihrem Projekt oder Ihrer Codebasis entfernen, müssen Sie alle geöffneten Codedateien schließen und erneut öffnen, damit die globalen Editoreinstellungen für neue Codezeilen wirksam werden.

Hinzufügen einer EditorConfig-Datei zu einem Projekt

Gehen Sie folgendermaßen vor, um eine EditorConfig-Datei zu Ihrem Projekt oder Ihrer Lösung hinzuzufügen:

  1. Öffnen Sie ein Projekt oder eine Projektmappe in Visual Studio. Wählen Sie entweder den Projektmappen- oder den Projektknoten aus, je nachdem, ob Ihre EditorConfig-Einstellungen für alle Projekte in der Projektmappe oder nur für eines gelten sollen. Sie können ebenfalls einen Ordner in Ihrem Projekt oder in Ihrer Projektmappe auswählen, zu dem die EDITORCONFIG-Datei hinzugefügt werden soll.

  2. Wählen Sie im Menü Project>Add New Item, oder drücken Sie Strg+Umschalt+A.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  3. Geben Sie in das Suchfeld editorconfig ein.

    In den Suchergebnissen werden zwei Elementvorlagen für die EditorConfig-Datei angezeigt.

    Screenshot: EditorConfig-Dateielementvorlagen in Visual Studio.

  4. Wählen Sie die Vorlage editorconfig File (empty), um eine EditorConfig-Datei hinzuzufügen, die mit Standard-EditorConfig-Optionen für Leerzeichen, Codestil und Namenskonventionen vorbelegt ist. Oder wählen Sie die Vorlage editorconfig File (.NET), um eine EditorConfig-Datei hinzuzufügen, die mit den standardmäßigen .NET-Whitespace-, Code-Stil- und Benennungskonventionen vorausgefüllt ist.

    Im Solution Explorer wird eine neue .editorconfig-Datei angezeigt, die im Editor als neue Registerkarte geöffnet wird.

    Screenshot: .editorconfig-Datei im Projektmappen-Explorer und Editor.

  5. Bearbeiten Sie die Datei gegebenenfalls und speichern Sie sie dann.

Weitere Möglichkeiten zum Hinzufügen einer EditorConfig-Datei

Es gibt mehrere Möglichkeiten, wie Sie Ihrem Projekt eine EDITORCONFIG-Datei hinzufügen können:

Dateihierarchie und Rangfolge

Wenn Sie eine .editorconfig-Datei zu einem Ordner in Ihrer Dateihierarchie hinzufügen, gelten ihre Einstellungen für alle anwendbaren Dateien auf dieser Ebene und darunter. Sie können die EditorConfig-Einstellungen ebenfalls für ein bestimmtes Projekt, eine bestimmte Codebasis oder für einen Teil einer Codebasis außer Kraft setzen, sodass dieser andere Konventionen als die anderen Teile der Codebasis verwendet. Dies kann nützlich sein, wenn Sie Code von einem anderen Ort übernehmen und dessen Konventionen nicht ändern wollen.

Befolgen Sie diese Richtlinien:

  • Fügen Sie zur Außerkraftsetzung einiger oder aller EditorConfig-Einstellungen eine EDITORCONFIG-Datei zu der Ebene der Dateihierarchie hinzu, für die die Einstellungen außer Kraft gesetzt werden sollen. Die neuen Einstellungen der EditorConfig-Datei gelten für Dateien auf derselben Ebene und für Dateien in allen Unterverzeichnissen.

    Screenshot: EditorConfig-Hierarchie.

  • Wenn einige, aber nicht alle Einstellungen außer Kraft gesetzt werden sollen, geben Sie nur diese Einstellungen in der EDITORCONFIG-Datei an. Nur die Eigenschaften, die Sie explizit in der untergeordneten .editorconfig-Datei auflisten, werden außer Kraft gesetzt. Andere Einstellungen aus übergeordneten .editorconfig-Dateien gelten weiterhin.

  • Wenn Sie sicherstellen wollen, dass keine Einstellungen aus übergeordneten .editorconfig-Dateien auf diesen Teil der Codebasis angewendet werden, fügen Sie die Eigenschaft root=true zur untergeordneten .editorconfig-Datei hinzu.

    # top-most EditorConfig file for this level
    root = true
    

EditorConfig-Dateien werden von oben nach unten gelesen. Wenn es mehrere Eigenschaften mit demselben Namen gibt, hat die zuletzt gefundene Eigenschaft mit demselben Namen Vorrang.

Bearbeiten von EditorConfig-Dateien

Visual Studio 2022 stellt einen visuellen Editor für EditorConfig-Dateien bereit.

Nachdem Sie Ihre EditorConfig-Datei bearbeitet haben, müssen Sie Ihre Codedateien neu laden, damit die neuen Einstellungen wirksam werden.

Visual Studio unterstützt Sie bei der Bearbeitung von EditorConfig-Dateien durch die Bereitstellung von IntelliSense-Vervollständigungslisten. Zum Beispiel:

Screenshot: IntelliSense in einer EditorConfig-Datei.

Wenn Sie viele EditorConfig-Dateien bearbeiten, könnte die Erweiterung EditorConfig Language Service hilfreich sein. Zu den Features dieser Erweiterung zählen die Syntaxhervorhebung sowie eine Verbesserung der Überprüfung, Codeformatierung und von IntelliSense.

Screenshot: IntelliSense mit EditorConfig Language Service-Erweiterung.

Beispiel

Das folgende Beispiel zeigt den Einrückungsstatus eines C#-Codefragments vor und nach dem Hinzufügen einer EditorConfig-Datei zum Projekt:

  1. Legen Sie im Dialogfeld Extras>Optionen die Einstellungen Texteditor>C#>Tabulatoren für den Visual Studio-Texteditor so fest, dass vier Leerzeichen erzeugt werden, wenn Sie die Taste Tabulator drücken.

    Screenshot: Einstellung der TAB-Taste für den Text-Editor.

  2. Wenn Sie in der nächsten Zeile die Taste Tab drücken, wird die Zeile wie erwartet um vier Leerzeichen eingerückt.

    Screenshot: Hinzufügen von Leerzeichen im Code mit der TAB-Taste.

    Screenshot: Hinzufügen von Leerzeichen im Code mit der TAB-Taste.

  3. Verwenden Sie EditorConfig, um die Einstellung für die TAB-Taste zum Verwenden von Tabs umzuschalten.

    Wählen Sie Tabs verwenden in der EditorConfig-Datei aus.

    Screenshot: Konfigurieren der Verwendung von Tabs für die TAB-Taste.

    Fügen Sie dem Projekt eine neue Datei namens .editorconfig mit folgendem Inhalt hinzu. Der Indikator [*.cs] bedeutet, dass diese Änderung nur für C#-Code-Dateien im Projekt gilt.

    # Top-most EditorConfig file
    root = true
    
    # Tab indentation
    [*.cs]
    indent_style = tab
    
  4. Wenn Sie die Taste Tabulator drücken, erscheinen jetzt Tabulatorzeichen anstelle von Leerzeichen.

    Screenshot: Hinzufügen von Tabstoppzeichen im Code mit der TAB-Taste.

    Screenshot: Hinzufügen von Tabstoppzeichen im Code mit der TAB-Taste.

Behandeln von Problemen mit den EditorConfig-Einstellungen

Wenn eine EditorConfig-Datei irgendwo in der Verzeichnisstruktur am oder über dem Speicherort Ihres Projekts vorhanden ist, wendet Visual Studio die Editoreinstellungen in dieser Datei auf Ihren Editor an. In diesem Fall wird möglicherweise die folgende Meldung in der Statusleiste angezeigt:

User preferences for this file type are overridden by this project's coding conventions.

Das bedeutet, dass, wenn irgendwelche Editoreinstellungen in Extras>Optionen>Texteditor (wie z. B. Einzugsgröße und -stil, Tabulatorgröße oder Codierungskonventionen) in einer EditorConfig-Datei am oder oberhalb des Projekts in der Verzeichnisstruktur angegeben sind, die Konventionen in der EditorConfig-Datei die Einstellungen in Texteditor außer Kraft setzen.

Führen Sie die folgenden Schritte aus, um Probleme mit EditorConfig zu beheben:

  1. Um die EditorConfig-Unterstützung für Visual Studio zu deaktivieren, deaktivieren Sie die Option Follow project coding conventions in Tools>Options>Text Editor.

    Screenshot: Einstellung zum Befolgen der Codierungskonventionen des Projekts.

  2. Um alle EditorConfig-Dateien in den übergeordneten Verzeichnissen Ihres Projekts zu finden, öffnen Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl im Stammverzeichnis des Datenträgers aus, der Ihr Projekt enthält.

    dir .editorconfig /s
    
  3. Um den Geltungsbereich Ihrer EditorConfig-Konventionen zu steuern, setzen Sie die Eigenschaft root=true in der Datei .editorconfig im Stammverzeichnis Ihres Repositorys oder in dem Verzeichnis, in dem sich Ihr Projekt befindet.

    Visual Studio sucht in dem Verzeichnis der geöffneten Datei oder in allen übergeordneten Verzeichnissen nach einer Datei mit der Dateiendung EDITORCONFIG. Die Suche wird beendet, wenn es den Stammdateipfad erreicht oder wenn eine EDITORCONFIG-Datei mit root=true gefunden wird.