【问题标题】:What's going on with CheckStyle's line length check?CheckStyle 的行长检查是怎么回事?
【发布时间】:2014-03-12 14:02:06
【问题描述】:

我已将 CheckStyle 设置为检查 Eclipse 中超过 80 个字符的行,并且我在编辑器中设置了 80 个字符的边距线。如果我将光标放在编辑器中一行代码的末尾,坐标读取(例如)1433、77,表示从左边算起的第 77 个字符列 - 但是当我在同一行上运行 CheckStyle 时,它​​说该行是 88 个字符长!行尾没有多余的制表符或其他空白字符,绝对是 77 长。 CheckStyle 坏了吗?

【问题讨论】:

    标签: java eclipse checkstyle


    【解决方案1】:

    来自 Checkstyle 文档:

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

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

    在 Eclipse 中执行此操作:

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

    【讨论】:

    【解决方案2】:

    CheckStyle 坏了吗?

    可能不会。

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

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

    另一种方法是利用 CheckStyle 和 Eclipse 就 TAB 宽度达成一致;例如请参阅@MartinEllis 的回答。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2017-10-20
      相关资源
      最近更新 更多