Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Ihrem Projekt EditorConfig-Dateien hinzufügen, um die C++-Formatierung zu konfigurieren, um einen konsistenten Codestil für alle Personen zu erzwingen, die zum Projekt beitragen. Sowohl Visual Studio als auch Visual Studio Code verfügen über integrierte EditorConfig-Unterstützung für jede der globalen Visual Studio C++-Formatierungseinstellungen. Die EditorConfig-Einstellungen werden in einer .editorconfig
Datei gespeichert. Wenn diese Datei in Ihrem Projekt vorhanden ist, hat sie Vorrang vor den Visual Studio-Formatierungseinstellungen.
In diesem Dokument werden alle EditorConfig C++-Formatierungseinstellungen aufgeführt, die von Visual Studio und Visual Studio Code unterstützt werden.
Weitere Informationen:
- Verwenden einer EditorConfig-Datei in Visual Studio finden Sie unter Definieren konsistenter Codierungsstile mit EditorConfig.
- Manuelles Erstellen einer EditorConfig-Datei basierend auf den Clang-Formatierungseinstellungen finden Sie unter "clangformat". Benennen Sie diese Datei
.editorconfig
um, und speichern Sie sie in Ihrem Projekt.
C++-Formatierungskonventionen
EditorConfig-Einstellungen für die C++-Formatierung ist cpp_
vorangestellt. Hier ist ein Beispiel dafür, wie eine .editorconfig
Datei aussehen könnte:
[*.{c++,cc,cpp,cxx,h,h++,hh,hpp,hxx,inl,ipp,tlh,tli}]
cpp_indent_case_contents_when_block = true
cpp_new_line_before_open_brace_namespace = same_line
Im restlichen Abschnitt dieses Dokuments werden alle EditorConfig-C++-Formatierungseinstellungen aufgelistet, die von Visual Studio und VS Code unterstützt werden.
Einzugseinstellungen
Geschweifte Klammern einrücken
- Name:
cpp_indent_braces
- Werte:
true
,false
Jede Zeile einziehen relativ zu
- Name:
cpp_indent_multi_line_relative_to
- Werte:
outermost_parenthesis
– Bei Eingabe einer neuen Zeile wird diese relativ zur äußersten öffnenden Klammer eingezogen.innermost_parenthesis
– Bei Eingabe einer neuen Zeile wird diese relativ zur innersten öffnenden Klammer eingezogen.statement_begin
– Bei Eingabe einer neuen Zeile wird diese relativ zum Anfang der aktuellen Anweisung eingezogen.
Neue Zeilen beim Eingeben innerhalb von Klammern ausrichten
- Name:
cpp_indent_within_parentheses
- Werte:
align_to_parenthesis
– Inhalte an öffnender Klammer ausrichten.indent
– Neue Zeilen einrücken.
Verwenden Sie in vorhandenem Code nicht die Einstellung für das Ausrichten neuer Zeilen innerhalb von Klammern.
- Name:
cpp_indent_preserve_within_parentheses
- Werte:
true
,false
Inhalte einrücken
- Name:
cpp_indent_case_contents
- Werte:
true
,false
case-Bezeichnungen einziehen
- Name:
cpp_indent_case_labels
- Werte:
true
,false
Auf case-Anweisung folgende geschweifte Klammern einrücken
- Name:
cpp_indent_case_contents_when_block
- Werte:
true
,false
Geschweifte Klammern von als Parameter genutzten Lambdafunktionen einrücken
- Name:
cpp_indent_lambda_braces_when_parameter
- Werte:
true
,false
Position der goto-Bezeichnungen
- Name:
cpp_indent_goto_labels
- Werte:
one_left
– Einmal einrücken nach linksleftmost_column
– Nach Spalte ganz links verschiebennone
– Eingerückt lassen
Position von Präprozessordirektiven
- Name:
cpp_indent_preprocessor
- Werte:
one_left
– Einmal einrücken nach linksleftmost_column
– Nach Spalte ganz links verschiebennone
– Eingerückt lassen
Zugriffsspezifizierer einrücken
- Name:
cpp_indent_access_specifiers
- Werte:
true
,false
Namespace-Inhalte einziehen
- Name:
cpp_indent_namespace_contents
- Werte:
true
,false
Einzug von Kommentaren beibehalten
- Name:
cpp_indent_preserve_comments
- Werte:
true
,false
Zeilenumbrucheinstellungen
Position von öffnenden geschweiften Klammern für Namespaces
- Name:
cpp_new_line_before_open_brace_namespace
- Werte:
new_line
– In neue Zeile verschiebensame_line
– In derselben Zeile belassen, jedoch voranstehendes Leerzeichen hinzufügenignore
– Position nicht automatisch ändern
Position von öffnenden geschweiften Klammern für Typen
- Name:
cpp_new_line_before_open_brace_type
- Werte:
new_line
– In neue Zeile verschiebensame_line
– In derselben Zeile belassen, jedoch voranstehendes Leerzeichen hinzufügenignore
– Position nicht automatisch ändern
Position von öffnenden geschweiften Klammern für Funktionen
- Name:
cpp_new_line_before_open_brace_function
- Werte:
new_line
– In neue Zeile verschiebensame_line
– In derselben Zeile belassen, jedoch voranstehendes Leerzeichen hinzufügenignore
– Position nicht automatisch ändern
Position von öffnenden geschweiften Klammern für Kontrollblöcke
- Name:
cpp_new_line_before_open_brace_block
- Werte:
new_line
– In neue Zeile verschiebensame_line
– In derselben Zeile belassen, jedoch voranstehendes Leerzeichen hinzufügenignore
– Position nicht automatisch ändern
Position von öffnenden geschweiften Klammern für Lambdafunktionen
- Name:
cpp_new_line_before_open_brace_lambda
- Werte:
new_line
– In neue Zeile verschiebensame_line
– In derselben Zeile belassen, jedoch voranstehendes Leerzeichen hinzufügenignore
– Position nicht automatisch ändern
Geschweifte Bereichsklammern in getrennten Zeilen positionieren
- Name:
cpp_new_line_scope_braces_on_separate_lines
- Werte:
true
,false
Schließende geschweifte Klammern für leere Typen in dieselbe Zeile wie öffnende geschweifte Klammern verschieben
- Name:
cpp_new_line_close_brace_same_line_empty_type
- Werte:
true
,false
In leeren Funktionsrümpfen schließende geschweifte Klammern in dieselbe Zeile wie öffnende geschweifte Klammern verschieben
- Name:
cpp_new_line_close_brace_same_line_empty_function
- Werte:
true
,false
"catch" und ähnliche Schlüsselwörter in neuer Zeile platzieren
- Name:
cpp_new_line_before_catch
- Werte:
true
,false
else-Anweisung in neuer Zeile anordnen
- Name:
cpp_new_line_before_else
- Werte:
true
,false
'while' in einer do-while-Schleife in einer neuen Zeile platzieren
- Name:
cpp_new_line_before_while_in_do_while
- Werte:
true
,false
Abstandseinstellungen
Abstand zwischen Funktionsnamen und öffnenden Klammern von Argumentenlisten
- Name:
cpp_space_before_function_open_parenthesis
- Werte:
insert
– Leerzeichen einfügenremove
– Leerzeichen entfernenignore
– Leerzeichen nicht ändern
– Leerzeichen zwischen den Klammern einer Argumentliste einfügen
- Name:
cpp_space_within_parameter_list_parentheses
Werte:true
,false
Leerzeichen zwischen Klammern einfügen, wenn die Argumentliste leer ist
- Name:
cpp_space_between_empty_parameter_list_parentheses
- Werte:
true
,false
In Anweisungen für die Ablaufsteuerung zwischen Schlüsselwort und öffnender Klammer Leerzeichen einfügen
- Name:
cpp_space_after_keywords_in_control_flow_statements
- Werte:
true
,false
Leerzeichen zwischen Klammern für Steueranweisung einfügen
- Name:
cpp_space_within_control_flow_statement_parentheses
- Werte:
true
,false
Leerzeichen vor öffnender Klammer der Lambdaargumentliste einfügen
- Name:
cpp_space_before_lambda_open_parenthesis
- Werte:
true
,false
Leerzeichen zwischen Klammern für Umwandlungen im C-Stil einfügen
- Name:
cpp_space_within_cast_parentheses
- Werte:
true
,false
Nach schließender Klammer der Umwandlung im C-Stil Leerzeichen einfügen
- Name:
cpp_space_after_cast_close_parenthesis
- Werte:
true
,false
Leerzeichen zwischen Klammern eines in Klammern gesetzten Ausdrucks einfügen
- Name:
cpp_space_within_expression_parentheses
- Werte:
true
,false
Leerzeichen vor öffnender geschweifter Klammer eines Blocks einfügen
- Name:
cpp_space_before_block_open_brace
- Werte:
true
,false
Leerzeichen zwischen leeren geschweiften Klammern einfügen
- Name:
cpp_space_between_empty_braces
- Werte:
true
,false
Leerzeichen vor öffnender geschweifter Klammer einer einheitlichen Initialisierung und Initialisiererlisten einfügen
- Name:
cpp_space_before_initializer_list_open_brace
- Werte:
true
,false
Leerzeichen zwischen geschweiften Klammern einer einheitlichen Initialisierung und den Initialisiererlisten einfügen
- Name:
cpp_space_within_initializer_list_braces
- Werte:
true
,false
Leerzeichen innerhalb von einheitlicher Initialisierung und Initialisiererlisten beibehalten
- Name:
cpp_space_preserve_in_initializer_list
- Werte:
true
,false
Leerzeichen vor öffnenden eckigen Klammern einfügen
- Name:
cpp_space_before_open_square_bracket
- Werte:
true
,false
Leerzeichen zwischen eckigen Klammern einfügen
- Name:
cpp_space_within_square_brackets
- Werte:
true
,false
Leerzeichen vor leeren eckigen Klammern einfügen
- Name:
cpp_space_before_empty_square_brackets
- Werte:
true
,false
Leerzeichen zwischen leeren eckigen Klammern einfügen
- Name:
cpp_space_between_empty_square_brackets
- Werte:
true
,false
Eckige Klammern für mehrdimensionale Arrays gemeinsam gruppieren
- Name:
cpp_space_group_square_brackets
- Werte:
true
,false
Leerzeichen zwischen eckigen Klammern für Lambdafunktionen einfügen
- Name:
cpp_space_within_lambda_brackets
- Werte:
true
,false
SpaceBetweenEmptyLambdaBrackets
- Name:
cpp_space_between_empty_lambda_brackets
- Werte:
true
,false
Leerzeichen vor Kommas einfügen
- Name:
cpp_space_before_comma
- Werte:
true
,false
Leerzeichen nach Kommas einfügen
- Name:
cpp_space_after_comma
- Werte:
true
,false
Leerzeichen vor und nach Memberoperatoren entfernen
- Name:
cpp_space_remove_around_member_operators
- Werte:
true
,false
In Typdeklarationen Leerzeichen vor Doppelpunkt für Basis einfügen
- Name:
cpp_space_before_inheritance_colon
- Werte:
true
,false
Leerzeichen vor Doppelpunkt für Konstruktoren einfügen
- Name:
cpp_space_before_constructor_colon
- Werte:
true
,false
Leerzeichen vor Semikolons entfernen
- Name:
cpp_space_remove_before_semicolon
- Werte:
true
,false
Leerzeichen nach Semikolons einfügen
- Name:
cpp_space_after_semicolon
- Werte:
true
,false
Leerzeichen zwischen unären Operatoren und deren Operanden entfernen
- Name:
cpp_space_remove_around_unary_operator
- Werte:
true
,false
Abstand für binäre Operatoren
- Name:
cpp_space_around_binary_operator
- Werte:
insert
– Leerzeichen vor und nach binären Operatoren einfügen.remove
– Leerzeichen um binäre Operatoren entfernen.ignore
– Leerzeichen um binäre Operatoren nicht ändern.
Abstand für Zuweisungsoperatoren
- Name:
cpp_space_around_assignment_operator
- Werte:
insert
– Leerzeichen um Zuweisungsoperatoren einfügen.remove
– Leerzeichen um Zuweisungsoperatoren entfernen.ignore
– Leerzeichen um Zuweisungsoperatoren nicht ändern.
Zeiger-/Verweisausrichtung
- Name:
cpp_space_pointer_reference_alignment
- Werte:
left
– Links ausrichten.center
– Zentriert ausrichten.right
– Rechts ausrichten.ignore
– Unverändert lassen.
Abstand für bedingte Operatoren
- Name:
cpp_space_around_ternary_operator
- Werte:
insert
– Leerzeichen um bedingte Operatoren einfügen.remove
– Leerzeichen um bedingte Operatoren entfernen.ignore
– Leerzeichen um bedingte Operatoren nicht ändern.
Umbruchoptionen
Umbruchoptionen für Blöcke
- Name:
cpp_wrap_preserve_blocks
- Werte:
one_liners
– Einzeilige Codeblöcke nicht umbrechen.all_one_line_scopes
– Codeblöcke nicht so umbrechen, dass sich öffnende und schließende geschweifte Klammern in der nächsten Zeile befinden.never
– Für Blöcke stets Zeilenwechseleinstellungen anwenden.