如何使用CheckStyle要求tab-indentation?

时间:2015-02-11 16:01:56

标签: eclipse tabs indentation checkstyle

在CheckStyle中有一个模块(File Tab Character),它检查源代码中是否没有制表符。他们的理由是:

  
      
  • 开发人员不需要配置文本编辑器的标签宽度,以便能够阅读源代码。
  •   
  • 来自Apache jakarta编码标准:在分布式开发环境中,当提交消息被发送到邮件列表时,如果使用选项卡,则几乎无法读取它们。
  •   

为了确保空格的数量正确,还有一个额外的模块(Indentation)。

我更喜欢使用制表符进行缩进,并希望将此要求添加到我的CheckStyle文件中。我的理由:

  
      
  • 开发人员应该有机会配置用于缩进的空间
  •   
  • 标签是缩进的逻辑和可配置单位,n spaces只是一个任意数量的空格。
  •   

不幸的是我找不到使用CheckStyle的方法。

2 个答案:

答案 0 :(得分:9)

没有现成的检查执行此操作,但您可以相应地配置RegexpSinglelineJava检查。以下配置将进入TreeWalker下的 checkstyle.xml

<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注释通常在星号前至少有一个空格的问题。

答案 1 :(得分:1)

我们还可以使用格式字段中的以下正则表达式配置RegexpSinglelineJava -

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

这将检查第一个单词

之前的所有空格