Tslint: mejoras en la regla de sangría

Creado en 19 ago. 2015  ·  37Comentarios  ·  Fuente: palantir/tslint

De manera similar a ESLint , deberíamos poder aplicar sangrías de 2 o 4 espacios a través de opciones como las siguientes:

  • [x] [true, "spaces", 2]
  • [x] [true, "spaces", 4]

Además, sería bueno tener una opción "detect" (como se sugiere en el # 122) que intenta adivinar el estilo de sangría en un archivo y hacer cumplir la coherencia:

  • [] [true, "detect"]
P1 Fixed Enhancement

Comentario más útil

@ dimitriy-k # 2723 acaba de fusionarse, estará en la próxima versión.

Todos 37 comentarios

+1

+1 para hacer cumplir el número de espacios.

+1

¿Funcionaría esto solo si la sangría es divisible por el número de espacios configurados?

{
    theObject.something()
             .more(); // 13 spaces.
}

¿El método anterior (alinear los puntos) no sería compatible?

@ glen-84 Veo dos posibilidades:

  • Una verificación línea por línea de la sangría (donde su ejemplo no estaría permitido
  • Una declaración por comprobación de la sangría de la declaración. Dado que en su ejemplo, theObject.something().more() es una sola declaración, solo verificaría el nivel de sangría al principio.

Creo que ambos tienen pros y contras, pero el segundo probablemente sea el preferido aquí.

: +1:

+1
@JKillian -> Yo votaría por la opción # 2 donde se verifican las declaraciones, no todas las líneas.

+1 opción 2, verificando extracto por extracto

@JKillian Gracias. La segunda opción se ve bien. =)

Editar: cambié de opinión .

+1 opción 1

Una buena forma es la de ESLINT http://eslint.org/docs/rules/indent

+9000 SSJ3
Por favor, chicos, implementen la opción de sangría de 4 espacios lo antes posible. Empecé a programar mucho en texto mecanografiado y la sangría predeterminada de 2 espacios se siente tan mal para mí. Para algunas personas es realmente difícil ver el nivel de sangría de un código con solo 2 espacios ...

@radarsu, es posible que desee probar a usar .editorconfig por el momento.

@radarsu En este momento, la regla de sangría simplemente determina si tiene un error de sangría en función de cómo se alinea su código con la declaración anterior. Puede usar una sangría de cuatro espacios y hacer feliz la regla (de hecho, eso es lo que hace el código fuente de TSLint)

@JKillian ¿ alguna idea de lo difícil que sería abordar esto? Me encantaría empezar a aplicar el tamaño de la sangría. Estoy abierto a piratearlo si no es una pérdida de tiempo demasiado (solo tengo tanto tiempo durante la próxima semana).

Es difícil decir lo difícil que sería, espero que no sea simple al menos jaja. ¡Definitivamente hazlo!

@mcriss @ strike-sbolel Por favor, deje de agregar +1 comentarios.

Parece que se están haciendo esfuerzos similares aquí https://github.com/buzinas/tslint-eslint-rules/issues/74

He cambiado de opinión , ya que la opción 2 permitiría un código como:

{
    theObject.something()
             .more() // 13 spaces.
           .wrong()
                    .moreWrong();
}

En un mundo ideal, usaríamos la opción 1 con una configuración para permitir (o imponer) que las líneas "ajustadas" se coloquen debajo del último punto de la línea anterior.

{
    theObject.something()
             .more()  // 13 spaces.
             .right() // Must be the same as above now, because the previous line used this indentation mode.
             .moreRight();
}

O:

{
    theObject.something()
        .more() // (4 x 2) spaces.
        .right()
        .moreRight();
}

¿Podemos publicar una actualización, por favor?

@owais, las mejoras aún no se han implementado en el núcleo de TSLint. Ese enlace es a un repositorio externo con reglas personalizadas.

Oh. No me di cuenta de que estaba viendo otro repositorio. :) Gracias por el enlace. Creo que podría usar eso.

@adidahiya ¿Esto sigue siendo algo sobresaliente y vale la pena que abra un PR? ¿O sería mejor utilizar las reglas personalizadas a las que ha vinculado?

@pudgeball definitivamente estaría feliz de aceptar un PR (como lo indica la etiqueta)

tenga en cuenta que # 2723 no soluciona este problema. Corrige pestañas -> espacios xy espacios x -> pestañas, pero no arregla espacios x -> espacios y

¿Todavía no hay actualizaciones sobre el tamaño de la sangría? ... la solicitud es de 2015

@ dimitriy-k # 2723 acaba de fusionarse, estará en la próxima versión.

¿Cómo se llamará esta regla? 😄

@dolanmiu no es una regla nueva. Se implementa exactamente como se indica en la descripción del problema original. Simplemente haga clic en el PR que vinculé.

@adidahiya Estoy usando la última versión actual de tslint 5.3.2

Y usando lo siguiente:

    "indent": [
      true,
      "spaces",
      4
    ],

Tengo un archivo que es 2 todos los 2 espacios, ¡pero no lo detectó! ¿Estoy haciendo algo mal o hay un error?

@dolanmiu sí, eso parece un problema nuevo, también noté que # 2723 no funcionó como esperaba. Presenté https://github.com/palantir/tslint/issues/2814

¿alguna actualización?

"indent": [true, "spaces", 4] no me funciona

@ liul85 intente instalar tslint-eslint-rules y use terIndentRule

@leocaseiro gracias por compartir, lo intentaré.

Todavía no funciona en tslint 5.11.0

"indent": [true, "spaces", 4] todavía no funciona ...

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