Convenções de formatação do EditorConfig para C++

Pode adicionar ficheiros EditorConfig ao seu projeto para configurar a formatação em C++ e garantir um estilo de código consistente para todos os que contribuem para o projeto. Tanto o Visual Studio como o Visual Studio Code têm suporte incorporado para o EditorConfig em cada uma das definições globais de formatação C++ do Visual Studio. As definições do EditorConfig estão guardadas num .editorconfig ficheiro. Quando esse ficheiro está presente no seu projeto, tem prioridade sobre as definições de formatação do Visual Studio.

Este documento lista todas as definições de formatação EditorConfig C++ suportadas pelo Visual Studio e Visual Studio Code.

O C++ tem definições adicionais .editorconfig que não são definições de formatação. Essas definições estão documentadas com as funcionalidades que configuram:

Para mais informações sobre:

Convenções de formatação em C++

Formatação C++ As definições do EditorConfig têm o prefixo de cpp_. Aqui está um exemplo de como pode ser um .editorconfig ficheiro:

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

O restante deste artigo lista todas as definições de formatação C++ do EditorConfig suportadas pelo Visual Studio e VS Code.

Definições de indentação

Aparelhos de reentrância

  • Nome: cpp_indent_braces
  • Valores: true, false

Indente cada linha relativamente a

  • Nome: cpp_indent_multi_line_relative_to
  • Valores:
    • outermost_parenthesis - Quando uma nova linha é digitada, é indentada relativamente ao parêntese aberto mais externo.
    • innermost_parenthesis - Quando uma nova linha é digitada, é indentada relativamente ao parêntese aberto mais interno.
    • statement_begin - Quando uma nova linha é digitada, é indentada relativamente ao início da instrução atual.

Entre parênteses, alinhar as novas linhas quando as escrevo

  • Nome: cpp_indent_within_parentheses
  • Valores:
    • align_to_parenthesis - Alinhar o conteúdo à abertura entre parênteses.
    • indent - Indentar novas linhas.

No código existente, não use a definição para alinhamento de novas linhas entre parênteses

  • Nome: cpp_indent_preserve_within_parentheses
  • Valores: true, false

Índice do caso de recuo

  • Nome: cpp_indent_case_contents
  • Valores: true, false

Etiquetas de recuo

  • Nome: cpp_indent_case_labels
  • Valores: true, false

Chaves de recuo após uma declaração de caso

  • Nome: cpp_indent_case_contents_when_block
  • Valores: true, false

Órtees de indentação dos lambdas usados como parâmetros

  • Nome: cpp_indent_lambda_braces_when_parameter
  • Valores: true, false

Posição dos rótulos de referência

  • Nome: cpp_indent_goto_labels
  • Valores:
    • one_left - Uma reentrância à esquerda
    • leftmost_column - Mover-se para a coluna mais à esquerda
    • none - Deixar recuado

Posição das diretivas do pré-processador

  • Nome: cpp_indent_preprocessor
  • Valores:
    • one_left - Uma reentrância à esquerda
    • leftmost_column - Mover-se para a coluna mais à esquerda
    • none - Deixar recuado

Especificadores de acesso por recuo

  • Nome: cpp_indent_access_specifiers
  • Valores: true, false

Índice do espaço de nomes de indentação

  • Nome: cpp_indent_namespace_contents
  • Valores: true, false

Preservar a indentação dos comentários

  • Nome: cpp_indent_preserve_comments
  • Valores: true, false

Configurações da linha de nova

Posição das colchetes abertas para namespaces

  • Nome: cpp_new_line_before_open_brace_namespace
  • Valores:
    • new_line - Mudança para uma nova linha
    • same_line - Mantém na mesma linha, mas adiciona um espaço antes
    • ignore - Não reposicionar automaticamente

