Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';正在使用CheckStyle';s行长度检查?_Java_Eclipse_Checkstyle - Fatal编程技术网

Java 什么';正在使用CheckStyle';s行长度检查?

Java 什么';正在使用CheckStyle';s行长度检查?,java,eclipse,checkstyle,Java,Eclipse,Checkstyle,我将CheckStyle设置为在Eclipse中检查超过80个字符的行,并在编辑器中设置了80个字符的边距行。如果我将光标放在编辑器中代码行的末尾,坐标读数(例如)1433,77,表示从左侧开始的第77个字符列-但是当我在同一行上运行CheckStyle时,它表示该行有88个字符长!行尾没有多余的制表符或其他空白字符,肯定是77长。支票样式坏了吗 支票样式坏了吗 可能不会 我希望您/Eclipse和CheckStyle对制表符的宽度有不同的理解。听起来你认为它意味着4个空格,而CheckStyl

我将CheckStyle设置为在Eclipse中检查超过80个字符的行,并在编辑器中设置了80个字符的边距行。如果我将光标放在编辑器中代码行的末尾,坐标读数(例如)1433,77,表示从左侧开始的第77个字符列-但是当我在同一行上运行CheckStyle时,它表示该行有88个字符长!行尾没有多余的制表符或其他空白字符,肯定是77长。支票样式坏了吗

支票样式坏了吗

可能不会

我希望您/Eclipse和CheckStyle对制表符的宽度有不同的理解。听起来你认为它意味着4个空格,而CheckStyle认为它意味着8个字符(默认值)

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

另一种方法是使用CheckStyle和Eclipse在选项卡宽度上达成一致;e、 g.见@MartinEllis的答案


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

来自Checkstyle文档:

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

要在Eclipse中执行此操作,请执行以下操作:

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

对此进行扩展:因为Checkstyle 8.24线宽应该在Checker下,而不是TreeWalker下。如果未考虑使用为TreeWalker指定的8.24或更新版本的tabWidth(如本答案和文档中建议的那样),则现在需要直接将其指定为LineLength模块的属性。更改日志:问题: