Editorconfig in Visual Studio

post-thumb

Visual Studio bietet Entwicklern jede Menge Möglichkeiten, um die Entwicklungsumgebung an eigene Anforderungen und Wünsche anzupassen. Doch was, wenn das Team bestimmte Konventionen und Einstellung bevorzugt? Zum einen möchte man seine Einstellungen nicht mit denen aus einem Projekt “mischen”, zum anderen nicht mit den Einstellungen überspielen. Hier schafft die Editor-Config-Datei in einem Projekt Abhilfe.

Wie das in Visual Studio funktioniert und welche Einstellungen mir persönlich sehr beim Entwickeln und Refactoring in meinen Projekten geholfen haben, zeige ich in diesem Blogbeitrag.

Was ist die .editorconfig in Visual Studio?

In der Editor-Config-Datei (.editorconfig) können einheitliche Codierungsformate für das Projekt hinzugefügt werden. Der Vorteil ist, dass diese Einstellungen vor den globalen Einstellungen von Visual Studio verwendet werden und durch die Ablage im Projekt alle Entwickler im Projekt eine gemeinsame Basis haben. Die Editor-Config-Datei kann für jedes Projekt spezifisch angepasst werden. Darin werden u.a. Einstellungen für die Tab-Länge usw. vorgenommen.

Diese Einstellungen können je entsprechender Entwicklungsdatei (z.B. .cs-Dateien) im Projekt durch die Tastenkombination STRG + K, STRG + E angewandt werden. Eine Anwendung auf das ganze Projekt ist nicht möglich.

Wo sind meine Einstellungen?

Wenn man ein neues Projekt mit Visual Studio erstellt, wird zunächst keine Editor-Config-Datei für das aktuelle Projekt angelegt. Durch das Hinzufügen einer neuen Datei (via Rechtsklick) kann nach einer Editor-Datei gesucht und diese dann hinzugefügt werden. Dabei sollte der Standardname beibehalten werden.

Editor-Config-Add

Die Editor-Config-Datei beinhaltet eine Menge an Einstellungen, die für C#-Dateien gelten.

Die Einstellungen aus der Editor-Config-Datei gelten für alle Dateien auf derselben Ebene und der Unterordner.

Getting Started mit .editorconfig in Visual Studio

Die Editor-Config-Datei beinhaltet nun einige Einstellungen, wie z.B. die Länge eines Tabstopps oder die Verwendung von tatsächlichen Tabs anstelle von Leerzeichen:

tab_width = 4
indent_size = 4
indent_style = space

Darüber hinaus können auch Konventionen definiert werden. So kann beispielsweise festgelegt werden, dass bei der Verwendung eines IF-Statements nicht die Kurzschreibweise ohne geschweifte Klammern verwendet werden kann, sondern dass explizit welche gesetzt werden müssen - auch wenn es syntaktisch erlaubt wäre. Zusätzlich lässt sich einstellen, ob hierbei nur ein Warning oder die entsprechende Codestelle als Fehler gekennzeichnet wird.

csharp_prefer_braces = true:error

Der Name gibt die Property an, die Angabe von true oder false, ob diese angewandt werden soll und das error nach dem Doppelpunkt, wie diese Regel angewandt werden soll.

In diesem konkreten Beispiel würde hierdurch ein Fehler in der Fehlerliste erscheinen.

Error in Editor-Config-Datei

Dabei kann der Schweregrad (Severity) in unterschiedlichen Ausprägungen erfolgen:

  • None
  • Silent
  • Suggestion
  • Warning
  • Error

Hierdurch erscheint ein Hinweis z.B. in den Warnings als Fehler oder man erhält keine Hinweise.

Meine persönlichen .editorconfig-Einstellungen

In der Vergangenheit haben mir persönlich die Editor-Config-Einstellungen insbesondere beim Refactoring geholfen. Nach dem Refactoring in einer Klasse ist beispielsweise die Sortierung der usings willkürlich oder nicht-verwendete usings verbleiben nach dem Refactoring in der C#-Datei. Bei manchen automatisch hinzugefügten usings wird selbige in vereinfachter Form hinzugefügt und nicht als fully qualified name, was u. U. zur Mehrdeutigkeit mancher usings führen kann.

Mit den folgenden Einstellungen in der Editor-Config-Datei kann dem Ganzen Abhilfe geschaffen werden:

  • dotnet_sort_system_directives_first = true: Die System-usings werden alphabetisch sortiert und vor den restlichen usings eingefügt.
  • dotnet_diagnostic.IDE0005.severity = error: Nicht-benötigte usings werden als Fehler erkannt und in der Fehlerliste ausgegeben.
  • csharp_qualified_using_at_nested_scope = true: Das Hinzufügen von usings erfolgt als fully qualified name.

Im folgenden Screenshot sind einige usings beliebig sortiert und es befindet sich ein nicht-verwendetes usings darin:

Usings in Editor-Config-Datei

Nach dem Hinzufügen der oben genannten Einstellungen in die Editor-Config-Datei (.editorconfig) und dem Anwenden via STRG + K, STRG + E erhält man folgende Darstellung:

Editor-Config-Datei nach Einstellungen

Fazit zur Editor-Config-Datei in Visual Studio

Die Editor-Config-Datei gibt Teams die Möglichkeit, gemeinsam Regeln festzulegen und diese anzuwenden, auch wenn in den persönlichen Einstellungen in Visual Studio Gegenteiliges definiert wurde. Sicherlich gibt es hier noch mehr Möglichkeiten, aber ich für meinen Teil habe die größten Mehrwerte insbesondere beim Refactoring gesehen und habe mir angewöhnt, neben der Formatierung (STRG + K, STRG + D) auch die Editor-Config-Regeln (STRG + K, STRG + E) anzuwenden, bevor ich die Datei speichere und verlasse.

Lernen Sie uns kennen

Das sind wir

Wir sind ein Software-Unternehmen mit Hauptsitz in Karlsruhe und auf die Umsetzung von Digitalstrategien durch vernetzte Cloud-Anwendungen spezialisiert. Wir sind Microsoft-Partner und erweitern Standard-Anwendungen bei Bedarf – egal ob Modernisierung, Integration, Implementierung von CRM- oder ERP-Systemen, Cloud Security oder Identity- und Access-Management: Wir unterstützen Sie!

Mehr über uns

Der Objektkultur-Newsletter

Mit unserem Newsletter informieren wir Sie stets über die neuesten Blogbeiträge,
Webcasts und weiteren spannenden Themen rund um die Digitalisierung.

Newsletter abonnieren