Convenzioni di formattazione EditorConfig in C++
È possibile aggiungere file EditorConfig al progetto per configurare la formattazione C++ per applicare uno stile di codice coerente per tutti gli utenti che contribuiscono al progetto. Sia Visual Studio che Visual Studio Code hanno il supporto EditorConfig predefinito per ognuna delle impostazioni di formattazione globali di Visual Studio C++. Le impostazioni di EditorConfig vengono archiviate in un .editorconfig
file. Quando il file è presente nel progetto, ha la precedenza sulle impostazioni di formattazione di Visual Studio.
Questo documento elenca tutte le impostazioni di formattazione di EditorConfig C++ supportate da Visual Studio e Visual Studio Code.
Per altre informazioni:
- Usando un file EditorConfig in Visual Studio, vedere Definire stili di codifica coerenti con EditorConfig.
- Creare manualmente un file EditorConfig in base alle impostazioni di formattazione clang, vedere clangformat. Rinominare il file
.editorconfig
e salvarlo nel progetto.
Convenzioni di formattazione C++
Le impostazioni editorconfig di formattazione C++ hanno il prefisso cpp_
. Di seguito è riportato un esempio dell'aspetto di un .editorconfig
file:
[*.{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
Il resto di questo documento elenca tutte le impostazioni di formattazione di EditorConfig C++ supportate da Visual Studio e VS Code.
Impostazioni di rientro
Parentesi graffe di rientro
- Nome:
cpp_indent_braces
- Valori:
true
,false
Rientrare ogni riga relativamente a
- Nome:
cpp_indent_multi_line_relative_to
- Valori:
outermost_parenthesis
- Quando viene digitata una nuova riga, viene rientrato relativamente alla parentesi aperta più esterna.innermost_parenthesis
- Quando viene digitata una nuova riga, viene rientrato relativamente alla parentesi aperta più interna.statement_begin
- Quando viene digitata una nuova riga, viene rientrato relativamente all'inizio dell'istruzione corrente.
Tra parentesi allineare le nuove righe quando le si digita
- Nome:
cpp_indent_within_parentheses
- Valori:
align_to_parenthesis
- Allinea il contenuto alla parentesi aperta.indent
- Rientro di nuove righe.
Nel codice esistente non usare l'impostazione per l'allineamento di nuove righe tra parentesi
- Nome:
cpp_indent_preserve_within_parentheses
- Valori:
true
,false
Rientro del contenuto del case
- Nome:
cpp_indent_case_contents
- Valori:
true
,false
Rientro delle etichette maiuscole/minuscole
- Nome:
cpp_indent_case_labels
- Valori:
true
,false
Rientro parentesi graffe dopo un'istruzione case
- Nome:
cpp_indent_case_contents_when_block
- Valori:
true
,false
Rientro parentesi graffe delle espressioni lambda usate come parametri
- Nome:
cpp_indent_lambda_braces_when_parameter
- Valori:
true
,false
Posizione delle etichette goto
- Nome:
cpp_indent_goto_labels
- Valori:
one_left
- Un rientro a sinistraleftmost_column
- Passare alla colonna all'estrema sinistranone
- Lasciare rientrato
Posizione delle direttive del preprocessore
- Nome:
cpp_indent_preprocessor
- Valori:
one_left
- Un rientro a sinistraleftmost_column
- Passare alla colonna all'estrema sinistranone
- Lasciare rientrato
Identificatori di accesso con rientro
- Nome:
cpp_indent_access_specifiers
- Valori:
true
,false
Contenuto dello spazio dei nomi rientro
- Nome:
cpp_indent_namespace_contents
- Valori:
true
,false
Mantenere il rientro dei commenti
- Nome:
cpp_indent_preserve_comments
- Valori:
true
,false
Impostazioni di nuova riga
Posizione delle parentesi graffe aperte per gli spazi dei nomi
- Nome:
cpp_new_line_before_open_brace_namespace
- Valori:
new_line
- Passare a una nuova rigasame_line
- Mantenere la stessa riga, ma aggiungere uno spazio primaignore
- Non riposizionare automaticamente
Posizione delle parentesi graffe aperte per i tipi
- Nome:
cpp_new_line_before_open_brace_type
- Valori:
new_line
- Passare a una nuova rigasame_line
- Mantenere la stessa riga, ma aggiungere uno spazio primaignore
- Non riposizionare automaticamente
Posizione delle parentesi graffe aperte per le funzioni
- Nome:
cpp_new_line_before_open_brace_function
- Valori:
new_line
- Passare a una nuova rigasame_line
- Mantenere la stessa riga, ma aggiungere uno spazio primaignore
- Non riposizionare automaticamente
Posizione delle parentesi graffe aperte per i blocchi di controllo
- Nome:
cpp_new_line_before_open_brace_block
- Valori:
new_line
- Passare a una nuova rigasame_line
- Mantenere la stessa riga, ma aggiungere uno spazio primaignore
- Non riposizionare automaticamente
Posizione delle parentesi graffe aperte per le espressioni lambda
- Nome:
cpp_new_line_before_open_brace_lambda
- Valori:
new_line
- Passare a una nuova rigasame_line
- Mantenere la stessa riga, ma aggiungere uno spazio primaignore
- Non riposizionare automaticamente
Posizionare parentesi graffe dell'ambito su linee separate
- Nome:
cpp_new_line_scope_braces_on_separate_lines
- Valori:
true
,false
Per i tipi vuoti, spostare le parentesi graffe di chiusura nella stessa riga delle parentesi graffe di apertura
- Nome:
cpp_new_line_close_brace_same_line_empty_type
- Valori:
true
,false
Per i corpi di funzione vuoti, spostare le parentesi graffe di chiusura nella stessa riga delle parentesi graffe di apertura
- Nome:
cpp_new_line_close_brace_same_line_empty_function
- Valori:
true
,false
Inserire parole chiave 'catch' e simili su una nuova riga
- Nome:
cpp_new_line_before_catch
- Valori:
true
,false
Posizionare 'else' su una nuova riga
- Nome:
cpp_new_line_before_else
- Valori:
true
,false
Posizionare 'while' in un ciclo do-while su una nuova riga
- Nome:
cpp_new_line_before_while_in_do_while
- Valori:
true
,false
Impostazioni di spaziatura
Spaziatura tra nomi di funzione e parentesi di apertura degli elenchi di argomenti
- Nome:
cpp_space_before_function_open_parenthesis
- Valori:
insert
- Inserire uno spazioremove
- Rimuovere spaziignore
- Non modificare gli spazi
Inserisci spazio tra parentesi di un elenco di argomenti
- Valori dei nomi
cpp_space_within_parameter_list_parentheses
:true
,false
Inserisci spazio tra parentesi quando l'elenco di argomenti è vuoto
- Nome:
cpp_space_between_empty_parameter_list_parentheses
- Valori:
true
,false
Inserire spazio tra parola chiave e parentesi di apertura nelle istruzioni del flusso di controllo
- Nome:
cpp_space_after_keywords_in_control_flow_statements
- Valori:
true
,false
Inserire spazio tra parentesi di un'istruzione di controllo
- Nome:
cpp_space_within_control_flow_statement_parentheses
- Valori:
true
,false
Inserisci spazio prima di aprire parentesi di elenchi di argomenti lambda
- Nome:
cpp_space_before_lambda_open_parenthesis
- Valori:
true
,false
Inserisci spazio tra parentesi di un cast in stile C
- Nome:
cpp_space_within_cast_parentheses
- Valori:
true
,false
Inserisci spazio dopo la parentesi chiusa del cast in stile C
- Nome:
cpp_space_after_cast_close_parenthesis
- Valori:
true
,false
Inserire uno spazio tra parentesi di un'espressione racchiusa tra parentesi
- Nome:
cpp_space_within_expression_parentheses
- Valori:
true
,false
Inserisci spazio prima di aprire una parentesi graffa di blocchi
- Nome:
cpp_space_before_block_open_brace
- Valori:
true
,false
Inserisci spazio tra parentesi graffe vuote
- Nome:
cpp_space_between_empty_braces
- Valori:
true
,false
Inserisci spazio prima di aprire parentesi graffe di elenchi uniformi di inizializzazione e inizializzatore
- Nome:
cpp_space_before_initializer_list_open_brace
- Valori:
true
,false
Inserire spazio tra parentesi graffe di elenchi uniformi di inizializzazione e inizializzatore
- Nome:
cpp_space_within_initializer_list_braces
- Valori:
true
,false
Mantenere gli spazi all'interno di elenchi di inizializzazione e inizializzatore uniformi
- Nome:
cpp_space_preserve_in_initializer_list
- Valori:
true
,false
Inserisci spazio prima di aprire parentesi quadre
- Nome:
cpp_space_before_open_square_bracket
- Valori:
true
,false
Inserisci spazio tra parentesi quadre
- Nome:
cpp_space_within_square_brackets
- Valori:
true
,false
Inserisci spazio prima delle parentesi quadre vuote
- Nome:
cpp_space_before_empty_square_brackets
- Valori:
true
,false
Inserisci spazio tra parentesi quadre vuote
- Nome:
cpp_space_between_empty_square_brackets
- Valori:
true
,false
Raggruppare le parentesi quadre per le matrici multidimensionali
- Nome:
cpp_space_group_square_brackets
- Valori:
true
,false
Inserire spazio tra parentesi quadre per espressioni lambda
- Nome:
cpp_space_within_lambda_brackets
- Valori:
true
,false
SpaceBetweenEmptyLambdaBrackets
- Nome:
cpp_space_between_empty_lambda_brackets
- Valori:
true
,false
Inserisci spazio prima delle virgole
- Nome:
cpp_space_before_comma
- Valori:
true
,false
Inserisci spazio dopo le virgole
- Nome:
cpp_space_after_comma
- Valori:
true
,false
Rimuovere gli spazi prima e dopo gli operatori membro
- Nome:
cpp_space_remove_around_member_operators
- Valori:
true
,false
Inserisci spazio prima dei due punti per la base nelle dichiarazioni di tipo
- Nome:
cpp_space_before_inheritance_colon
- Valori:
true
,false
Inserisci spazio prima dei due punti per i costruttori
- Nome:
cpp_space_before_constructor_colon
- Valori:
true
,false
Rimuovere lo spazio prima dei punti e virgola
- Nome:
cpp_space_remove_before_semicolon
- Valori:
true
,false
Inserisci spazio dopo punti e virgola
- Nome:
cpp_space_after_semicolon
- Valori:
true
,false
Rimuovere gli spazi tra gli operatori unari e i relativi operandi
- Nome:
cpp_space_remove_around_unary_operator
- Valori:
true
,false
Spaziatura per gli operatori binari
- Nome:
cpp_space_around_binary_operator
- Valori:
insert
: consente di inserire spazi prima e dopo gli operatori binari.remove
- Rimuovere spazi intorno agli operatori binari.ignore
- Non modificare gli spazi intorno agli operatori binari.
Spaziatura per gli operatori di assegnazione
- Nome:
cpp_space_around_assignment_operator
- Valori:
insert
- Inserire spazi intorno agli operatori di assegnazione.remove
- Rimuovere gli spazi intorno agli operatori di assegnazione.ignore
- Non modificare gli spazi intorno agli operatori di assegnazione.
Allineamento puntatore/riferimento
- Nome:
cpp_space_pointer_reference_alignment
- Valori:
left
- Allinea a sinistra.center
- Allinea al centro.right
- Allinea a destra.ignore
- Lasciare invariato.
Spaziatura per gli operatori condizionali
- Nome:
cpp_space_around_ternary_operator
- Valori:
insert
- Inserire spazi intorno agli operatori condizionali.remove
- Rimuovere gli spazi intorno agli operatori condizionali.ignore
- Non modificare gli spazi per gli operatori condizionali.
Opzioni di ritorno a capo
Opzioni di wrapping per i blocchi
- Nome:
cpp_wrap_preserve_blocks
- Valori:
one_liners
- Non eseguire il wrapping di blocchi di codice a una riga.all_one_line_scopes
- Non eseguire il wrapping dei blocchi di codice in cui le parentesi graffe di apertura e chiusura si trovano nella riga successiva.never
- Applica sempre le impostazioni nuove righe per i blocchi.
Vedi anche
- EditorConfig.org
- Supporting EditorConfig for a language service (Supporto di EditorConfig per un servizio di linguaggio)
- Funzionalità dell'editor del codice