Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
-
Incluir Definições de limpeza (
cpp_include_cleanup_*ecpp_sort_includes_*) estão documentadas em Configurar C/C++ Incluir Limpeza no Visual Studio. - As definições do IntelliSense para
#includeconclusão (cpp_includes_use_forward_slashecpp_includes_style) estão documentadas nas opções IntelliSense de Configurar Linguagens > C/C++>.
Para mais informações sobre:
- Usando um ficheiro EditorConfig no Visual Studio, veja Definir estilos de codificação consistentes com EditorConfig.
- Crie manualmente um ficheiro EditorConfig com base nas definições de formatação de clang, veja clangformat. Renomeia esse ficheiro
.editorconfige guarda-o no teu projeto.
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.
-