Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
-
Las opciones de limpieza de inclusión (
cpp_include_cleanup_*ycpp_sort_includes_*) se documentan en Configuración de la limpieza de C/C++ en Visual Studio. - La configuración de IntelliSense para
#includela finalización (cpp_includes_use_forward_slashycpp_includes_style) se documenta en Configurar lenguajes > C/C++ > Opciones de IntelliSense.
Para más información acerca de:
- Con un archivo EditorConfig en Visual Studio, consulte Definición de estilos de codificación coherentes con EditorConfig.
- Cree manualmente un archivo EditorConfig basado en la configuración de formato de clang; consulte clangformat. Cambie el nombre de ese archivo
.editorconfigy guárdelo en el proyecto.
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.
-