Crear opciones de configuración del editor personalizadas y portátiles con EditorConfigCreate portable, custom editor settings with EditorConfig

Puede agregar un archivo EditorConfig al proyecto o código base para aplicar estilos de codificación coherentes para todos los usuarios que trabajan en el código base.You can add an EditorConfig file to your project or codebase to enforce consistent coding styles for everyone that works in the codebase. La configuración de EditorConfig tiene prioridad sobre la configuración global del editor de texto de Visual Studio.EditorConfig settings take precedence over global Visual Studio text editor settings. Esto significa que puede adaptar cada código base para que use la configuración del editor de texto específica para ese proyecto.This means that you can tailor each codebase to use text editor settings that are specific to that project. Puede establecer sus propias preferencias personales del editor en el cuadro de diálogo Opciones de Visual Studio.You can still set your own personal editor preferences in the Visual Studio Options dialog box. Esa configuración se aplica siempre que trabaje en un código base sin un archivo .editorconfig, o bien cuando dicho archivo no reemplaza un valor específico .Those settings apply whenever you're working in a codebase without an .editorconfig file, or when the .editorconfig file doesn't override a particular setting. Un ejemplo de este tipo de preferencia es el estilo de sangría (tabuladores o espacios).An example of such a preference is indent style—tabs or spaces.

La configuración de EditorConfig es compatible con varios IDE y editores de código, incluido Visual Studio.EditorConfig settings are supported by numerous code editors and IDEs, including Visual Studio. Es un componente portátil que acompaña al código y se pueden aplicar estilos de codificación incluso fuera de Visual Studio.It's a portable component that travels with your code, and can enforce coding styles even outside of Visual Studio.

Cuando se agrega un archivo EditorConfig al proyecto de Visual Studio, se aplica a las nuevas líneas de código el formato de la configuración de EditorConfig.When you add an EditorConfig file to your project in Visual Studio, new lines of code are formatted according to the EditorConfig settings. El formato del código existente no cambia, a menos que ejecute uno de los comandos siguientes:The formatting of existing code is not changed unless you run one of the following commands:

  • Limpieza de código (Ctrl+K, Ctrl+E), que aplica cualquier configuración de espacio en blanco, como el estilo de sangría, y la configuración de estilo de código seleccionada, como la manera de ordenar las directivas using.Code Cleanup (Ctrl+K, Ctrl+E), which applies any white space settings, such as indent style, and selected code style settings, such as how to sort using directives.
  • Editar > Opciones avanzadas > Dar formato al documento (o Ctrl+K, Ctrl+D en el perfil predeterminado), que solo aplica la configuración de espacio en blanco, como el estilo de sangría.Edit > Advanced > Format Document (or Ctrl+K, Ctrl+D in the default profile), which only applies white space settings, such as indent style.

Cuando se agrega un archivo EditorConfig al proyecto de Visual Studio, se aplica a las nuevas líneas de código el formato de la configuración de EditorConfig.When you add an EditorConfig file to your project in Visual Studio, new lines of code are formatted according to the EditorConfig settings. El formato del código existente no cambia a menos que se dé formato al documento (Editar > Opciones avanzadas > Dar formato al documento o Ctrl+K, Ctrl+D en el perfil predeterminado).The formatting of existing code is not changed unless you run unless you format the document (Edit > Advanced > Format Document or Ctrl+K, Ctrl+D in the default profile). La aplicación de formato al documento solo afecta a la configuración de espacio en blanco, como el estilo de sangría, a menos que se haya configurado la opción Dar formato al documento de modo que realice una limpieza de código adicional.Formatting the document only affects white space settings, such as indent style, unless you've configured Format Document to perform additional code cleanup.

Puede definir qué configuración de EditorConfig quiere que se aplique con Dar formato al documento en la página de opciones Formato.You can define which EditorConfig settings you want Format Document to apply on the Formatting options page.

Note

