SiiilverSurfer
Estoy usando Prettier en VS Code. Me di cuenta de que al usar el formato al guardar, Prettier agrega comas finales en la última línea de un objeto cada vez.
Por ejemplo, digamos que tengo un objeto JS como este:
obj = {
hello: 'hello',
world: 'world'
}
Más bonito lo convierte en esto:
obj = {
hello: 'hello',
world: 'world',
}
Observe la coma extra después de
'world'
No encontré en la configuración una opción para solucionar esto.
puedes actualizar .prettierrc.json
y establecer la opción trailingComma
a none
como:
{
"trailingComma" : "none",
...
}
gschenk
Las comas finales son una convención de estilo de código que se introdujo para evitar diferencias falsas en los controles de versión (es decir, Git).
Imagina que tienes un código de versión controlada y tienes que cambiarlo. Cuando agrega una nueva línea a su objeto sin la coma final, deberá cambiar la última línea original agregando una coma. En el control de versiones, esto aparece como dos líneas modificadas. El revisor de código o un futuro desarrollador deben verificar si efectivamente cambió la última línea o si solo agregó la coma.
La respuesta de Zuckerberg te muestra cómo cambiarlo. Sin embargo, es mejor cambiar de estilo que cambiar más bonitaestilo de
-
Solución: aplique el cambio a todo su código base, confirme eso y agregue el compromiso a
.git-blame-ignore-revs
por lo que no aparece en la culpa – ver, por ejemplo akrabat.com/ignoring-revisions-with-git-blame– gimbolandia
1 de junio de 2021 a las 15:13
-
¡Pero el compromiso que agrega un nuevo elemento no debe ignorarse!
– Merwok
12 de marzo a las 19:22
-
Este es un gran punto, creo que el último elemento debería estar en el historial de cambios si el cambio no está relacionado. Recomiendo usar
trailingComma: "es5"
(el valor predeterminado se cambia denone
aes5
dev2.0.0
)– Anjan Talatam
15 de abril a las 2:58
David Federspiel
Las comas finales ya son un estándar porque dan como resultado un historial de confirmación más limpio. Si tiene que agregar una propiedad en el futuro, git mostrará una sola línea cambiada en lugar de una nueva línea Y la nueva coma en la línea anterior.
Para modificar la configuración en Código VSC:
- Vaya a ARCHIVO -> PREFERENCIAS -> AJUSTES. (Menús de código VS)
- La ventana de configuración debería abrirse. Arriba (Top) hay una búsqueda. Escribe “Más bonita”
- Debería ver los ajustes Prettier disponibles. Puedes modificarlos
ahora cambia trailingComma
a none
Las comas finales son JS modernas, pero si realmente no te gustan se pueden deshabilitar.
-
¿podría agregar alguna fuente, algún artículo sobre “coma final – js moderno”?
– Yevhenii Herasymchuk
21 oct 2020 a las 10:31
-
@YevheniiHerasymchuk No es solo JS. Es, por ejemplo, PHP también. Las comas finales evitan conflictos cuando dos personas agregan elementos a una matriz/objeto y luego quieren fusionarse con git. Con una coma final, en lugar de una línea modificada + línea insertada, solo obtiene una línea insertada que no producirá ningún conflicto.
– Mārtiņš Briedis
27 de abril de 2022 a las 9:23
Roma norte
En mi caso, la configuración anterior no fue suficiente:
{
"trailingComma" : "none",
}
Para que esto funcione para mí, además de esta configuración, tuve que eliminar de ajuste.json:
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
Y con la extensión ya instalada Prettier
a continuación, ingrese el comando
ctrl + shift + P
en vscode
Haga clic en Configure...
Elegir Prettier - Code formatter
Ahora esto:
const a = {
a: 10,
b: 15,
};
se convierte en esto:
const a = {
a: 10,
b: 15
}
-
¿podría agregar alguna fuente, algún artículo sobre “coma final – js moderno”?
– Yevhenii Herasymchuk
21 oct 2020 a las 10:31
-
@YevheniiHerasymchuk No es solo JS. Es, por ejemplo, PHP también. Las comas finales evitan conflictos cuando dos personas agregan elementos a una matriz/objeto y luego quieren fusionarse con git. Con una coma final, en lugar de una línea modificada + línea insertada, solo obtiene una línea insertada que no producirá ningún conflicto.
– Mārtiņš Briedis
27 de abril de 2022 a las 9:23
Nicolás Mineo
Si alguien se pregunta cómo tener VSCode prettier
la extensión se comporta como pre-commit
‘s prettier
gancho, esto funcionó para mí:
"prettier.trailingComma": "all"
Lo anterior debe usarse en combinación con prettier
como eldefaultFormatter
para los archivos relevantes, como lo sugieren otros.
Si eso por sí solo no es suficiente y también está usando EditorConfig
para otras personalizaciones, es posible que deba agregar también:
"prettier.useEditorConfig": false
No tengo idea de más bonito, pero ¿no está esto relacionado? prettier.io/docs/en/options.html#trailing-commas
– ASDF Gerte
22 de abril de 2020 a las 16:53
para mí, el comportamiento de más bonito es opuesto, elimina la coma final.
– Shub
22 de abril de 2020 a las 16:55
Puedes probar
"trailingComma": "all"
entonces o comprueba si también eres eslint. Eso podría estar anulando alguna configuración.– Zuckerberg
22 de abril de 2020 a las 16:56