Posição dos aparelhos abertos para tipos

  • Nome: cpp_new_line_before_open_brace_type
  • Valores:
    • new_line - Mudança para uma nova linha
    • same_line - Mantém na mesma linha, mas adiciona um espaço antes
    • ignore - Não reposicionar automaticamente

Posição das órteas abertas para funções

  • Nome: cpp_new_line_before_open_brace_function
  • Valores:
    • new_line - Mudança para uma nova linha
    • same_line - Mantém na mesma linha, mas adiciona um espaço antes
    • ignore - Não reposicionar automaticamente

Posição das escoras abertas para blocos de controlo

  • Nome: cpp_new_line_before_open_brace_block
  • Valores:
    • new_line - Mudança para uma nova linha
    • same_line - Mantém na mesma linha, mas adiciona um espaço antes
    • ignore - Não reposicionar automaticamente

Posição dos aparelhos abertos para lambdas

  • Nome: cpp_new_line_before_open_brace_lambda
  • Valores:
    • new_line - Mudança para uma nova linha
    • same_line - Mantém na mesma linha, mas adiciona um espaço antes
    • ignore - Não reposicionar automaticamente

Coloque reforços de osciloscopia em linhas separadas

  • Nome: cpp_new_line_scope_braces_on_separate_lines
  • Valores: true, false

Para tipos vazios, mova as chaves de fecho para a mesma linha que as aberturas

  • Nome: cpp_new_line_close_brace_same_line_empty_type
  • Valores: true, false

Para corpos de funções vazios, mova as chaves de encerramento para a mesma linha que as aberturas

  • Nome: cpp_new_line_close_brace_same_line_empty_function
  • Valores: true, false

Coloque 'apanhar' e palavras-chave semelhantes numa nova linha

  • Nome: cpp_new_line_before_catch
  • Valores: true, false

Coloque 'else' numa nova linha

  • Nome: cpp_new_line_before_else
  • Valores: true, false

Coloque 'while' num ciclo de tempo de espera numa nova linha

  • Nome: cpp_new_line_before_while_in_do_while
  • Valores: true, false

Configurações de espaçamento

Espaçamento entre nomes de funções e parênteses iniciais de listas de argumentos

  • Nome: cpp_space_before_function_open_parenthesis
  • Valores:
    • insert - Inserir um espaço
    • remove - Remover espaços
    • ignore - Não mudes de espaço

Inserir espaço entre parênteses de uma lista de argumentos

  • Valores de Nome cpp_space_within_parameter_list_parentheses : true, false

Inserir espaço entre parênteses quando a lista de argumentos está vazia

  • Nome: cpp_space_between_empty_parameter_list_parentheses
  • Valores: true, false

Inserir espaço entre a palavra-chave e a parêntese de abertura nas instruções de fluxo de controlo

  • Nome: cpp_space_after_keywords_in_control_flow_statements
  • Valores: true, false

Inserir espaço entre parênteses de uma instrução de controlo

  • Nome: cpp_space_within_control_flow_statement_parentheses
  • Valores: true, false

Inserir espaço antes de abrir parênteses das listas de argumentos lambda

  • Nome: cpp_space_before_lambda_open_parenthesis
  • Valores: true, false

Inserir espaço entre parênteses de um elenco em estilo C

  • Nome: cpp_space_within_cast_parentheses
  • Valores: true, false

Inserir espaço após o fecho entre parênteses do cast em estilo C

  • Nome: cpp_space_after_cast_close_parenthesis
  • Valores: true, false

Inserir espaço entre parênteses de uma expressão entre parênteses

  • Nome: cpp_space_within_expression_parentheses
  • Valores: true, false

Inserir espaço antes de abrir o suporte dos blocos

  • Nome: cpp_space_before_block_open_brace
  • Valores: true, false

Inserir espaço entre os braçadeiros vazios

  • Nome: cpp_space_between_empty_braces
  • Valores: true, false

Insira espaço antes de abrir a chave das listas uniformes de inicialização e inicializador

  • Nome: cpp_space_before_initializer_list_open_brace
  • Valores: true, false