Este tema se aplica a Visual Studio para Windows.This topic applies to Visual Studio on Windows. En el caso de Visual Studio para Mac, vea EditorConfig en Visual Studio para Mac.For Visual Studio for Mac, see EditorConfig in Visual Studio for Mac.

Coherencia del códigoCode consistency

Las opciones de configuración de los archivos EditorConfig le permiten mantener opciones y estilos de código coherentes en un código base, como el estilo de sangría, el ancho de tabulación, los caracteres de fin de línea y la codificación, entre otros, independientemente del editor o el IDE que use.Settings in EditorConfig files enable you to maintain consistent coding styles and settings in a codebase, such as indent style, tab width, end of line characters, encoding, and more, regardless of the editor or IDE you use. Por ejemplo, al codificar en C#, si su código base tiene una convención que prefiere que las sangrías siempre consten de cinco caracteres de espacio, que los documentos usen la codificación UTF-8 y que cada línea siempre termine con un CR/LF, puede configurar un archivo .editorconfig para realizar esto.For example, when coding in C#, if your codebase has a convention to prefer that indents always consist of five space characters, documents use UTF-8 encoding, and each line always ends with a CR/LF, you can configure an .editorconfig file to do that.

Las convenciones de codificación que usa en sus proyectos personales pueden diferir de las que usa en los proyectos del equipo.Coding conventions you use on your personal projects may differ from those used on your team's projects. Por ejemplo, puede preferir que, cuando codifique, al aplicar sangría se agregue un carácter de tabulación.For example, you might prefer that when you're coding, indenting adds a tab character. En cambio, su equipo puede preferir que la aplicación de sangría agregue cuatro caracteres de espacio en lugar de un carácter de tabulación.However, your team might prefer that indenting adds four space characters instead of a tab character. Los archivos EditorConfig resuelven este problema permitiéndole que tenga una configuración para cada escenario.EditorConfig files resolve this problem by enabling you to have a configuration for each scenario.

Como las opciones de configuración se incluyen en un archivo del código base, se trasladan con este.Because the settings are contained in a file in the codebase, they travel along with that codebase. Siempre que abra el archivo de código en un editor compatible con EditorConfig, la configuración del editor de texto se implementará.As long as you open the code file in an EditorConfig-compliant editor, the text editor settings are implemented. Para obtener más información sobre los archivos EditorConfig, vea el sitio web EditorConfig.org.For more information about EditorConfig files, see the EditorConfig.org website.

Note

Las convenciones que se establecen en un archivo EditorConfig actualmente no se pueden aplicar en una canalización de CI/CD como advertencias o errores de compilación.Conventions that are set in an EditorConfig file cannot currently be enforced in a CI/CD pipeline as build errors or warnings. Las desviaciones de estilo solo aparecen en el editor de Visual Studio y en la lista de errores.Any style deviations appear only in the Visual Studio editor and Error List.

Configuración admitidaSupported settings

El editor de Visual Studio admite el conjunto principal de propiedades de EditorConfig:The editor in Visual Studio supports the core set of EditorConfig properties:

  • indent_styleindent_style
  • indent_sizeindent_size
  • tab_widthtab_width
  • end_of_lineend_of_line
  • charsetcharset
  • trim_trailing_whitespacetrim_trailing_whitespace
  • insert_final_newlineinsert_final_newline
  • raízroot

La configuración del editor EditorConfig se admiten en todos los lenguajes compatibles con Visual Studio excepto XML.EditorConfig editor settings are supported in all Visual Studio-supported languages except for XML. Además, EditorConfig admite convenciones de estilo de código, como lenguaje y formato y convenciones de nomenclatura para C# y Visual Basic.In addition, EditorConfig supports code style conventions including language, formatting, and naming conventions for C# and Visual Basic.

Incorporación y eliminación de los archivos EditorConfigAdd and remove EditorConfig files

