Konvence formátování C++ EditorConfig
Do projektu můžete přidat soubory EditorConfig, abyste nakonfigurovali formátování C++, aby bylo možné vynutit konzistentní styl kódu pro všechny přispěvatele do projektu. Visual Studio i Visual Studio Code mají integrovanou podporu EditorConfig pro každé globální nastavení formátování visual Studio C++. Nastavení EditorConfig jsou uložena v .editorconfig
souboru. Pokud je tento soubor v projektu, má přednost před nastavením formátování sady Visual Studio.
Tento dokument obsahuje seznam všech nastavení formátování EditorConfig C++ podporovaných sadou Visual Studio a editorem Visual Studio Code.
Další informace o:
- Použití souboru EditorConfig v sadě Visual Studio najdete v tématu Definování konzistentních stylů kódování pomocí EditorConfig.
- Ručně vytvořte soubor EditorConfig na základě nastavení formátování clangu, viz clangformat. Přejmenujte tento soubor
.editorconfig
a uložte ho do projektu.
Konvence formátování jazyka C++
Nastavení editorConfig formátování jazyka C++ má předponu cpp_
. Tady je příklad toho, jak .editorconfig
může soubor vypadat:
[*.{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
Zbytek tohoto dokumentu obsahuje seznam všech nastavení formátování editorConfig C++, které podporuje Visual Studio a VS Code.
Nastavení odsazení
Odsazení závorek
- Název:
cpp_indent_braces
- Hodnoty:
true
,false
Odsazení každého řádku relativně na
- Název:
cpp_indent_multi_line_relative_to
- Hodnoty:
outermost_parenthesis
- Když je zadán nový řádek, odsadí se relativně k nejkrajnější otevřené závorce.innermost_parenthesis
- Když je zadán nový řádek, odsadí se relativně k nejvnitřnější otevřené závorce.statement_begin
– Když je zadán nový řádek, odsadí se relativně na začátek aktuálního příkazu.
V závorkách zarovnejte nové řádky, když je zadám.
- Název:
cpp_indent_within_parentheses
- Hodnoty:
align_to_parenthesis
- Zarovnejte obsah na levou závorku.indent
- Odsazení nových řádků
V existujícím kódu nepoužívejte nastavení pro zarovnání nových řádků v závorkách.
- Název:
cpp_indent_preserve_within_parentheses
- Hodnoty:
true
,false
Odsazení obsahu velkých a malých písmen
- Název:
cpp_indent_case_contents
- Hodnoty:
true
,false
Odsazení popisků velkých a malých písmen
- Název:
cpp_indent_case_labels
- Hodnoty:
true
,false
Odsazení složených závorek za příkazem case
- Název:
cpp_indent_case_contents_when_block
- Hodnoty:
true
,false
Odsazení závorek lambda použitých jako parametry
- Název:
cpp_indent_lambda_braces_when_parameter
- Hodnoty:
true
,false
Pozice popisků goto
- Název:
cpp_indent_goto_labels
- Hodnoty:
one_left
- Jedno odsazení vlevoleftmost_column
- Přechod na sloupec úplně vlevonone
- Odsazení ponechte odsazený.
Pozice direktiv preprocesoru
- Název:
cpp_indent_preprocessor
- Hodnoty:
one_left
- Jedno odsazení vlevoleftmost_column
- Přechod na sloupec úplně vlevonone
- Odsazení ponechte odsazený.
Specifikátory přístupu odsazení
- Název:
cpp_indent_access_specifiers
- Hodnoty:
true
,false
Odsazení obsahu oboru názvů
- Název:
cpp_indent_namespace_contents
- Hodnoty:
true
,false
Zachování odsazení komentářů
- Název:
cpp_indent_preserve_comments
- Hodnoty:
true
,false
Nastavení nového textu
Pozice otevřených složených závorek pro obory názvů
- Název:
cpp_new_line_before_open_brace_namespace
- Hodnoty:
new_line
– Přechod na nový řádeksame_line
- Ponechejte stejnou čáru, ale přidejte mezeru předignore
- Nepřemístit automaticky
Pozice otevřených složených závorek pro typy
- Název:
cpp_new_line_before_open_brace_type
- Hodnoty:
new_line
– Přechod na nový řádeksame_line
- Ponechejte stejnou čáru, ale přidejte mezeru předignore
- Nepřemístit automaticky
Pozice otevřených složených závorek pro funkce
- Název:
cpp_new_line_before_open_brace_function
- Hodnoty:
new_line
– Přechod na nový řádeksame_line
- Ponechejte stejnou čáru, ale přidejte mezeru předignore
- Nepřemístit automaticky
Pozice otevřených závorek pro řídicí bloky
- Název:
cpp_new_line_before_open_brace_block
- Hodnoty:
new_line
– Přechod na nový řádeksame_line
- Ponechejte stejnou čáru, ale přidejte mezeru předignore
- Nepřemístit automaticky
Pozice otevřených složených závorek pro lambda
- Název:
cpp_new_line_before_open_brace_lambda
- Hodnoty:
new_line
– Přechod na nový řádeksame_line
- Ponechejte stejnou čáru, ale přidejte mezeru předignore
- Nepřemístit automaticky
Umístění složených závorek oboru na samostatné řádky
- Název:
cpp_new_line_scope_braces_on_separate_lines
- Hodnoty:
true
,false
U prázdných typů přesuňte uzavírací složené závorky na stejný řádek jako levá závorka.
- Název:
cpp_new_line_close_brace_same_line_empty_type
- Hodnoty:
true
,false
U prázdných těl funkce přesuňte uzavírací složené závorky na stejný řádek jako levá závorka.
- Název:
cpp_new_line_close_brace_same_line_empty_function
- Hodnoty:
true
,false
Umístění "catch" a podobných klíčových slov na nový řádek
- Název:
cpp_new_line_before_catch
- Hodnoty:
true
,false
Umístění "else" na nový řádek
- Název:
cpp_new_line_before_else
- Hodnoty:
true
,false
Umístění "while" do smyčky do-while na nový řádek
- Název:
cpp_new_line_before_while_in_do_while
- Hodnoty:
true
,false
Nastavení mezer
Mezery mezi názvy funkcí a otevírání závorek seznamů argumentů
- Název:
cpp_space_before_function_open_parenthesis
- Hodnoty:
insert
- Vložení mezeryremove
- Odebrat mezeryignore
- Neměňte mezery
Vložení mezery do závorek seznamu argumentů
- Hodnoty názvu
cpp_space_within_parameter_list_parentheses
:true
,false
Vložení mezery mezi závorkami, když je seznam argumentů prázdný
- Název:
cpp_space_between_empty_parameter_list_parentheses
- Hodnoty:
true
,false
Vložení mezery mezi klíčovým slovem a levou závorkou v příkazech toku řízení
- Název:
cpp_space_after_keywords_in_control_flow_statements
- Hodnoty:
true
,false
Vložení mezery do závorek příkazu ovládacího prvku
- Název:
cpp_space_within_control_flow_statement_parentheses
- Hodnoty:
true
,false
Vložení mezery před otevřením závorek seznamů argumentů lambda
- Název:
cpp_space_before_lambda_open_parenthesis
- Hodnoty:
true
,false
Vložení mezery do závorek přetypování ve stylu jazyka C
- Název:
cpp_space_within_cast_parentheses
- Hodnoty:
true
,false
Vložení mezery za pravou závorku přetypování ve stylu jazyka C
- Název:
cpp_space_after_cast_close_parenthesis
- Hodnoty:
true
,false
Vložení mezery do závorek výrazu závorek
- Název:
cpp_space_within_expression_parentheses
- Hodnoty:
true
,false
Vložení mezery před otevřením složené závorky
- Název:
cpp_space_before_block_open_brace
- Hodnoty:
true
,false
Vložení mezery mezi prázdnými složenými závorkami
- Název:
cpp_space_between_empty_braces
- Hodnoty:
true
,false
Vložení mezery před otevřením složené závorky v seznamech jednotné inicializace a inicializátoru
- Název:
cpp_space_before_initializer_list_open_brace
- Hodnoty:
true
,false
Vložení mezery do složených závorek v seznamech jednotné inicializace a inicializátoru
- Název:
cpp_space_within_initializer_list_braces
- Hodnoty:
true
,false
Zachování mezer v seznamech jednotných inicializací a inicializátorů
- Název:
cpp_space_preserve_in_initializer_list
- Hodnoty:
true
,false
Vložení mezery před otevřením hranatých závorek
- Název:
cpp_space_before_open_square_bracket
- Hodnoty:
true
,false
Vložení mezery do hranaté závorky
- Název:
cpp_space_within_square_brackets
- Hodnoty:
true
,false
Vložení mezery před prázdné hranaté závorky
- Název:
cpp_space_before_empty_square_brackets
- Hodnoty:
true
,false
Vložení mezery mezi prázdnými hranatými závorkami
- Název:
cpp_space_between_empty_square_brackets
- Hodnoty:
true
,false
Seskupování hranatých závorek pro vícerozměrná pole
- Název:
cpp_space_group_square_brackets
- Hodnoty:
true
,false
Vložení mezery do hranatých závorek pro lambda
- Název:
cpp_space_within_lambda_brackets
- Hodnoty:
true
,false
SpaceBetweenEmptyLambdaBrackets
- Název:
cpp_space_between_empty_lambda_brackets
- Hodnoty:
true
,false
Vložení mezery před čárky
- Název:
cpp_space_before_comma
- Hodnoty:
true
,false
Vložit mezeru za čárky
- Název:
cpp_space_after_comma
- Hodnoty:
true
,false
Odebrání mezer před a po operátorech členů
- Název:
cpp_space_remove_around_member_operators
- Hodnoty:
true
,false
Vložení mezery před dvojtečku pro základ v deklarací typu
- Název:
cpp_space_before_inheritance_colon
- Hodnoty:
true
,false
Vložení mezery před dvojtečku pro konstruktory
- Název:
cpp_space_before_constructor_colon
- Hodnoty:
true
,false
Odebrání mezery před středníky
- Název:
cpp_space_remove_before_semicolon
- Hodnoty:
true
,false
Vložit mezeru za středníky
- Název:
cpp_space_after_semicolon
- Hodnoty:
true
,false
Odebrání mezer mezi unárními operátory a jejich operandy
- Název:
cpp_space_remove_around_unary_operator
- Hodnoty:
true
,false
Mezery pro binární operátory
- Název:
cpp_space_around_binary_operator
- Hodnoty:
insert
- Vložte mezery před a za binární operátory.remove
- Odeberte mezery kolem binárních operátorů.ignore
- Neměňte mezery kolem binárních operátorů.
Mezery pro operátory přiřazení
- Název:
cpp_space_around_assignment_operator
- Hodnoty:
insert
- Vložte mezery kolem operátorů přiřazení.remove
– Odeberte mezery kolem operátorů přiřazení.ignore
- Neměňte mezery kolem operátorů přiřazení.
Zarovnání ukazatele nebo odkazu
- Název:
cpp_space_pointer_reference_alignment
- Hodnoty:
left
- Zarovnat doleva.center
- Zarovnat na střed.right
- Zarovnat doprava.ignore
- Nechejte beze změny.
Mezery pro podmíněné operátory
- Název:
cpp_space_around_ternary_operator
- Hodnoty:
insert
– Vložte mezery kolem podmíněných operátorů.remove
– Odebere mezery kolem podmíněných operátorů.ignore
- Neměňte mezery kolem podmíněných operátorů.
Možnosti obtékání
Možnosti obtékání bloků
- Název:
cpp_wrap_preserve_blocks
- Hodnoty:
one_liners
- Nezabalujte bloky s jedním řádkem kódu.all_one_line_scopes
– Nezalamujte bloky kódu, kde jsou levá a uzavírací složená závorka na dalším řádku.never
– Pro bloky vždy použijte nastavení Nové řádky.