Inserir espaço dentro dos colchetes das listas uniformes de inicialização e inicializador

  • Nome: cpp_space_within_initializer_list_braces
  • Valores: true, false

Preservar espaços dentro das listas uniformes de inicialização e inicializador

  • Nome: cpp_space_preserve_in_initializer_list
  • Valores: true, false

Inserir espaço antes de abrir os colchetes quadrados

  • Nome: cpp_space_before_open_square_bracket
  • Valores: true, false

Inserir espaço dentro do colchete quadrado

  • Nome: cpp_space_within_square_brackets
  • Valores: true, false

Inserir espaço antes dos colchetes quadrados vazios

  • Nome: cpp_space_before_empty_square_brackets
  • Valores: true, false

Inserir espaço entre colchetes quadrados vazios

  • Nome: cpp_space_between_empty_square_brackets
  • Valores: true, false

Agrupar os parênteses para arrays multidimensionais juntos

  • Nome: cpp_space_group_square_brackets
  • Valores: true, false

Inserir espaço entre parênteses para lambdas

  • Nome: cpp_space_within_lambda_brackets
  • Valores: true, false

SpaceBetweenEmptyLambdaBrackets

  • Nome: cpp_space_between_empty_lambda_brackets
  • Valores: true, false

Inserir espaço antes das vírgulas

  • Nome: cpp_space_before_comma
  • Valores: true, false

Inserir espaço após vírgulas

  • Nome: cpp_space_after_comma
  • Valores: true, false

Remover espaços antes e depois dos operadores membros

  • Nome: cpp_space_remove_around_member_operators
  • Valores: true, false

Inserir espaço antes dos dois-pontos para a base nas declarações de tipo

  • Nome: cpp_space_before_inheritance_colon
  • Valores: true, false

Inserir espaço antes dos dois-pontos para construtores

  • Nome: cpp_space_before_constructor_colon
  • Valores: true, false

Remover o espaço antes do ponto e vírgula

  • Nome: cpp_space_remove_before_semicolon
  • Valores: true, false

Inserir espaço após o ponto e vírgula

  • Nome: cpp_space_after_semicolon
  • Valores: true, false

Remover espaços entre operadores unários e os seus operandos

  • Nome: cpp_space_remove_around_unary_operator
  • Valores: true, false

Espaçamento para operadores binários

  • Nome: cpp_space_around_binary_operator
  • Valores:
    • insert - Inserir espaços antes e depois dos operadores binários.
    • remove - Remover espaços em torno de operadores binários.
    • ignore - Não mude espaços em torno de operadores binários.

Espaçamento para operadores de atribuição

  • Nome: cpp_space_around_assignment_operator
  • Valores:
    • insert - Inserir espaços em torno dos operadores de atribuição.
    • remove - Remover espaços em torno dos operadores de atribuição.
    • ignore - Não mude os espaços em torno dos operadores de atribuição.

Alinhamento do ponteiro/referência

  • Nome: cpp_space_pointer_reference_alignment
  • Valores:
    • left - Alinhem à esquerda.
    • center - Alinhar ao centro.
    • right - Alinhem à direita.
    • ignore - Deixe inalterado.

Espaçamento para operadores condicionais

  • Nome: cpp_space_around_ternary_operator
  • Valores:
    • insert - Inserir espaços em torno de operadores condicionais.
    • remove - Remover espaços em torno de operadores condicionais.
    • ignore - Não mudes espaços em torno de operadores condicionais.

Opções de envolvimento

Opções de envolvimento para blocos

  • Nome: cpp_wrap_preserve_blocks
  • Valores:
    • one_liners - Não enrole blocos de código de uma linha.
    • all_one_line_scopes - Não enrole blocos de código onde as chaves de abertura e fecho estão na linha seguinte.
    • never - Aplicar sempre as definições de Novas Linhas para blocos.

Ver também