Cuando se agrega un archivo EditorConfig al proyecto o código base, las nuevas líneas de código que escribe se formatean según este archivo.When you add an EditorConfig file to your project or codebase, any new lines of code you write are formatted according to the EditorConfig file. Aun así, el hecho de agregar un archivo EditorConfig no convertirá los estilos existentes en los nuevos mientras no aplique formato al documento o ejecute la Limpieza de código.However, adding an EditorConfig file does not convert existing styles to the new ones until you format the document or run Code Cleanup. Por ejemplo, si tiene sangrías en el archivo cuyo formato se realizó con tabulaciones y agrega un archivo EditorConfig que aplica sangrías con espacios, los caracteres de sangría no se convierten automáticamente en espacios.For example, if you have indents in your file that are formatted with tabs and you add an EditorConfig file that indents with spaces, the indent characters are not automatically converted to spaces. Cuando aplica formato al documento (Editar > Opciones avanzadas > Dar formato al documento o Ctrl + K, Ctrl+D), se aplica la configuración de espacio en blanco del archivo EditorConfig a las líneas de código existentes.When you format the document (Edit > Advanced > Format Document or Ctrl+K, Ctrl+D), the white space settings in the EditorConfig file are applied to existing lines of code.

Si quita un archivo EditorConfig del proyecto o código base y quiere dar formato a nuevas líneas de código de acuerdo con la configuración global del editor, debe cerrar y volver a abrir los archivos de código abiertos.If you remove an EditorConfig file from your project or codebase and you want new lines of code to be formatted according to the global editor settings, you must close and reopen any open code files.

Agregar un archivo EditorConfig a un proyectoAdd an EditorConfig file to a project

  1. Abra un proyecto o una solución en Visual Studio.Open a project or solution in Visual Studio. Seleccione el nodo de proyecto o solución, dependiendo de si la configuración de .editorconfig debería aplicarse a todos los proyectos de la solución o solamente a uno.Select either the project or solution node, depending on whether your .editorconfig settings should apply to all projects in the solution or just one. También puede seleccionar una carpeta del proyecto o de la solución donde agregar el archivo .editorconfig.You can also select a folder in your project or solution to add the .editorconfig file to.

  2. En la barra de menús, seleccione Proyecto > Agregar nuevo elemento o presione Ctrl+Mayús+A.From the menu bar, choose Project > Add New Item, or press Ctrl+Shift+A.

    Se abrirá el cuadro de diálogo Agregar nuevo elemento.The Add New Item dialog box opens.

  3. En el cuadro de búsqueda, busque editorconfig.In the search box, search for editorconfig.

    Se muestran dos plantillas de elemento Archivo editorconfig en los resultados de búsqueda.Two editorconfig File item templates are shown in the search results.

    Plantillas de elemento Archivo EditorConfig en Visual Studio

  4. Seleccione la plantilla Archivo editorconfig (predeterminado) para agregar un archivo EditorConfig rellenado previamente con dos opciones principales de EditorConfig para el estilo y el tamaño de sangría.Select the editorconfig File (default) template to add an EditorConfig file prepopulated with two core EditorConfig options for indent style and size. O bien, seleccione la plantilla Archivo editorconfig (.NET) para agregar un archivo EditorConfig rellenado previamente con los valores predeterminados de estilo de código. NET, formato y convenciones de nomenclatura.Or, select the editorconfig File (.NET) template to add an EditorConfig file prepopulated with default .NET code style, formatting, and naming conventions.

    Aparecerá un archivo .editorconfig en el Explorador de soluciones y se abrirá en el editor.An .editorconfig file appears in Solution Explorer, and it opens in the editor.

    Archivo .editorconfig en el Explorador de soluciones y el editor

  5. Edite el archivo según sea necesario.Edit the file as desired.

Otras maneras de agregar un archivo EditorConfigOther ways to add an EditorConfig file

Hay un par de formas más de agregar un archivo EditorConfig a su proyecto:There are a couple other ways you can add an EditorConfig file to your project:

