Código de Visual Studio: el formato no utiliza la configuración de sangría

143

Al usar el Format Codecomando en Visual Studio Code, no está respetando mi configuración de sangría ( "editor.tabSize": 2). En su lugar, utiliza un tamaño de pestaña de 4. ¿Alguna idea de por qué está sucediendo esto?

¡Gracias!

AndyPerlitch
fuente
¿Cual idioma? Formato de delegado de Visual Studio Code para formateador de idiomas. Algunos formateadores observan la configuración de sangría. Por ejemplo, C #, que es manejado por OmniSharp, y debe configurarse usando omnisharp.json
Ian Yang
Esto me llevó mucho tiempo descubrir: tenía un archivo .cs con pestañas mixtas y sangrías de espacio y quería formatearlo con todas las pestañas (b / c la mayoría de las líneas tenían pestañas). Probé varios valores de configuración con "Formatear documento" y "Formatear selección" pero no tuve suerte. Finalmente encontré la acción "Convertir sangría en pestañas" (ver la imagen en la respuesta de @ Maleki) y eso hizo lo que quería hacer. (¡También descubrí recientemente ctrl-shift-p! ... sí, soy nuevo en VS Code)
KevinVictor

Respuestas:

228

El número de espacios a utilizar para formatear se toma de una ubicación diferente. Estoy usando la versión 1.0 y esto es lo que he hecho para solucionarlo (supongo que usa espacios en lugar de pestañas):

En la parte inferior del editor a la derecha, haga clic en "Espacios: #":

barra de estado a la derecha

Entonces aparecerá un menú en la parte superior. Seleccione "Sangría utilizando espacios":

seleccione tipo de sangría

Finalmente, puede seleccionar cuántos espacios desea que sus archivos tengan sangría.

seleccione tamaño de pestaña

La próxima vez que formatee un archivo, debería poder obtener el espacio que configuró.

Maleki
fuente
28
Esta configuración no se utiliza al aplicar el formato automático (clic derecho -> Formatear código). Siempre usa 4 espacios.
kiml42
Necesita ambos: configurar sus ajustes personales para el espacio de trabajo o el editor (o ambos). Los nuevos archivos recogerán esa configuración y mostrarán '2', por ejemplo, en la barra de estado según estas capturas de pantalla. Entonces puedes autoformatar. Para los archivos existentes, primero configure los ajustes de su espacio de trabajo / editor para 'usar pestañas' o 'usar espacios' y establezca la cantidad de espacios, luego puede hacer el método anterior para autoformatar archivos existentes.
rmcsharry
55
Establezca la configuración del usuario y del espacio de trabajo, configúrelo en la barra inferior, vuelva a abrir el archivo, aún el autoformato está utilizando 4 espacios ...
Jared
3
Tuve que salir y reiniciar vscode después de configurar los valores predeterminados tanto del usuario como del espacio de trabajo para la configuración. Solo entonces dejó de intentar usar 4 espacios en mis archivos JS.
John Pettitt
11
@ Jared Creo que estás usando el JS-CSS-HTMLcomplemento. En ese caso, presione F1y elija el formateador y configure su sangría allí. Parece anular todas las opciones discutidas anteriormente.
Atif Mohammed Ameenuddin
111

Visual Studio Code detecta la sangría actual por defecto y la usa, ignorando el .editorconfig

Establezca también "editor.detectIndentation" en falso

(Archivos -> Preferencias -> Configuración)

captura de pantalla

jnkb
fuente
Si esto sucede, probablemente tenga una sangría inconsistente dentro del archivo. Tenía un archivo con pestañas en todas partes, excepto unas pocas líneas con dos espacios (quién sabe por qué), que terminaron siendo detectadas como usando pestañas pero con un tamaño de pestaña de 2.
isanae
49

Si la respuesta de @ Maleki no funciona para usted, verifique si tiene un .editorconfigarchivo en la carpeta de su proyecto.

Por ejemplo, la CLI angular genera uno con un nuevo proyecto que se ve así

# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false

indent_sizeSe requiere cambiar aquí, ya que parece que anulará cualquier cosa en su .vscodeespacio de trabajo o configuración de usuario.

seangwright
fuente
55
Tuve que reiniciar VSCode para que el cambio surta efecto en el IDE.
JOpuckman el
3
En mi caso, en realidad fue causado por el .editorconfigarchivo en mi carpeta de inicio. De alguna manera, hace que VSCode ignore cualquier configuración específica de Workspace. Muy molesto.
xji
20

Si está utilizando un complemento (en mi caso Vetur, para vue.js), estos pueden establecer su propia configuración de formato de pestaña.

