C++-EditorConfig-opmaakconventies

U kunt EditorConfig-bestanden toevoegen aan uw project om C++-opmaak te configureren om een consistente codestijl af te dwingen voor iedereen die aan het project bijdraagt. Zowel Visual Studio als Visual Studio Code hebben ingebouwde EditorConfig-ondersteuning voor elk van de algemene Visual Studio C++-opmaakinstellingen. De EditorConfig-instellingen worden opgeslagen in een .editorconfig bestand. Wanneer dat bestand aanwezig is in uw project, heeft het voorrang op de Visual Studio opmaakinstellingen.

Dit document bevat alle opmaakinstellingen voor EditorConfig C++ die worden ondersteund door Visual Studio en Visual Studio Code.

C++ bevat aanvullende .editorconfig instellingen die geen opmaakinstellingen zijn. Deze instellingen worden gedocumenteerd met de functies die ze configureren:

Voor meer informatie over:

C++ opmaakconventies

C++ opmaak EditorConfig-instellingen worden voorafgegaan door cpp_. Hier volgt een voorbeeld van hoe een .editorconfig bestand eruit kan zien:

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

In de rest van dit artikel worden alle opmaakinstellingen voor EditorConfig C++ vermeld die worden ondersteund door Visual Studio en VS Code.

Instellingen voor inspringing

Accolades laten inspringen

  • Naam: cpp_indent_braces
  • Waarden: true, false

Elke regel relatief laten inspringen

  • Naam: cpp_indent_multi_line_relative_to
  • Waarden:
    • outermost_parenthesis - Wanneer een nieuwe regel wordt getypt, wordt deze ingesprongen in verhouding tot het buitenste haakje open.
    • innermost_parenthesis - Wanneer een nieuwe regel wordt getypt, wordt deze relatief ingesprongen ten opzichte van het binnenste open haakje.
    • statement_begin - Wanneer een nieuwe regel wordt getypt, wordt deze inspringing relatief tot het begin van de huidige instructie.

Lijn binnen haakjes nieuwe lijnen uit wanneer ik ze typ

  • Naam: cpp_indent_within_parentheses
  • Waarden:
    • align_to_parenthesis - Inhoud uitlijnen op haakje openen.
    • indent - Nieuwe regels laten inspringen.

Gebruik in bestaande code niet de instelling voor het uitlijnen van nieuwe regels tussen haakjes

  • Naam: cpp_indent_preserve_within_parentheses
  • Waarden: true, false

Inhoud van hoofdletters inspringen

  • Naam: cpp_indent_case_contents
  • Waarden: true, false

Inspringingslabels

  • Naam: cpp_indent_case_labels
  • Waarden: true, false

Accolades laten inspringen na een case-instructie

  • Naam: cpp_indent_case_contents_when_block
  • Waarden: true, false

Accolades van lambdas laten inspringen die worden gebruikt als parameters

  • Naam: cpp_indent_lambda_braces_when_parameter
  • Waarden: true, false

Positie van goto-labels

  • Naam: cpp_indent_goto_labels
  • Waarden:
    • one_left - Eén inspringing links
    • leftmost_column - Naar de meest linkse kolom gaan
    • none - Laat ingesprongen

Positie van preprocessorrichtlijnen

  • Naam: cpp_indent_preprocessor
  • Waarden:
    • one_left - Eén inspringing links
    • leftmost_column - Naar de meest linkse kolom gaan
    • none - Laat ingesprongen

Toegangsaanduidingen laten inspringen

  • Naam: cpp_indent_access_specifiers
  • Waarden: true, false

Inhoud van naamruimte laten inspringen

  • Naam: cpp_indent_namespace_contents
  • Waarden: true, false

Inspringing van opmerkingen behouden

  • Naam: cpp_indent_preserve_comments
  • Waarden: true, false

Instellingen voor nieuwe regels

Positie van open accolades voor naamruimten

  • Naam: cpp_new_line_before_open_brace_namespace
  • Waarden:
    • new_line - Naar een nieuwe regel gaan
    • same_line - Houd dezelfde regel aan, maar voeg een spatie toe vóór
    • ignore - Niet automatisch verplaatsen