Prioridad y jerarquía de los archivosFile hierarchy and precedence

Cuando agrega un archivo .editorconfig a una carpeta en su jerarquía de archivos, su configuración se aplica en todos los archivos aplicables de ese nivel y los posteriores.When you add an .editorconfig file to a folder in your file hierarchy, its settings apply to all applicable files at that level and below. También puede anular la configuración de EditorConfig para un proyecto, código base o parte de código base concretos, como una que use convenciones distintas a otras partes del código base.You can also override EditorConfig settings for a particular project, codebase, or part of a codebase, such that it uses different conventions than other parts of the codebase. Esto puede ser útil al incorporar código de otro sitio sin cambiar las convenciones.This can be useful when you incorporate code from somewhere else, and don’t want to change its conventions.

Para anular algunas configuraciones de EditorConfig o todas ellas, agregue un archivo .editorconfig en el nivel de la jerarquía de archivos en la que quiera que se aplique esa configuración anulada.To override some or all of the EditorConfig settings, add an .editorconfig file at the level of the file hierarchy you want those overridden settings to apply. La nueva configuración del archivo EditorConfig se aplica a los archivos que se encuentren en el mismo nivel y en cualquier subdirectorio.The new EditorConfig file settings apply to files at the same level and any subdirectories.

Jerarquía EditorConfig

Si solo quiere anular algunos valores de configuración, pero no todos, especifique tan solo esos valores en el archivo .editorconfig.If you want to override some but not all of the settings, specify just those settings in the .editorconfig file. Solo se anularán las propiedades que indique explícitamente en el archivo de nivel inferior.Only those properties that you explicitly list in the lower-level file are overridden. Se seguirán aplicando otros valores de configuración de los archivos .editorconfig de nivel superior.Other settings from higher-level .editorconfig files continue to apply. Si quiere asegurarse de que no hay ninguna configuración de ningún archivo .editorconfig de nivel superior aplicada a esta parte del código base, agregue la propiedad root=true al archivo .editorconfig de nivel inferior:If you want to ensure that no settings from any higher-level .editorconfig files are applied to this part of the codebase, add the root=true property to the lower-level .editorconfig file:

# top-most EditorConfig file
root = true

Los archivos EditorConfig se leen de arriba abajo.EditorConfig files are read top to bottom. Si hay varias propiedades con el mismo nombre, la prioridad la tiene la última propiedad encontrada con ese nombre.If there are multiple properties with the same name, the most recently found property with that name takes precedence.

Edición de los archivos EditorConfigEdit EditorConfig files

Visual Studio ayuda a editar archivos .editorconfig proporcionando listas de finalización de IntelliSense.Visual Studio helps you edit .editorconfig files by providing IntelliSense completion lists.

IntelliSense en un archivo .editorconfig

Después de editar el archivo EditorConfig, deberá recargar los archivos de código para que la configuración nueva tenga efecto.After you've edited your EditorConfig file, you must reload your code files for the new settings to take effect.

Si modifica muchos archivos .editorconfig, puede resultarle útil la extensión del servicio de lenguaje EditorConfig.If you edit numerous .editorconfig files, you may find the EditorConfig Language Service extension helpful. Algunas de las características de esta extensión incluyen resaltado de sintaxis, IntelliSense mejorado, validación y formato de código.Some of the features of this extension include syntax highlighting, improved IntelliSense, validation, and code formatting.

IntelliSense con la extensión de servicio de lenguaje de EditorConfig

EjemploExample

En el ejemplo siguiente se muestra el estado de la sangría de un fragmento de código de C# antes y después de agregar un archivo .editorconfig al proyecto.The following example shows the indent state of a C# code snippet before and after adding an .editorconfig file to the project. La configuración Tabulaciones del cuadro de diálogo Opciones del editor de texto de Visual Studio se establece para producir caracteres de espacio al presionar la tecla Tabulador.The Tabs setting in the Options dialog box for the Visual Studio text editor is set to produce space characters when you press the Tab key.

