Js-beautify: Sangría extraña cuando se usa switch-case

Creado en 2 ago. 2010  ·  11Comentarios  ·  Fuente: beautify-web/js-beautify

switch (v) { case 1: break; case 2: break; case 3: break; default: break; }

…se convierte en…

switch (v) {
case 1:
    break;
case 2:
    break;
case 3:
    break;
default:
    break;
}

Tal vez esto sea intencional, pero esperaría que case tenga una sangría de 1 nivel (según la configuración).

Comentario más útil

En mi humilde opinión, eso realmente no tiene sentido. El razonamiento de Crockford para omitir las sangrías adicionales es el siguiente: “Cada caso está alineado con el interruptor. Esto evita la sangría excesiva”. ORLY?

Veo su punto, sin embargo. Si es por diseño y te gusta así, ¡déjalo como está!

Todos 11 comentarios

Es por diseño, según las convenciones de Crockford, http://javascript.crockford.com/code.html , por lo que no es un error.

En mi humilde opinión, eso realmente no tiene sentido. El razonamiento de Crockford para omitir las sangrías adicionales es el siguiente: “Cada caso está alineado con el interruptor. Esto evita la sangría excesiva”. ORLY?

Veo su punto, sin embargo. Si es por diseño y te gusta así, ¡déjalo como está!

switch (foo) {
    case something:
        break;
}
 ^^^^^^^ huge ugly empty space

... y el código real de repente se aleja 2 sangrías, lo que generalmente es mucho más feo que simplemente tratar el interruptor/caso como un caso especial sin sangría.

Obviamente, eso está todo en el ojo del espectador.

No estoy de acuerdo con Crockford, con su idea es mucho más difícil determinar el final real de la declaración de cambio. Según su línea de razonamiento, ¿por qué sangrar cualquier estructura de control? Todos producen una sanción de sangría.

Creo que esto sería mejor, si uno funcionara en una resolución de 800x600:

switch (v) {
    case 1:
    // code goes here
    break;

    default:
    // code goes here
    break;
}

Me encantaría tener una opción para esto; ya sea de la manera "normal" (como he visto declaraciones de cambio escritas toda mi vida), o la forma en que lo demostré anteriormente; cualquier cosa menos el valor predeterminado. ¿Estaría abierto a un parche, si no está personalmente de acuerdo o no ve la necesidad de hacerlo?

Grandioso, muchas gracias.

¿Podemos tener una opción para esto? ¿Quizás simplemente agregarlo a jslint happy?

Odio el lanzamiento de espacios en blanco descuidados para una declaración de cambio.

@drewhjava Siéntase libre de abrir un error que haga referencia a este solicitando esta opción

¿Este problema no parece resuelto?

Todavía tengo el embellecimiento del interruptor feo. ¿No se arregló esto?

p.ej

switch (v) {
case 1:
    break;
case 2:
    break;
case 3:
    break;
default:
    break;
}

Ehh. Agregué una casilla de verificación "jslint-feliz" a jsbeautifier.org.

Perfecto, gracias :)

Este problema de sangría es diferente con el mismo código en Windows frente a OSX. El caso en cuestión es https://github.com/gpujs/gpu.js , cuando ejecuto yarn make embellece la carpeta ./src , usando este script: https://github.com/ gpujs/gpu.js/blob/012cfff566691a8fa360e0af650a45c616ceff4a/gulpfile.js#L85

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