Как требовать 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]"/>
это проверяет все пробелы перед первым словом