Tslint: melhorias de regra de recuo

Criado em 19 ago. 2015  ·  37Comentários  ·  Fonte: palantir/tslint

Semelhante ao ESLint , devemos ser capazes de impor recuo de 2 ou 4 espaços por meio de opções como:

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

Além disso, seria bom ter uma opção "detect" (como sugerido em # 122) que tenta adivinhar o estilo de indentação em um arquivo e reforçar a consistência:

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

Comentários muito úteis

@ dimitriy-k # 2723 acabou de fundir, estará no próximo lançamento.

Todos 37 comentários

+1

+1 para reforçar o número de espaços.

+1

Isso só funcionaria se o recuo fosse divisível pelo número de espaços configurados?

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

O método acima (alinhar os períodos) não seria compatível?

@ glen-84 vejo duas possibilidades:

  • Uma verificação linha por linha de indentação (onde o seu exemplo não seria permitido
  • Uma verificação por declaração de recuo. Visto que em seu exemplo theObject.something().more() é uma única instrução, ela verificaria apenas o nível de indentação no início dela.

Acho que ambos têm prós e contras, mas o segundo provavelmente é o preferido aqui.

: +1:

+1
@JKillian -> Eu votaria na opção # 2, onde as declarações são verificadas, não todas as linhas.

+1 opção 2, verificando declaração por declaração

Obrigado @JKillian . A segunda opção parece boa. =)

Edit: Eu mudei de ideia .

+1 opção 1

Uma boa forma é o ESLINT um http://eslint.org/docs/rules/indent

+9000 SSJ3
Por favor, pessoal, implementem a opção de recuo de 4 espaços o mais rápido possível. Comecei a programar bastante em datilografado e o recuo padrão de 2 espaços parece tão ruim para mim. Para algumas pessoas é realmente difícil ver o nível de indentação de algum código com apenas 2 espaços ...

@radarsu você pode querer tentar usar .editorconfig por enquanto.

@radarsu No momento, a regra de recuo apenas descobre se você tem um erro de recuo com base em como seu código se alinha com a instrução anterior. Você é capaz de usar quatro indentações de espaço e tornar a regra feliz (na verdade, é isso que o código-fonte do TSLint faz)

@JKillian tem ideia de como isso seria difícil de resolver? Eu adoraria começar a aplicar o tamanho do recuo. Estou aberto para hackear isso se não for um desperdício de tempo (só tenho muito tempo na próxima semana).

Difícil dizer o quão difícil seria - eu espero que não seja pelo menos simples haha. Definitivamente vá em frente!

@mcriss @ strike-sbolel Pare de adicionar +1 comentários.

Parece que esforços semelhantes estão sendo feitos aqui https://github.com/buzinas/tslint-eslint-rules/issues/74

Mudei de ideia , pois a opção 2 permitiria códigos como:

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

Em um mundo ideal, usaríamos a opção 1 com uma configuração para permitir (ou forçar) que as linhas "quebradas" fossem posicionadas abaixo do último ponto na linha anterior.

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

Ou:

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

Podemos lançar uma atualização, por favor?

@owais as melhorias ainda não foram implementadas no núcleo do TSLint. Esse link é para um repositório externo com regras personalizadas.

Oh. Não percebi que estava olhando para outro repo. :) Obrigado pelo link. Acho que posso usar isso.

@adidahiya Isso ainda é algo notável e vale a pena abrir um PR? Ou seria melhor usar as regras personalizadas às quais você se vinculou?

@pudgeball definitivamente ficaria feliz em aceitar um PR (conforme indicado pela gravadora)

observe que # 2723 não corrige esse problema. Ele corrige tabulações -> espaços x e espaços x -> tabulações, mas não corrige espaços x -> espaços y

ainda sem atualizações no tamanho do recuo? ... a solicitação é de 2015

@ dimitriy-k # 2723 acabou de fundir, estará no próximo lançamento.

Qual será o nome dessa regra? 😄

@dolanmiu não é uma regra nova. Ele é implementado exatamente conforme observado na descrição do problema original. Basta clicar no link PR I.

@adidahiya Estou usando a versão atual mais recente do tslint 5.3.2

E usando o seguinte:

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

Eu tenho um arquivo que tem 2 todos os 2 espaços, mas não foi detectado! Estou fazendo algo errado ou há um bug?

@dolanmiu sim, parece um novo problema, também notei que o # 2723 não funcionou como eu esperava. Eu preenchi https://github.com/palantir/tslint/issues/2814

alguma atualização?

"indent": [true, "spaces", 4] não funciona para mim

@ liul85 tente instalar tslint-eslint-rules e usar terIndentRule

@leocaseiro obrigado por compartilhar, vou dar uma chance.

Ainda não está funcionando no tslint 5.11.0

"indent": [true, "spaces", 4] ainda não está funcionando ...

Esta página foi útil?
0 / 5 - 0 avaliações