Js-beautify: {"brace_style": "preserve-inline"} no funciona como se esperaba con parámetros de función de varias líneas

Creado en 24 oct. 2018  ·  4Comentarios  ·  Fuente: beautify-web/js-beautify

Descripción

Hola, primero un gran agradecimiento a ustedes por esta gran biblioteca.

Tengo un problema cuando uso argumentos de función multilínea que contienen objetos:

// This is working OK for me and it is very readable
myFunc('myString',
    myFunc2(),
    andSoOn());

Rendimiento esperado

Pero cuando lo intento:

// This is working OK for me and it is very readable
myFunc('myString',
    { myProp: true }, // I have just insterted this object
    andSoOn());

Salida real

Todo está reformateado en una línea ...

myFunc('myString', { myProp: true }, andSoOn());

Estoy bastante seguro de que tiene que ver con la regla {"brace_style": "preserve-inline"}.

Ambiente

SO: Linux Mint
editor de código: VSCode

Ajustes

Ejemplo:

{
    "editor": {
        "formatOnSave": true
    },
    "brace_style": "collapse,preserve-inline"
}

Gracias de nuevo ;)

javascript bug

Todos 4 comentarios

Es la configuración collapse que está tirando de la llave abierta hacia la línea anterior.

Pero se podría argumentar que preserve-inline debería anular eso. La parte difícil es que el embellecedor no puede decir si el bloque estará en línea hasta que llegue al final. Eso es difícil en el diseño actual.

Ok, lo he intentado con config:

{
    "brace_style": "none,preserve-inline"
}

Y el resultado es el mismo ... también creo que esto sucede solo en el contexto de parámetros de función, todos los demás casos están bien, espero tener algo de tiempo para verificarlo.

Hola, para aquellos que buscan una solución, aquí hay una solución alternativa:

myFunc( //
    { myProp: true }, //
    { myProp: true }, //
    { myProp: true });

Cuando pongo un comentario vacío, no se formatea en una línea. Al menos en VScode. No se hace menos fácil de escuchar y se puede quitar fácilmente en todo el proyecto con una búsqueda y reemplazo ( //\n )

Espero que pueda ayudar ...

@sebRomeo
Ay. Me alegro de que haya encontrado una solución alternativa, pero es una solución dolorosa.
Para que quede claro, "none,preserve-inline" debería funcionar, así que lo cambiaré por error.

¿Fue útil esta página
0 / 5 - 0 calificaciones