Convenciones de formato de EditorConfig en C++

Puede agregar archivos EditorConfig al proyecto para configurar el formato de C++ para aplicar un estilo de código coherente para todos los usuarios que contribuyen al proyecto. Tanto Visual Studio como Visual Studio Code tienen compatibilidad integrada con EditorConfig para cada una de las opciones de formato globales de Visual Studio C++. La configuración de EditorConfig se almacena en un .editorconfig archivo. Cuando ese archivo está presente en el proyecto, tiene prioridad sobre la configuración de formato de Visual Studio.

En este documento se enumeran todas las opciones de formato de C++ editorConfig compatibles con Visual Studio y Visual Studio Code.

C++ tiene configuraciones adicionales .editorconfig que no tienen formato. Estas opciones se documentan con las características que configuran:

Para más información acerca de:

Convenciones de formato de C++

La configuración editorConfig de formato de C++ tiene el cpp_prefijo . Este es un ejemplo del aspecto que podría tener un .editorconfig archivo:

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

En el resto de este artículo se enumeran todas las opciones de formato de EditorConfig de C++ compatibles con Visual Studio y VS Code.

Configuración de sangría

Llaves de sangría

  • Nombre: cpp_indent_braces
  • Valores: true, false

Sangría de cada línea relativamente a

  • Nombre: cpp_indent_multi_line_relative_to
  • Valores:
    • outermost_parenthesis - Cuando se escribe una nueva línea, se aplica sangría relativamente al paréntesis abierto más externo.
    • innermost_parenthesis - Cuando se escribe una nueva línea, se aplica sangría relativamente al paréntesis abierto más interno.
    • statement_begin - Cuando se escribe una nueva línea, se aplica sangría relativamente al principio de la instrucción actual.

Entre paréntesis, alinee nuevas líneas cuando los escriba.

  • Nombre: cpp_indent_within_parentheses
  • Valores:
    • align_to_parenthesis - Alinear contenido para abrir paréntesis.
    • indent - Sangría de nuevas líneas.

En el código existente, no use la configuración para la alineación de nuevas líneas entre paréntesis.

  • Nombre: cpp_indent_preserve_within_parentheses
  • Valores: true, false

Contenido de mayúsculas y minúsculas

  • Nombre: cpp_indent_case_contents
  • Valores: true, false

Etiquetas de mayúsculas y minúsculas

  • Nombre: cpp_indent_case_labels
  • Valores: true, false

Llaves de sangría después de una instrucción case

  • Nombre: cpp_indent_case_contents_when_block
  • Valores: true, false

Llaves de sangría de expresiones lambda usadas como parámetros

  • Nombre: cpp_indent_lambda_braces_when_parameter
  • Valores: true, false

Posición de las etiquetas goto

  • Nombre: cpp_indent_goto_labels
  • Valores:
    • one_left - Una sangría a la izquierda
    • leftmost_column - Mover a la columna situada más a la izquierda
    • none - Dejar sangría

Posición de las directivas de preprocesador

  • Nombre: cpp_indent_preprocessor
  • Valores:
    • one_left - Una sangría a la izquierda
    • leftmost_column - Mover a la columna situada más a la izquierda
    • none - Dejar sangría

Especificadores de acceso de sangría

  • Nombre: cpp_indent_access_specifiers
  • Valores: true, false

Contenido del espacio de nombres de sangría

  • Nombre: cpp_indent_namespace_contents
  • Valores: true, false

Conservar sangría de comentarios

  • Nombre: cpp_indent_preserve_comments
  • Valores: true, false

Configuración de nueva línea

Posición de llaves abiertas para espacios de nombres

  • Nombre: cpp_new_line_before_open_brace_namespace
  • Valores:
    • new_line - Mover a una nueva línea
    • same_line - Mantenga la misma línea, pero agregue un espacio antes.
    • ignore - No cambiar la posición automáticamente

