Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode adicionar arquivos EditorConfig ao seu projeto para configurar a formatação do C++ para impor um estilo de código consistente para todos que contribuem para o projeto. Tanto Visual Studio quanto Visual Studio Code têm suporte interno do EditorConfig para cada uma das configurações de formatação do C++ do Visual Studio global. As configurações do EditorConfig são armazenadas em um .editorconfig arquivo. Quando esse arquivo está presente em seu projeto, ele tem precedência sobre as configurações de formatação Visual Studio.
Este documento lista todas as configurações de formatação do EditorConfig C++ compatíveis com Visual Studio e Visual Studio Code.
O C++ tem configurações adicionais .editorconfig que não são configurações de formatação. Essas configurações estão documentadas com os recursos que configuram:
-
Inclua as configurações de Limpeza (
cpp_include_cleanup_*ecpp_sort_includes_*) documentadas em Configurar Limpeza de Inclusão do C/C++ em Visual Studio. - As configurações do IntelliSense para
#includeconclusão (cpp_includes_use_forward_slashecpp_includes_style) estão documentadas nas opções Configurar Linguagens > C/C++ > IntelliSense.
Para saber mais sobre:
- Usando um arquivo EditorConfig em Visual Studio, consulte Definir estilos de codificação consistentes com o EditorConfig.
- Crie manualmente um arquivo EditorConfig com base nas configurações de formatação de clang, consulte clangformat. Renomeie esse arquivo
.editorconfige salve-o em seu projeto.
Convenções de formatação do C++
As configurações de EditorConfig de formatação do C++ são prefixadas com cpp_. Aqui está um exemplo de como um .editorconfig arquivo pode ser:
[*.{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 configurações de formatação do EditorConfig C++ compatíveis com Visual Studio e VS Code.
Configurações de recuo
Chaves de recuo
- Nome:
cpp_indent_braces - Valores:
true,false
Recuar cada linha relativamente para
- Nome:
cpp_indent_multi_line_relative_to - Valores:
-
outermost_parenthesis- Quando uma nova linha é digitada, ela é recuada relativamente aos parênteses abertos mais externos. -
innermost_parenthesis- Quando uma nova linha é digitada, ela é recuada relativamente para o parêntese aberto mais interno. -
statement_begin- Quando uma nova linha é digitada, ela é recuada relativamente ao início da instrução atual.
-
Dentro de parênteses, alinhe novas linhas quando as digito
- Nome:
cpp_indent_within_parentheses - Valores:
-
align_to_parenthesis- Alinhar o conteúdo para abrir parênteses. -
indent- Recuar novas linhas.
-
No código existente, não use a configuração para alinhamento de novas linhas entre parênteses
- Nome:
cpp_indent_preserve_within_parentheses - Valores:
true,false
Conteúdo do caso de recuo
- Nome:
cpp_indent_case_contents - Valores:
true,false
Rótulos de maiúsculas e minúsculas de recuo
- Nome:
cpp_indent_case_labels - Valores:
true,false
Chaves de recuo após uma instrução case
- Nome:
cpp_indent_case_contents_when_block - Valores:
true,false
Chaves de recuo de lambdas usadas como parâmetros
- Nome:
cpp_indent_lambda_braces_when_parameter - Valores:
true,false
Posição dos rótulos de goto
- Nome:
cpp_indent_goto_labels - Valores:
-
one_left- Um recuo à esquerda -
leftmost_column- Mover para a coluna mais à esquerda -
none- Deixe recuado
-
Posição das diretivas de pré-processador
- Nome:
cpp_indent_preprocessor - Valores:
-
one_left- Um recuo à esquerda -
leftmost_column- Mover para a coluna mais à esquerda -
none- Deixe recuado
-
Especificadores de acesso de recuo
- Nome:
cpp_indent_access_specifiers - Valores:
true,false
Conteúdo do namespace de recuo
- Nome:
cpp_indent_namespace_contents - Valores:
true,false
Preservar recuo de comentários
- Nome:
cpp_indent_preserve_comments - Valores:
true,false
Configurações de nova linha
Posição de chaves abertas para namespaces
- Nome:
cpp_new_line_before_open_brace_namespace - Valores:
-
new_line- Mover para uma nova linha -
same_line- Mantenha-se na mesma linha, mas adicione um espaço antes -
ignore- Não reposicionar automaticamente
-
Posição de chaves abertas para tipos
- Nome:
cpp_new_line_before_open_brace_type - Valores:
-
new_line- Mover para uma nova linha -
same_line- Mantenha-se na mesma linha, mas adicione um espaço antes -
ignore- Não reposicionar automaticamente
-
Posição de chaves abertas para funções
- Nome:
cpp_new_line_before_open_brace_function - Valores:
-
new_line- Mover para uma nova linha -
same_line- Mantenha-se na mesma linha, mas adicione um espaço antes -
ignore- Não reposicionar automaticamente
-
Posição de chaves abertas para blocos de controle
- Nome:
cpp_new_line_before_open_brace_block - Valores:
-
new_line- Mover para uma nova linha -
same_line- Mantenha-se na mesma linha, mas adicione um espaço antes -
ignore- Não reposicionar automaticamente
-
Posição de chaves abertas para lambdas
- Nome:
cpp_new_line_before_open_brace_lambda - Valores:
-
new_line- Mover para uma nova linha -
same_line- Mantenha-se na mesma linha, mas adicione um espaço antes -
ignore- Não reposicionar automaticamente
-
Colocar chaves de escopo em linhas separadas
- Nome:
cpp_new_line_scope_braces_on_separate_lines - Valores:
true,false
Para tipos vazios, mova as chaves de fechamento para a mesma linha que as chaves de abertura
- Nome:
cpp_new_line_close_brace_same_line_empty_type - Valores:
true,false
Para corpos de função vazios, mova as chaves de fechamento para a mesma linha que as chaves de abertura
- Nome:
cpp_new_line_close_brace_same_line_empty_function - Valores:
true,false
Coloque 'catch' e palavras-chave semelhantes em uma nova linha
- Nome:
cpp_new_line_before_catch - Valores:
true,false
Coloque 'else' em uma nova linha
- Nome:
cpp_new_line_before_else - Valores:
true,false
Coloque 'while' em um loop do-while em uma 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ção e parênteses de abertura de listas de argumentos
- Nome:
cpp_space_before_function_open_parenthesis - Valores:
-
insert- Inserir um espaço -
remove– Remover espaços -
ignore- Não altere espaços
-
Inserir espaço dentro de 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 estiver vazia
- Nome:
cpp_space_between_empty_parameter_list_parentheses - Valores:
true,false
Inserir espaço entre a palavra-chave e o parêntese de abertura em instruções de fluxo de controle
- Nome:
cpp_space_after_keywords_in_control_flow_statements - Valores:
true,false
Inserir espaço dentro de parênteses de uma instrução de controle
- Nome:
cpp_space_within_control_flow_statement_parentheses - Valores:
true,false
Inserir espaço antes de abrir parênteses de listas de argumentos lambda
- Nome:
cpp_space_before_lambda_open_parenthesis - Valores:
true,false
Inserir espaço dentro de parênteses de uma conversão no estilo C
- Nome:
cpp_space_within_cast_parentheses - Valores:
true,false
Inserir espaço após fechar parênteses da conversão no estilo C
- Nome:
cpp_space_after_cast_close_parenthesis - Valores:
true,false
Inserir espaço dentro de parênteses de uma expressão parêntese
- Nome:
cpp_space_within_expression_parentheses - Valores:
true,false
Inserir espaço antes de abrir a chave de blocos
- Nome:
cpp_space_before_block_open_brace - Valores:
true,false
Inserir espaço entre chaves vazias
- Nome:
cpp_space_between_empty_braces - Valores:
true,false
Inserir espaço antes de abrir a chave de listas de inicialização e inicializador uniformes
- Nome:
cpp_space_before_initializer_list_open_brace - Valores:
true,false
Inserir espaço dentro de chaves de listas de inicialização e inicializador uniformes
- Nome:
cpp_space_within_initializer_list_braces - Valores:
true,false
Preservar espaços dentro de listas de inicialização e inicializador uniformes
- Nome:
cpp_space_preserve_in_initializer_list - Valores:
true,false
Inserir espaço antes de abrir colchetes
- Nome:
cpp_space_before_open_square_bracket - Valores:
true,false
Inserir espaço dentro do colchete
- Nome:
cpp_space_within_square_brackets - Valores:
true,false
Inserir espaço antes de colchetes vazios
- Nome:
cpp_space_before_empty_square_brackets - Valores:
true,false
Inserir espaço entre colchetes vazios
- Nome:
cpp_space_between_empty_square_brackets - Valores:
true,false
Agrupar colchetes para matrizes multidimensionais em conjunto
- Nome:
cpp_space_group_square_brackets - Valores:
true,false
Inserir espaço dentro de colchetes 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 membro
- Nome:
cpp_space_remove_around_member_operators - Valores:
true,false
Inserir espaço antes de dois-pontos para base em declarações de tipo
- Nome:
cpp_space_before_inheritance_colon - Valores:
true,false
Inserir espaço antes de dois-pontos para construtores
- Nome:
cpp_space_before_constructor_colon - Valores:
true,false
Remover espaço antes dos ponto-e-vírgula
- Nome:
cpp_space_remove_before_semicolon - Valores:
true,false
Inserir espaço após ponto-e-vírgula
- Nome:
cpp_space_after_semicolon - Valores:
true,false
Remover espaços entre operadores unários e 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 de operadores binários. -
remove– Remover espaços em torno de operadores binários. -
ignore- Não altere 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 de operadores de atribuição. -
remove– Remover espaços em torno de operadores de atribuição. -
ignore- Não altere espaços em torno de operadores de atribuição.
-
Alinhamento de ponteiro/referência
- Nome:
cpp_space_pointer_reference_alignment - Valores:
-
left- Alinhar à esquerda. -
center- Alinhar centro. -
right- Alinhar à 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 altere espaços em torno de operadores condicionais.
-
Opções de encapsulamento
Opções de encapsulamento para blocos
- Nome:
cpp_wrap_preserve_blocks - Valores:
-
one_liners- Não encapsular blocos de código de uma linha. -
all_one_line_scopes- Não encapsular blocos de código em que as chaves de abertura e fechamento estão na próxima linha. -
never– Sempre aplique as configurações de Novas Linhas para blocos.
-