Tslint: улучшения правил отступа

Созданный на 19 авг. 2015  ·  37Комментарии  ·  Источник: palantir/tslint

Подобно ESLint , мы должны иметь возможность принудительно применять отступы в 2 или 4 места с помощью таких опций:

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

Кроме того, было бы неплохо иметь параметр "detect" (как предложено в # 122), который пытается угадать стиль отступа в файле и обеспечить согласованность:

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

Самый полезный комментарий

@ dimitriy-k # 2723 только что слился, будет в следующем выпуске.

Все 37 Комментарий

+1

+1 за принудительное количество пробелов.

+1

Будет ли это работать, только если отступ делится на количество настроенных пробелов?

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

Вышеупомянутый метод (выравнивание точек) не будет поддерживаться?

@ glen-84 Я вижу две возможности:

  • Построчная проверка отступа (где ваш пример не допускается
  • Постановка по выписке с проверкой отступа. Поскольку в вашем примере theObject.something().more() является одним оператором, он будет проверять только уровень отступа в его начале.

Я думаю, что у них обоих есть плюсы и минусы, но, наверное, здесь предпочтительнее второй.

: +1:

+1
@JKillian -> Я бы проголосовал за вариант №2, где проверяются операторы, а не каждая строка.

+1 вариант 2, проверка по выписке

@JKillian Спасибо. Второй вариант выглядит неплохо. знак равно

Изменить: я передумал .

+1 вариант 1

Хороший способ - ESLINT http://eslint.org/docs/rules/indent

+9000 SSJ3
Пожалуйста, ребята, как можно скорее внедрите опцию отступа в 4 пробела. Я начал много писать на машинописном тексте, и мне кажется, что отступ в два пробела по умолчанию очень плох. Некоторым людям действительно трудно увидеть уровень отступа в коде с двумя пробелами ...

@radarsu, вы можете .editorconfig .

@radarsu Прямо сейчас правило отступа просто определяет, есть ли у вас ошибка отступа, основываясь на том, как ваш код совпадает с предыдущим утверждением. Вы можете использовать отступ в четыре пробела и сделать правило счастливым (фактически, это то, что делает исходный код TSLint)

@JKillian хоть представляешь, как сложно с этим справиться? я хотел бы начать обеспечивать размер отступа. Я готов взломать его, если это не займет слишком много времени (только на следующей неделе).

Трудно сказать, насколько это будет сложно - я полагаю, что это будет по крайней мере непросто, ха-ха. Определенно дерзайте!

@mcriss @ strike-sbolel Пожалуйста, прекратите добавлять +1 комментарии.

Похоже, здесь предпринимаются аналогичные усилия https://github.com/buzinas/tslint-eslint-rules/issues/74

Я передумал , поскольку вариант 2 допускает такой код:

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

В идеальном мире мы бы использовали вариант 1 с настройкой, позволяющей (или принудительно) размещать «обернутые» строки под последней точкой в ​​предыдущей строке.

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

Или:

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

Мы можем выпустить обновление, пожалуйста?

@owais улучшения еще не реализованы в ядре TSLint. Эта ссылка ведет к внешнему репо с настраиваемыми правилами.

Ой. Я не понимал, что смотрю на другое репо. :) Спасибо за ссылку. Думаю, я мог бы это использовать.

@adidahiya Это все еще что-то выдающееся, и стоит ли мне открывать пиар? Или было бы лучше использовать пользовательские правила, с которыми вы связались?

@pudgeball определенно будет рад принять PR (как указано на этикетке)

обратите внимание, что # 2723 не решает эту проблему. Он исправляет табуляции -> x пробелов и x пробелов -> табуляции, но не исправляет x пробелов -> y пробелов

по-прежнему нет обновлений по размеру отступа? ... запрос с 2015 года

@ dimitriy-k # 2723 только что слился, будет в следующем выпуске.

Как будет называться это правило? 😄

@dolanmiu это не новое правило. Это реализовано точно так, как указано в исходном описании проблемы. Просто нажмите на PR, который я связал.

@adidahiya Я использую последнюю версию tslint 5.3.2

И используя следующее:

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

У меня есть файл, в котором 2 все 2 пробела, но он его не обнаружил! Я что-то делаю не так или есть ошибка?

@dolanmiu да, похоже, новая проблема, я также заметил, что # 2723 не работает так, как я ожидал. Я подал https://github.com/palantir/tslint/issues/2814

любые обновления?

"indent": [true, "spaces", 4] у меня не работает

@ liul85 попробуйте установить tslint-eslint-rules и использовать terIndentRule

@leocaseiro спасибо, что поделились, я попробую.

Все еще не работает в tslint 5.11.0

"indent": [true, "spaces", 4] все еще не работает ...

Была ли эта страница полезной?
0 / 5 - 0 рейтинги