Posición de llaves abiertas para tipos

  • Nombre: cpp_new_line_before_open_brace_type
  • Valores:
    • new_line - Mover a una nueva línea
    • same_line - Mantenga la misma línea, pero agregue un espacio antes.
    • ignore - No cambiar la posición automáticamente

Posición de llaves abiertas para funciones

  • Nombre: cpp_new_line_before_open_brace_function
  • Valores:
    • new_line - Mover a una nueva línea
    • same_line - Mantenga la misma línea, pero agregue un espacio antes.
    • ignore - No cambiar la posición automáticamente

Posición de llaves abiertas para bloques de control

  • Nombre: cpp_new_line_before_open_brace_block
  • Valores:
    • new_line - Mover a una nueva línea
    • same_line - Mantenga la misma línea, pero agregue un espacio antes.
    • ignore - No cambiar la posición automáticamente

Posición de llaves abiertas para lambdas

  • Nombre: cpp_new_line_before_open_brace_lambda
  • Valores:
    • new_line - Mover a una nueva línea
    • same_line - Mantenga la misma línea, pero agregue un espacio antes.
    • ignore - No cambiar la posición automáticamente

Colocar llaves de ámbito en líneas independientes

  • Nombre: cpp_new_line_scope_braces_on_separate_lines
  • Valores: true, false

Para los tipos vacíos, mueva las llaves de cierre a la misma línea que las llaves de apertura.

  • Nombre: cpp_new_line_close_brace_same_line_empty_type
  • Valores: true, false

Para los cuerpos de función vacíos, mueva las llaves de cierre a la misma línea que las llaves de apertura.

  • Nombre: cpp_new_line_close_brace_same_line_empty_function
  • Valores: true, false

Colocar 'catch' y palabras clave similares en una nueva línea

  • Nombre: cpp_new_line_before_catch
  • Valores: true, false

Colocar 'else' en una nueva línea

  • Nombre: cpp_new_line_before_else
  • Valores: true, false

Colocar "while" en un bucle do-while en una nueva línea

  • Nombre: cpp_new_line_before_while_in_do_while
  • Valores: true, false

Configuración de espaciado

Espaciado entre nombres de función y paréntesis de apertura de listas de argumentos

  • Nombre: cpp_space_before_function_open_parenthesis
  • Valores:
    • insert - Insertar un espacio
    • remove - Quitar espacios
    • ignore - No cambiar espacios

Insertar espacio entre paréntesis de una lista de argumentos

  • Valores de nombre cpp_space_within_parameter_list_parentheses : true, false

Insertar espacio entre paréntesis cuando la lista de argumentos está vacía

  • Nombre: cpp_space_between_empty_parameter_list_parentheses
  • Valores: true, false

Insertar espacio entre palabra clave y paréntesis de apertura en instrucciones de flujo de control

  • Nombre: cpp_space_after_keywords_in_control_flow_statements
  • Valores: true, false

Insertar espacio entre paréntesis de una instrucción de control

  • Nombre: cpp_space_within_control_flow_statement_parentheses
  • Valores: true, false

Insertar espacio antes de abrir paréntesis de listas de argumentos lambda

  • Nombre: cpp_space_before_lambda_open_parenthesis
  • Valores: true, false

Insertar espacio entre paréntesis de una conversión de estilo C

  • Nombre: cpp_space_within_cast_parentheses
  • Valores: true, false

Insertar espacio después de cerrar paréntesis de conversión de estilo C

  • Nombre: cpp_space_after_cast_close_parenthesis
  • Valores: true, false

Insertar espacio entre paréntesis de una expresión entre paréntesis

  • Nombre: cpp_space_within_expression_parentheses
  • Valores: true, false

Insertar espacio antes de abrir llaves de bloques

  • Nombre: cpp_space_before_block_open_brace
  • Valores: true, false

Insertar espacio entre llaves vacías

  • Nombre: cpp_space_between_empty_braces
  • Valores: true, false

