CheckStyle的线长检查发生了什么?

时间:2014-02-13 15:31:14

标签: java eclipse checkstyle

我设置CheckStyle以检查Eclipse中超过80个字符的行,并且我在编辑器中设置了80个字符的边距行。如果我将光标放在编辑器中一行代码的末尾,则坐标读取(例如)1433,77,表示左边第77个字符列 - 但是当我在同一行上运行CheckStyle时它说这行是88个字符长!在行的末尾没有无关的制表符或其他空白字符,它肯定是77长。 CheckStyle坏了吗?

2 个答案:

答案 0 :(得分:10)

从Checkstyle文档:

  

线条长度的计算考虑了制表符('\ t')的展开空格数。默认空格数为8.要指定不同数量的空格,用户可以设置适用于所有检查的TreeWalker属性tabWidth,包括LineLength;或者可以单独为LineLength设置属性tabWidth。

     

http://checkstyle.sourceforge.net/config_sizes.html#LineLength

要在Eclipse中执行此操作:

  • 打开窗口 - >菜单中的首选项。
  • 选择 Checkstyle
  • 已知模块下的搜索框中输入TreeWalker
  • 在右侧列表中选择 TreeWalker
  • 点击打开
  • tabWidth 更改为4。
  • 点击确定,然后再次确定

答案 1 :(得分:3)

  

CheckStyle是否已损坏?

可能不是。

我希望你/ Eclipse和CheckStyle对TAB字符的宽度有不同的看法。听起来你觉得它意味着4个空格,而CheckStyle认为它意味着8个字符(默认)。

解决此问题的一种方法是将Eclipse配置为不在源文件中使用TAB字符,然后重新缩进源文件。

另一种方法是使用CheckStyle和Eclipse在TAB宽度上达成一致;例如看@ MartinEllis的回答。

(我更喜欢第一种方法,因为这意味着无论平台的默认TAB宽度如何,我的源代码都会正确缩进;即Windows与Linux / Unix。源代码中的硬TAB字符一个坏主意< / em>的。)