Positie van open accolades voor typen

  • Naam: cpp_new_line_before_open_brace_type
  • Waarden:
    • new_line - Naar een nieuwe regel gaan
    • same_line - Houd dezelfde regel aan, maar voeg een spatie toe vóór
    • ignore - Niet automatisch verplaatsen

Positie van open accolades voor functies

  • Naam: cpp_new_line_before_open_brace_function
  • Waarden:
    • new_line - Naar een nieuwe regel gaan
    • same_line - Houd dezelfde regel aan, maar voeg een spatie toe vóór
    • ignore - Niet automatisch verplaatsen

Positie van open accolades voor besturingsblokken

  • Naam: cpp_new_line_before_open_brace_block
  • Waarden:
    • new_line - Naar een nieuwe regel gaan
    • same_line - Houd dezelfde regel aan, maar voeg een spatie toe vóór
    • ignore - Niet automatisch verplaatsen

Positie van open accolades voor lambdas

  • Naam: cpp_new_line_before_open_brace_lambda
  • Waarden:
    • new_line - Naar een nieuwe regel gaan
    • same_line - Houd dezelfde regel aan, maar voeg een spatie toe vóór
    • ignore - Niet automatisch verplaatsen

Bereikaccolades op afzonderlijke regels plaatsen

  • Naam: cpp_new_line_scope_braces_on_separate_lines
  • Waarden: true, false

Voor lege typen verplaatst u accolades naar dezelfde lijn als het openen van accolades

  • Naam: cpp_new_line_close_brace_same_line_empty_type
  • Waarden: true, false

Voor lege functieteksten verplaatst u accolades naar dezelfde lijn als het openen van accolades

  • Naam: cpp_new_line_close_brace_same_line_empty_function
  • Waarden: true, false

Plaats 'catch' en vergelijkbare trefwoorden op een nieuwe regel

  • Naam: cpp_new_line_before_catch
  • Waarden: true, false

Plaats 'else' op een nieuwe regel

  • Naam: cpp_new_line_before_else
  • Waarden: true, false

Plaats 'while' in een do-while-lus op een nieuwe regel

  • Naam: cpp_new_line_before_while_in_do_while
  • Waarden: true, false

Afstandsinstellingen

Afstand tussen functienamen en haakjes van argumentlijsten openen

  • Naam: cpp_space_before_function_open_parenthesis
  • Waarden:
    • insert - Een spatie invoegen
    • remove - Spaties verwijderen
    • ignore - Geen spaties wijzigen

Spatie invoegen tussen haakjes van een lijst met argumenten

  • Naamwaarden cpp_space_within_parameter_list_parentheses : true, false

Spatie tussen haakjes invoegen wanneer de lijst met argumenten leeg is

  • Naam: cpp_space_between_empty_parameter_list_parentheses
  • Waarden: true, false

Ruimte invoegen tussen trefwoord en haakje openen in besturingsstroominstructies

  • Naam: cpp_space_after_keywords_in_control_flow_statements
  • Waarden: true, false

Ruimte invoegen tussen haakjes van een besturingselementinstructie

  • Naam: cpp_space_within_control_flow_statement_parentheses
  • Waarden: true, false

Spatie invoegen voordat haakjes van lambda-argumentlijsten worden geopend

  • Naam: cpp_space_before_lambda_open_parenthesis
  • Waarden: true, false

Ruimte invoegen tussen haakjes van een C-stijl cast

  • Naam: cpp_space_within_cast_parentheses
  • Waarden: true, false

Spatie invoegen na haakje sluiten van C-stijl cast

  • Naam: cpp_space_after_cast_close_parenthesis
  • Waarden: true, false

Spatie invoegen tussen haakjes van een haakje expressie

  • Naam: cpp_space_within_expression_parentheses
  • Waarden: true, false

Spatie invoegen voordat u een accolade van blokken opent

  • Naam: cpp_space_before_block_open_brace
  • Waarden: true, false

Spatie tussen lege accolades invoegen

  • Naam: cpp_space_between_empty_braces
  • Waarden: true, false

