Как требовать Tab-отступ с CheckStyle?

В CheckStyle есть модуль (File Tab Character), который проверяет, что в исходном коде нет символов табуляции. Их обоснование:

  • разработчикам не нужно настраивать ширину вкладки своих текстовых редакторов, чтобы иметь возможность читать исходный код.
  • из стандартов кодирования Apache jakarta: в распределенной среде разработки, когда сообщения фиксации отправляются в список рассылки, их почти невозможно прочитать, если вы используете вешалки.

чтобы обеспечить правильное количество пробелов, есть дополнительные модули (Indentation).

Я предпочитаю использовать вкладки для отступов и хочу добавить это требование в мой CheckStyle-файл. Мое обоснование:

  • разработчики должны иметь возможность настроить пространство, используемое для вдавливания
  • вкладки являются логическим и настраиваемым блоком для отступов,n spaces это просто произвольное число пространства.

к сожалению, я не мог найти способ сделать это с помощью CheckStyle.

2 ответов


нет готовой проверки, которая делает это, но вы можете настроить RegexpSinglelineJava проверить соответственно. Следующая конфигурация входит в ваш checkstyle.в XML под TreeWalker:

<module name="RegexpSinglelineJava">
    <property name="format" value="^\t* "/>
    <property name="message" value="Indent must use tab characters"/>
    <property name="ignoreComments" value="true"/>
</module>

он проверяет, есть ли пробелы в отступе. Настройка ignoreComments устраняет проблему, что комментарии Javadoc часто имеют по крайней мере одно пространство перед звездочкой.


мы также можем настроить RegexpSinglelineJava проверьте с помощью приведенного ниже регулярного выражения в поле формат -

<property name="format" value="^[\t]*[" "]+([\t]*|[" "]+)[a-zA-Z0-9]"/>

это проверяет все пробелы перед первым словом