Abra su configuración, busque "formato" y mire las configuraciones de complementos relevantes que pueden estar sobrescribiendo el formato de pestaña global. Esto funcionó para mí; una vez que actualicé la configuración de la pestaña Vetur para que coincida con mi preferencia (pestañas de 4 tamaños en mi caso), el formateo de los documentos .vue comenzó a funcionar correctamente:

ingrese la descripción de la imagen aquí

Ciabaros
fuente
Eso es cierto, en mi caso también necesitaba establecer el tamaño de la pestaña en la configuración de la extensión Prettier.
tonix 01 de
Vale la pena señalar que el SCSS Formattercomplemento usa su propia configuración, por ejemplo, por lo que debe ir a Settings > Extensions > SCSS Formatter > Use Tabspara forzarlo a usar pestañas, por ejemplo.
SmartyP
13

Para mí, este problema fue causado por el uso del prettiercomplemento VSCode sin tener un archivo de configuración más bonito en el espacio de trabajo.

Deshabilitar el complemento solucionó el problema. Probablemente también podría haberse solucionado confiando en la configuración más bonita.

tailattention
fuente
1
Para mí fue el complemento "Embellecer".
Matthew Smith
Tuve el mismo problema con "Clang-Format" y el archivo de configuración ".clang-format".
repkap11
6

Lo más probable es que tenga alguna extensión de formato instalada, por ejemplo, JS-CSS-HTML Formatter .

Si es el caso, simplemente abra la Paleta de comandos, escriba "Formateador" y seleccione Formatter Config. Luego edite el valor de "indent_size"lo que quiera.

PD No olvides reiniciar Visual Studio Code después de editar :)

Albert Timashev
fuente
6

la configuración a continuación resolvió mi problema

  "editor.detectIndentation": false,
  "editor.insertSpaces": false,
  "editor.tabSize": 2,
rashidnk
fuente
¡funciona si trabajas con archivos con pestañas de 2 espacios solamente!
Dominux
2

Si vino aquí desde google porque la tabulación no tiene sangría, esto también puede deberse a que "Tab Moves Focus" está activado. Está en la parte inferior derecha, y si tiene un monitor lo suficientemente grande, puede perderlo a pesar de estar resaltado.

ingrese la descripción de la imagen aquí

Haga clic en el área verde o Ctrl + M para detenerlo. No estoy seguro de que pueda deshabilitarse por completo, de nuevo, no sé por qué un editor de código querría meterse con algo como sangría.

StingyJack
fuente
2

Tuve un problema similar, no importa lo que hice, no pude hacer que el tamaño de la pestaña se pegara a 2, aunque esté en la configuración de mi usuario, que terminó debido a la extensión EditorConfig . Busca un .editorconfigarchivo en su directorio de trabajo actual y, si no encuentra uno (o el que encuentra no especifica root=true), continuará buscando directorios principales hasta que encuentre uno.

Resulta que tenía un .editorconfigdirectorio padre en el directorio donde puse todos mis nuevos proyectos de código, y especificó una pestaña Tamaño de 4. Eliminar ese archivo solucionó mi problema.

bantic
fuente
1

A veces tengo este mismo problema. VSCode de repente perderá su mente e ignorará por completo cualquier configuración de sangría que le digo, a pesar de que ha sangrado el mismo archivo todo el día.

He editor.tabSizeestablecido a 2 (así como editor.formatOnSavea verdadero). Cuando VSCode desordena un archivo, uso las opciones en la parte inferior del editor para cambiar el tipo y el tamaño de la sangría, esperando que algo funcione, pero VSCode insiste en usar un tamaño de sangría de 4.

¿La solución? Reinicie VSCode. Debería volver con el estado de sangría que muestra algo mal (en mi caso, 4). Para mí, tuve que cambiar la configuración y luego guardarla para hacer el cambio, pero probablemente sea por mi editor.formatOnSaveconfiguración.

No he descubierto por qué sucede, pero para mí suele ser cuando edito un objeto anidado en un archivo JS. De repente hará una sangría muy extraña dentro del objeto, a pesar de que he estado trabajando en ese archivo durante un tiempo y ha estado sangrando muy bien.

MrOBrian
fuente
0

El complemento VSCode Vetur; utilizado para aplicaciones VueJS estaba anulando la configuración para mí.

Establecer vetur.format.options.tabSize en mi número preferido de espacios lo hizo funcionar.

Swoot
fuente
-1

Deshabilite todos los complementos (luego habilite uno por uno y verifique)

fider
fuente