Ruimte invoegen voordat u accolades van uniforme initialisatie- en initialisatielijsten opent

  • Naam: cpp_space_before_initializer_list_open_brace
  • Waarden: true, false

Ruimte invoegen binnen accolades van uniforme initialisatie- en initialisatielijsten

  • Naam: cpp_space_within_initializer_list_braces
  • Waarden: true, false

Spaties binnen uniforme initialisatie- en initialisatielijsten behouden

  • Naam: cpp_space_preserve_in_initializer_list
  • Waarden: true, false

Ruimte invoegen voordat vierkante haken worden geopend

  • Naam: cpp_space_before_open_square_bracket
  • Waarden: true, false

Spatie invoegen tussen vierkante haken

  • Naam: cpp_space_within_square_brackets
  • Waarden: true, false

Spatie invoegen vóór lege vierkante haken

  • Naam: cpp_space_before_empty_square_brackets
  • Waarden: true, false

Ruimte tussen lege vierkante haken invoegen

  • Naam: cpp_space_between_empty_square_brackets
  • Waarden: true, false

Vierkante haken groeperen voor multidimensionale matrices samen

  • Naam: cpp_space_group_square_brackets
  • Waarden: true, false

Ruimte invoegen binnen vierkante haken voor lambdas

  • Naam: cpp_space_within_lambda_brackets
  • Waarden: true, false

SpaceBetweenEmptyLambdaBrackets

  • Naam: cpp_space_between_empty_lambda_brackets
  • Waarden: true, false

Spatie voor komma's invoegen

  • Naam: cpp_space_before_comma
  • Waarden: true, false

Spatie invoegen na komma's

  • Naam: cpp_space_after_comma
  • Waarden: true, false

Spaties voor en na lidoperators verwijderen

  • Naam: cpp_space_remove_around_member_operators
  • Waarden: true, false

Spatie invoegen vóór dubbele punt voor basis in typedeclaraties

  • Naam: cpp_space_before_inheritance_colon
  • Waarden: true, false

Spatie vóór dubbele punt invoegen voor constructors

  • Naam: cpp_space_before_constructor_colon
  • Waarden: true, false

Ruimte verwijderen vóór puntkomma's

  • Naam: cpp_space_remove_before_semicolon
  • Waarden: true, false

Spatie invoegen na puntkomma's

  • Naam: cpp_space_after_semicolon
  • Waarden: true, false

Spaties tussen unaire operatoren en hun operanden verwijderen

  • Naam: cpp_space_remove_around_unary_operator
  • Waarden: true, false

Afstand voor binaire operators

  • Naam: cpp_space_around_binary_operator
  • Waarden:
    • insert - Spaties voor en na binaire operatoren invoegen.
    • remove - Verwijder spaties rond binaire operators.
    • ignore - Wijzig geen spaties rond binaire operators.

Afstand voor toewijzingsoperatoren

  • Naam: cpp_space_around_assignment_operator
  • Waarden:
    • insert - Spaties invoegen rond toewijzingsoperatoren.
    • remove - Verwijder spaties rond toewijzingsoperatoren.
    • ignore - Wijzig geen spaties rond toewijzingsoperatoren.

Aanwijzer/verwijzingsuitlijning

  • Naam: cpp_space_pointer_reference_alignment
  • Waarden:
    • left - Links uitlijnen.
    • center - Centreren.
    • right - Rechts uitlijnen.
    • ignore - Laat ongewijzigd.

Afstand voor voorwaardelijke operators

  • Naam: cpp_space_around_ternary_operator
  • Waarden:
    • insert - Spaties invoegen rond voorwaardelijke operators.
    • remove - Verwijder spaties rond voorwaardelijke operators.
    • ignore - Wijzig geen spaties rond voorwaardelijke operators.

Opties voor terugloop

Opties voor terugloop voor blokken

  • Naam: cpp_wrap_preserve_blocks
  • Waarden:
    • one_liners - Geen codeblokken van één regel verpakken.
    • all_one_line_scopes - Verpakt codeblokken niet wanneer de accolades worden geopend en gesloten op de volgende regel.
    • never - Pas altijd nieuwe regels toe voor blokken.

Zie ook