Insertar espacio antes de abrir llaves de inicialización uniforme y listas de inicializadores

  • Nombre: cpp_space_before_initializer_list_open_brace
  • Valores: true, false

Insertar espacio entre llaves de listas uniformes de inicialización e inicializador

  • Nombre: cpp_space_within_initializer_list_braces
  • Valores: true, false

Conservar espacios dentro de listas uniformes de inicialización e inicializador

  • Nombre: cpp_space_preserve_in_initializer_list
  • Valores: true, false

Insertar espacio antes de abrir corchetes

  • Nombre: cpp_space_before_open_square_bracket
  • Valores: true, false

Insertar espacio entre corchetes

  • Nombre: cpp_space_within_square_brackets
  • Valores: true, false

Insertar espacio antes de corchetes vacíos

  • Nombre: cpp_space_before_empty_square_brackets
  • Valores: true, false

Insertar espacio entre corchetes vacíos

  • Nombre: cpp_space_between_empty_square_brackets
  • Valores: true, false

Agrupar corchetes para matrices multidimensionales

  • Nombre: cpp_space_group_square_brackets
  • Valores: true, false

Insertar espacio entre corchetes para expresiones lambda

  • Nombre: cpp_space_within_lambda_brackets
  • Valores: true, false

SpaceBetweenEmptyLambdaBrackets

  • Nombre: cpp_space_between_empty_lambda_brackets
  • Valores: true, false

Insertar espacio antes de comas

  • Nombre: cpp_space_before_comma
  • Valores: true, false

Insertar espacio después de comas

  • Nombre: cpp_space_after_comma
  • Valores: true, false

Quitar espacios antes y después de los operadores de miembro

  • Nombre: cpp_space_remove_around_member_operators
  • Valores: true, false

Insertar espacio antes de dos puntos para base en declaraciones de tipo

  • Nombre: cpp_space_before_inheritance_colon
  • Valores: true, false

Insertar espacio antes de dos puntos para constructores

  • Nombre: cpp_space_before_constructor_colon
  • Valores: true, false

Quitar espacio antes de punto y coma

  • Nombre: cpp_space_remove_before_semicolon
  • Valores: true, false

Insertar espacio después de punto y coma

  • Nombre: cpp_space_after_semicolon
  • Valores: true, false

Quitar espacios entre operadores unarios y sus operandos

  • Nombre: cpp_space_remove_around_unary_operator
  • Valores: true, false

Espaciado para operadores binarios

  • Nombre: cpp_space_around_binary_operator
  • Valores:
    • insert - Insertar espacios antes y después de los operadores binarios.
    • remove - Quitar espacios alrededor de operadores binarios.
    • ignore - No cambie los espacios en torno a los operadores binarios.

Espaciado para operadores de asignación

  • Nombre: cpp_space_around_assignment_operator
  • Valores:
    • insert - Insertar espacios en torno a los operadores de asignación.
    • remove - Quitar espacios alrededor de los operadores de asignación.
    • ignore - No cambie los espacios en torno a los operadores de asignación.

Alineación de puntero/referencia

  • Nombre: cpp_space_pointer_reference_alignment
  • Valores:
    • left - Alinear a la izquierda.
    • center - Alinear el centro.
    • right - Alinear a la derecha.
    • ignore - Deje sin cambios.

Espaciado para operadores condicionales

  • Nombre: cpp_space_around_ternary_operator
  • Valores:
    • insert - Insertar espacios en torno a operadores condicionales.
    • remove - Quitar espacios en torno a operadores condicionales.
    • ignore - No cambie los espacios en torno a los operadores condicionales.

Opciones de ajuste

Opciones de ajuste de bloques

  • Nombre: cpp_wrap_preserve_blocks
  • Valores:
    • one_liners - No encapsula los bloques de código de una línea.
    • all_one_line_scopes - No encapsula los bloques de código donde las llaves de apertura y cierre se encuentran en la línea siguiente.
    • never - Aplique siempre la configuración nuevas líneas para los bloques.

Véase también