Formateringskonventioner för C++ EditorConfig

Du kan lägga till EditorConfig-filer i projektet för att konfigurera C++-formatering för att framtvinga ett konsekvent kodformat för alla som bidrar till projektet. Både Visual Studio och Visual Studio Code har inbyggt EditorConfig-stöd för var och en av de globala Visual Studio C++-formateringsinställningarna. Inställningarna för EditorConfig lagras i en .editorconfig fil. När filen finns i projektet har den företräde framför inställningarna för Visual Studio formatering.

I det här dokumentet visas alla formateringsinställningar för EditorConfig C++ som stöds av Visual Studio och Visual Studio Code.

C++ har ytterligare .editorconfig inställningar som inte är formateringsinställningar. Dessa inställningar dokumenteras med de funktioner som de konfigurerar:

Mer information om:

C++-formateringskonventioner

C++-formateringsinställningarna för EditorConfig är prefixet med cpp_. Här är ett exempel på hur en .editorconfig fil kan se ut:

[*.{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

I resten av den här artikeln visas alla formateringsinställningar för EditorConfig C++ som stöds av Visual Studio och VS Code.

Indragsinställningar

Dra in klammerparenteser

  • Namn: cpp_indent_braces
  • Värden: true, false

Dra in varje rad relativt till

  • Namn: cpp_indent_multi_line_relative_to
  • Värden:
    • outermost_parenthesis – När en ny rad skrivs är den relativt indragen till den yttersta öppna parentesen.
    • innermost_parenthesis – När en ny rad skrivs är den relativt indragen i den innersta öppna parentesen.
    • statement_begin – När en ny rad skrivs är den relativt indragen i början av den aktuella instruktionen.

Inom parenteser justerar du nya rader när jag skriver dem

  • Namn: cpp_indent_within_parentheses
  • Värden:
    • align_to_parenthesis – Justera innehållet efter inledande parentes.
    • indent – Dra in nya rader.

Använd inte inställningen för justering av nya rader inom parenteser i befintlig kod

  • Namn: cpp_indent_preserve_within_parentheses
  • Värden: true, false

Indrag av skiftlägesinnehåll

  • Namn: cpp_indent_case_contents
  • Värden: true, false

Indrag av skiftlägesetiketter

  • Namn: cpp_indent_case_labels
  • Värden: true, false

Indrag av klammerparenteser efter en ärendebeskrivning

  • Namn: cpp_indent_case_contents_when_block
  • Värden: true, false

Dra in klammerparenteser för lambdas som används som parametrar

  • Namn: cpp_indent_lambda_braces_when_parameter
  • Värden: true, false

Placering av gotoetiketter

  • Namn: cpp_indent_goto_labels
  • Värden:
    • one_left - Ett indrag till vänster
    • leftmost_column – Flytta till kolumnen längst till vänster
    • none - Lämna indraget

Position för förprocessordirektiv

  • Namn: cpp_indent_preprocessor
  • Värden:
    • one_left - Ett indrag till vänster
    • leftmost_column – Flytta till kolumnen längst till vänster
    • none - Lämna indraget

Indrag av åtkomstspecificerare

  • Namn: cpp_indent_access_specifiers
  • Värden: true, false

Indrag av namnområdesinnehåll

  • Namn: cpp_indent_namespace_contents
  • Värden: true, false

Bevara indrag av kommentarer

  • Namn: cpp_indent_preserve_comments
  • Värden: true, false

Inställningar för ny rad

Position för öppna klammerparenteser för namnområden

  • Namn: cpp_new_line_before_open_brace_namespace
  • Värden:
    • new_line - Flytta till en ny rad
    • same_line - Behåll på samma rad, men lägg till ett blanksteg innan
    • ignore - Flytta inte automatiskt

Placering av öppna klammerparenteser för typer

  • Namn: cpp_new_line_before_open_brace_type
  • Värden:
    • new_line - Flytta till en ny rad
    • same_line - Behåll på samma rad, men lägg till ett blanksteg innan
    • ignore - Flytta inte automatiskt

Position för öppna klammerparenteser för funktioner

  • Namn: cpp_new_line_before_open_brace_function
  • Värden:
    • new_line - Flytta till en ny rad
    • same_line - Behåll på samma rad, men lägg till ett blanksteg innan
    • ignore - Flytta inte automatiskt

Position för öppna klammerparenteser för kontrollblock

  • Namn: cpp_new_line_before_open_brace_block
  • Värden:
    • new_line - Flytta till en ny rad
    • same_line - Behåll på samma rad, men lägg till ett blanksteg innan
    • ignore - Flytta inte automatiskt

Position för öppna klammerparenteser för lambdas

  • Namn: cpp_new_line_before_open_brace_lambda
  • Värden:
    • new_line - Flytta till en ny rad
    • same_line - Behåll på samma rad, men lägg till ett blanksteg innan
    • ignore - Flytta inte automatiskt

Placera omfångsstöd på separata linjer

  • Namn: cpp_new_line_scope_braces_on_separate_lines
  • Värden: true, false

För tomma typer flyttar du avslutande klammerparenteser till samma linje som inledande klammerparenteser

  • Namn: cpp_new_line_close_brace_same_line_empty_type
  • Värden: true, false

För tomma funktionskroppar flyttar du avslutande klammerparenteser till samma linje som inledande klammerparenteser

  • Namn: cpp_new_line_close_brace_same_line_empty_function
  • Värden: true, false

Placera "catch" och liknande nyckelord på en ny rad

  • Namn: cpp_new_line_before_catch
  • Värden: true, false

Placera "else" på en ny rad

  • Namn: cpp_new_line_before_else
  • Värden: true, false

Placera "while" i en do-while-loop på en ny rad

  • Namn: cpp_new_line_before_while_in_do_while
  • Värden: true, false

Avståndsinställningar

Avstånd mellan funktionsnamn och inledande parenteser för argumentlistor

  • Namn: cpp_space_before_function_open_parenthesis
  • Värden:
    • insert - Infoga ett blanksteg
    • remove – Ta bort blanksteg
    • ignore - Ändra inte blanksteg

Infoga blanksteg inom parenteser i en argumentlista

  • Namnvärden cpp_space_within_parameter_list_parentheses : true, false

Infoga blanksteg mellan parenteser när argumentlistan är tom

  • Namn: cpp_space_between_empty_parameter_list_parentheses
  • Värden: true, false

Infoga blanksteg mellan nyckelord och inledande parentes i kontrollflödessatser

  • Namn: cpp_space_after_keywords_in_control_flow_statements
  • Värden: true, false

Infoga blanksteg inom parenteser för en kontrollsats

  • Namn: cpp_space_within_control_flow_statement_parentheses
  • Värden: true, false

Infoga blanksteg innan du öppnar parenteser för lambda-argumentlistor

  • Namn: cpp_space_before_lambda_open_parenthesis
  • Värden: true, false

Infoga blanksteg inom parenteser i en C-formatmall

  • Namn: cpp_space_within_cast_parentheses
  • Värden: true, false

Infoga blanksteg efter avslutande parentes av C-format gjutning

  • Namn: cpp_space_after_cast_close_parenthesis
  • Värden: true, false

Infoga blanksteg inom parenteser för ett parentesiserat uttryck

  • Namn: cpp_space_within_expression_parentheses
  • Värden: true, false

Infoga utrymme innan klammerparentesen öppnas

  • Namn: cpp_space_before_block_open_brace
  • Värden: true, false

Infoga utrymme mellan tomma klammerparenteser

  • Namn: cpp_space_between_empty_braces
  • Värden: true, false

Infoga utrymme innan du öppnar klammerparentesen för enhetliga initierings- och initieringslistor

  • Namn: cpp_space_before_initializer_list_open_brace
  • Värden: true, false

Infoga utrymme inom klammerparenteser för enhetliga initierings- och initieringslistor

  • Namn: cpp_space_within_initializer_list_braces
  • Värden: true, false

Bevara blanksteg i enhetliga initierings- och initieringslistor

  • Namn: cpp_space_preserve_in_initializer_list
  • Värden: true, false

Infoga utrymme innan hakparenteser öppnas

  • Namn: cpp_space_before_open_square_bracket
  • Värden: true, false

Infoga utrymme inom hakparentes

  • Namn: cpp_space_within_square_brackets
  • Värden: true, false

Infoga utrymme före tomma hakparenteser

  • Namn: cpp_space_before_empty_square_brackets
  • Värden: true, false

Infoga utrymme mellan tomma hakparenteser

  • Namn: cpp_space_between_empty_square_brackets
  • Värden: true, false

Gruppera hakparenteser för flerdimensionella matriser tillsammans

  • Namn: cpp_space_group_square_brackets
  • Värden: true, false

Infoga utrymme inom hakparenteser för lambdas

  • Namn: cpp_space_within_lambda_brackets
  • Värden: true, false

SpaceBetweenEmptyLambdaBrackets

  • Namn: cpp_space_between_empty_lambda_brackets
  • Värden: true, false

Infoga utrymme före kommatecken

  • Namn: cpp_space_before_comma
  • Värden: true, false

Infoga utrymme efter kommatecken

  • Namn: cpp_space_after_comma
  • Värden: true, false

Ta bort blanksteg före och efter medlemsoperatorer

  • Namn: cpp_space_remove_around_member_operators
  • Värden: true, false

Infoga blanksteg före kolon för bas i typdeklarationer

  • Namn: cpp_space_before_inheritance_colon
  • Värden: true, false

Infoga utrymme före kolon för konstruktorer

  • Namn: cpp_space_before_constructor_colon
  • Värden: true, false

Ta bort utrymme före semikolon

  • Namn: cpp_space_remove_before_semicolon
  • Värden: true, false

Infoga utrymme efter semikolon

  • Namn: cpp_space_after_semicolon
  • Värden: true, false

Ta bort blanksteg mellan unary-operatorer och deras operander

  • Namn: cpp_space_remove_around_unary_operator
  • Värden: true, false

Avstånd för binära operatorer

  • Namn: cpp_space_around_binary_operator
  • Värden:
    • insert – Infoga blanksteg före och efter binära operatorer.
    • remove – Ta bort blanksteg runt binära operatorer.
    • ignore - Ändra inte blanksteg runt binära operatorer.

Avstånd för tilldelningsoperatorer

  • Namn: cpp_space_around_assignment_operator
  • Värden:
    • insert – Infoga blanksteg runt tilldelningsoperatorer.
    • remove – Ta bort blanksteg runt tilldelningsoperatorer.
    • ignore – Ändra inte blanksteg runt tilldelningsoperatorer.

Justering av pekare/referens

  • Namn: cpp_space_pointer_reference_alignment
  • Värden:
    • left - Vänsterjustera.
    • center - Justera mitten.
    • right - Högerjustera.
    • ignore - Lämna oförändrad.

Avstånd för villkorsstyrda operatorer

  • Namn: cpp_space_around_ternary_operator
  • Värden:
    • insert – Infoga blanksteg runt villkorsstyrda operatorer.
    • remove – Ta bort blanksteg runt villkorsstyrda operatorer.
    • ignore – Ändra inte blanksteg runt villkorsstyrda operatorer.

Omslutningsalternativ

Omslutningsalternativ för block

  • Namn: cpp_wrap_preserve_blocks
  • Värden:
    • one_liners - Radbryt inte kodblock med en rad.
    • all_one_line_scopes - Radbryt inte kodblock där inledande och avslutande klammerparenteser finns på nästa rad.
    • never – Använd alltid inställningar för nya rader för block.

Se även