Condividi tramite


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:

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 sinistra
    • leftmost_column - Passare alla colonna all'estrema sinistra
    • none - Lasciare rientrato

Posizione delle direttive del preprocessore

  • Nome: cpp_indent_preprocessor
  • Valori:
    • one_left - Un rientro a sinistra
    • leftmost_column - Passare alla colonna all'estrema sinistra
    • none - 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 riga
    • same_line - Mantenere la stessa riga, ma aggiungere uno spazio prima
    • ignore - 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 riga
    • same_line - Mantenere la stessa riga, ma aggiungere uno spazio prima
    • ignore - 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 riga
    • same_line - Mantenere la stessa riga, ma aggiungere uno spazio prima
    • ignore - 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 riga
    • same_line - Mantenere la stessa riga, ma aggiungere uno spazio prima
    • ignore - 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 riga
    • same_line - Mantenere la stessa riga, ma aggiungere uno spazio prima
    • ignore - 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 spazio
    • remove - Rimuovere spazi
    • ignore - 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