Configuración de tabulaciones en el editor de texto

Como se esperaba, al presionar la tecla Tabulador en la línea siguiente, se aplica la sangría en la línea agregando cuatro caracteres de espacio en blanco adicionales.As expected, pressing the Tab key on the next line indents the line by adding four additional white-space characters.

Código antes de usar EditorConfig

Agregue un nuevo archivo denominado .editorconfig al proyecto con el siguiente contenido.Add a new file called .editorconfig to the project, with the following contents. El valor [*.cs] significa que este cambio solo se aplica a archivos de código de C# en el proyecto.The [*.cs] setting means that this change applies only to C# code files in the project.

# Top-most EditorConfig file
root = true

# Tab indentation
[*.cs]
indent_style = tab

Ahora, cuando presiona la tecla Tabulador, obtiene caracteres de tabulación en lugar de espacios.Now, when you press the Tab key, you get tab characters instead of spaces.

La tecla TAB agrega caracteres de tabulación

Solución de problemas de las opciones de configuración de EditorConfigTroubleshoot EditorConfig settings

Si hay un archivo EditorConfig en cualquier lugar de la estructura de directorios en la ubicación del proyecto o encima de esta, Visual Studio aplica al editor la configuración del editor de ese archivo.If there is an EditorConfig file anywhere in the directory structure at or above your project's location, Visual Studio applies the editor settings in that file to your editor. En este caso, es posible que vea el siguiente mensaje en la barra de estado:In this case, you may see the following message in the status bar:

"Las preferencias de usuario para este tipo de archivo se han invalidado por las convenciones de codificación de este proyecto.""User preferences for this file type are overridden by this project's coding conventions."

Esto significa que si los valores de configuración del editor de Herramientas > Opciones > Editor de texto (como el tamaño y estilo de la sangría, el tamaño de la tabulación o las convenciones de codificación) se especifican en un archivo EditorConfig en la estructura de directorios, en el proyecto o por encima de este, las convenciones del archivo EditorConfig invalidan la configuración que aparece en Opciones.This means that if any editor settings in Tools > Options > Text Editor (such as indent size and style, tab size, or coding conventions) are specified in an EditorConfig file at or above the project in the directory structure, the conventions in the EditorConfig file override the settings in Options. Para controlar este comportamiento, cambie la opción Seguir las convenciones de codificación del proyecto en Herramientas > Opciones > Editor de texto.You can control this behavior by toggling the Follow project coding conventions option in Tools > Options > Text Editor. Si se desactiva la opción, se desactiva la compatibilidad con EditorConfig en Visual Studio.Unchecking the option turns off EditorConfig support for Visual Studio.

Opciones de herramientas: Seguir las convenciones de codificación del proyecto

Para buscar cualquier archivo .editorconfig en los directorios primarios, abra un símbolo del sistema y ejecute el siguiente comando desde la raíz del disco que contiene el proyecto:You can find any .editorconfig files in parent directories by opening a command prompt and running the following command from the root of the disk that contains your project:

dir .editorconfig /s

Para controlar el ámbito de las convenciones de EditorConfig, establezca la propiedad root=true en el archivo .editorconfig en la raíz del repositorio o en el directorio en el que se encuentra el proyecto.You can control the scope of your EditorConfig conventions by setting the root=true property in the .editorconfig file at the root of your repo or in the directory that your project resides. Visual Studio busca un archivo denominado .editorconfig en el directorio del archivo abierto y en todos los directorios principales.Visual Studio looks for a file named .editorconfig in the directory of the opened file and in every parent directory. La búsqueda finaliza cuando se llega a la ruta de acceso del archivo raíz o si se encuentra un archivo .editorconfig con root=true.The search ends when it reaches the root filepath, or if an .editorconfig file with root=true is found.

Vea tambiénSee also