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.
C++ verfügt über zusätzliche .editorconfig Einstellungen, die keine Formatierungseinstellungen sind. Diese Einstellungen werden mit den von ihnen konfigurierten Features dokumentiert:
-
Bereinigungseinstellungen einschließen (
cpp_include_cleanup_*undcpp_sort_includes_*) werden in "Konfigurieren von C/C++-Bereinigungen in Visual Studio" dokumentiert. -
IntelliSense-Einstellungen für
#includeabschluss (cpp_includes_use_forward_slashundcpp_includes_style) werden in den Optionen "Sprachen > konfigurieren C/C++ > IntelliSense" dokumentiert.
Für weitere Informationen zu:
- 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
.editorconfigum, und speichern Sie sie in Ihrem Projekt.
C++-Formatierungskonventionen
C++-Formatierungs-EditorConfig-Einstellungen werden mit dem Präfix versehen cpp_. 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
Der Rest dieses Artikels listet alle EditorConfig C++-Formatierungseinstellungen auf, die von Visual Studio und VS Code unterstützt werden.
Einzugseinstellungen
Einzüge geschweifte Klammern
- Name:
cpp_indent_braces - Werte:
true,false
Einzug jeder Zeile relativ zu
- Namen:
cpp_indent_multi_line_relative_to - Werte:
-
outermost_parenthesis- Wenn eine neue Zeile eingegeben wird, wird sie relativ zur äußersten offenen Klammer eingezogen. -
innermost_parenthesis- Wenn eine neue Zeile eingegeben wird, wird sie relativ zur innersten offenen Klammer eingezogen. -
statement_begin- Wenn eine neue Zeile eingegeben wird, wird sie relativ zum Anfang der aktuellen Anweisung eingezogen.
-
Richten Sie neue Zeilen innerhalb von Klammern aus, wenn ich sie ein gebe
- Namen:
cpp_indent_within_parentheses - Werte:
-
align_to_parenthesis- Ausrichten von Inhalten an der öffnenden Klammer. -
indent- Neue Zeilen einziehen.
-
Verwenden Sie im vorhandenen Code nicht die Einstellung für die Ausrichtung neuer Zeilen innerhalb von Klammern.
- Namen:
cpp_indent_preserve_within_parentheses - Werte:
true,false
Inhalt des Einzugs von Groß-/Kleinschreibung
- Namen:
cpp_indent_case_contents - Werte:
true,false
Groß-/Kleinschreibungsbezeichnungen einziehen
- Name:
cpp_indent_case_labels - Werte:
true,false
Einrücken geschweifte Klammern nach einer Case-Anweisung
- Namen:
cpp_indent_case_contents_when_block - Werte:
true,false
Einzüge von Lambda-Klammern, die als Parameter verwendet werden
- Namen:
cpp_indent_lambda_braces_when_parameter - Werte:
true,false
Position der Gehetobeschriftungen
- Namen:
cpp_indent_goto_labels - Werte:
-
one_left- Ein Einzug nach links -
leftmost_column- In die spalte ganz links verschieben -
none- Einzug verlassen
-
Position von Präprozessordirektiven
- Namen:
cpp_indent_preprocessor - Werte:
-
one_left- Ein Einzug nach links -
leftmost_column- In die spalte ganz links verschieben -
none- Einzug verlassen
-
Einzugs-Zugriffsbezeichner
- Namen:
cpp_indent_access_specifiers - Werte:
true,false
Einzugsnamespaceinhalte
- Namen:
cpp_indent_namespace_contents - Werte:
true,false
Beibehalten des Einzugs von Kommentaren
- Name:
cpp_indent_preserve_comments - Werte:
true,false
Newline-Einstellungen
Position der offenen geschweiften Klammern für Namespaces
- Namen:
cpp_new_line_before_open_brace_namespace - Werte:
-
new_line- Wechseln zu einer neuen Zeile -
same_line- Beibehalten der gleichen Zeile, aber Hinzufügen eines Leerzeichens vor -
ignore- Keine automatische Neupositionierung
-
Position offener geschweifte Klammern für Typen
- Namen:
cpp_new_line_before_open_brace_type - Werte:
-
new_line- Wechseln zu einer neuen Zeile -
same_line- Beibehalten der gleichen Zeile, aber Hinzufügen eines Leerzeichens vor -
ignore- Keine automatische Neupositionierung
-
Position von offenen geschweiften Klammern für Funktionen
- Namen:
cpp_new_line_before_open_brace_function - Werte:
-
new_line- Wechseln zu einer neuen Zeile -
same_line- Beibehalten der gleichen Zeile, aber Hinzufügen eines Leerzeichens vor -
ignore- Keine automatische Neupositionierung
-
Position der geöffneten geschweiften Klammern für Steuerblöcke
- Namen:
cpp_new_line_before_open_brace_block - Werte:
-
new_line- Wechseln zu einer neuen Zeile -
same_line- Beibehalten der gleichen Zeile, aber Hinzufügen eines Leerzeichens vor -
ignore- Keine automatische Neupositionierung
-
Position von offenen geschweiften Klammern für Lambdas
- Namen:
cpp_new_line_before_open_brace_lambda - Werte:
-
new_line- Wechseln zu einer neuen Zeile -
same_line- Beibehalten der gleichen Zeile, aber Hinzufügen eines Leerzeichens vor -
ignore- Keine automatische Neupositionierung
-
Platzieren von Bereichsklammern in separaten Linien
- Namen:
cpp_new_line_scope_braces_on_separate_lines - Werte:
true,false
Verschieben Sie bei leeren Typen schließende geschweifte Klammern in dieselbe Linie wie öffnende geschweifte Klammern.
- Name:
cpp_new_line_close_brace_same_line_empty_type - Werte:
true,false
Verschieben Sie bei leeren Funktionskörpern schließende geschweifte Klammern in dieselbe Linie wie öffnende geschweifte Klammern
- Namen:
cpp_new_line_close_brace_same_line_empty_function - Werte:
true,false
Platzieren von "Catch" und ähnlichen Schlüsselwörtern in einer neuen Zeile
- Namen:
cpp_new_line_before_catch - Werte:
true,false
"else" in einer neuen Zeile platzieren
- Namen:
cpp_new_line_before_else - Werte:
true,false
Platzieren von "while" in einer Do-While-Schleife in einer neuen Zeile
- Namen:
cpp_new_line_before_while_in_do_while - Werte:
true,false
Abstandseinstellungen
Abstand zwischen Funktionsnamen und Öffnen von Klammern von Argumentlisten
- Namen:
cpp_space_before_function_open_parenthesis - Werte:
-
insert- Einfügen eines Leerzeichens -
remove- Leerzeichen entfernen -
ignore- Keine Leerzeichen ändern
-
Einfügen von Leerzeichen in Klammern einer Argumentliste
- Name-Werte
cpp_space_within_parameter_list_parentheses:true,false
Leerzeichen zwischen Klammern einfügen, wenn die Argumentliste leer ist
- Namen:
cpp_space_between_empty_parameter_list_parentheses - Werte:
true,false
Einfügen von Leerzeichen zwischen Schlüsselwort und öffnender Klammer in Steuerelementflussanweisungen
- Name:
cpp_space_after_keywords_in_control_flow_statements - Werte:
true,false
Einfügen von Leerzeichen in Klammern einer Steuerelement-Anweisung
- Namen:
cpp_space_within_control_flow_statement_parentheses - Werte:
true,false
Einfügen von Leerzeichen vor dem Öffnen der Klammer von Lambda-Argumentlisten
- Namen:
cpp_space_before_lambda_open_parenthesis - Werte:
true,false
Einfügen von Leerzeichen in Klammern einer C-Formatvorlage
- Namen:
cpp_space_within_cast_parentheses - Werte:
true,false
Einfügen von Leerzeichen nach schließenden Klammern der C-Formatvorlage
- Namen:
cpp_space_after_cast_close_parenthesis - Werte:
true,false
Einfügen von Leerzeichen in Klammern eines Klammernausdrucks
- Name:
cpp_space_within_expression_parentheses - Werte:
true,false
Einfügen von Leerzeichen vor dem Öffnen der geschweiften Klammern von Blöcken
- Namen:
cpp_space_before_block_open_brace - Werte:
true,false
Einfügen von Leerzeichen zwischen leeren geschweiften Klammern
- Namen:
cpp_space_between_empty_braces - Werte:
true,false
Einfügen von Leerzeichen vor dem Öffnen der geschweiften Klammer für einheitliche Initialisierungs- und Initialisierungslisten
- Namen:
cpp_space_before_initializer_list_open_brace - Werte:
true,false
Einfügen von Leerzeichen in geschweifte Klammern von Uniform Initialisierungs- und Initialisierungslisten
- Namen:
cpp_space_within_initializer_list_braces - Werte:
true,false
Beibehalten von Leerzeichen innerhalb einheitlicher Initialisierungs- und Initialisierungslisten
- Name:
cpp_space_preserve_in_initializer_list - Werte:
true,false
Einfügen von Leerzeichen vor dem Öffnen eckigen Klammern
- Namen:
cpp_space_before_open_square_bracket - Werte:
true,false
Einfügen von Leerzeichen in eckige Klammer
- Namen:
cpp_space_within_square_brackets - Werte:
true,false
Einfügen von Leerzeichen vor leeren eckigen Klammern
- Namen:
cpp_space_before_empty_square_brackets - Werte:
true,false
Einfügen des Leerraums zwischen leeren eckigen Klammern
- Namen:
cpp_space_between_empty_square_brackets - Werte:
true,false
Gruppieren von eckigen Klammern für mehrdimensionale Arrays zusammen
- Name:
cpp_space_group_square_brackets - Werte:
true,false
Einfügen von Platz in eckigen Klammern für Lambdas
- Namen:
cpp_space_within_lambda_brackets - Werte:
true,false
SpaceBetweenEmptyLambdaBrackets
- Namen:
cpp_space_between_empty_lambda_brackets - Werte:
true,false
Einfügen von Leerzeichen vor Kommas
- Namen:
cpp_space_before_comma - Werte:
true,false
Einfügen von Leerzeichen nach Kommas
- Namen:
cpp_space_after_comma - Werte:
true,false
Entfernen von Leerzeichen vor und nach Memberoperatoren
- Name:
cpp_space_remove_around_member_operators - Werte:
true,false
Einfügen des Leerzeichens vor dem Doppelpunkt für die Basis in Typdeklarationen
- Namen:
cpp_space_before_inheritance_colon - Werte:
true,false
Einfügen von Leerzeichen vor Doppelpunkt für Konstruktoren
- Namen:
cpp_space_before_constructor_colon - Werte:
true,false
Entfernen von Leerzeichen vor Semikolons
- Namen:
cpp_space_remove_before_semicolon - Werte:
true,false
Einfügen von Leerzeichen nach Semikolons
- Namen:
cpp_space_after_semicolon - Werte:
true,false
Entfernen von Leerzeichen zwischen unären Operatoren und ihren Operanden
- Name:
cpp_space_remove_around_unary_operator - Werte:
true,false
Abstand für binäre Operatoren
- Namen:
cpp_space_around_binary_operator - Werte:
-
insert- Einfügen von Leerzeichen vor und nach binären Operatoren. -
remove- Entfernen von Leerzeichen um binäre Operatoren. -
ignore- Ändern Sie keine Leerzeichen um binäre Operatoren.
-
Abstand für Zuordnungsoperatoren
- Namen:
cpp_space_around_assignment_operator - Werte:
-
insert- Fügen Sie Leerzeichen um Zuordnungsoperatoren ein. -
remove- Entfernen von Leerzeichen um Zuordnungsoperatoren. -
ignore– Ändern Sie keine Leerzeichen um Zuordnungsoperatoren.
-
Zeiger/Verweisausrichtung
- Namen:
cpp_space_pointer_reference_alignment - Werte:
-
left- Linksbündig ausrichten. -
center- Mitte ausrichten. -
right- Rechtsbündig ausrichten. -
ignore- Unverändert lassen.
-
Abstand für bedingte Operatoren
- Namen:
cpp_space_around_ternary_operator - Werte:
-
insert- Fügen Sie Leerzeichen um bedingte Operatoren ein. -
remove- Entfernen von Leerzeichen um bedingte Operatoren. -
ignore– Ändern Sie keine Leerzeichen um bedingte Operatoren.
-
Umbruchoptionen
Umbruchoptionen für Blöcke
- Namen:
cpp_wrap_preserve_blocks - Werte:
-
one_liners- Schließen Sie keine einzeiligen Codeblöcke um. -
all_one_line_scopes- Schließen Sie Codeblöcke nicht um, wenn sich öffnende und schließende geschweifte Klammern in der nächsten Zeile befinden. -
never– Wenden Sie immer neue Zeileneinstellungen für Blöcke an.
-