【问题标题】:PHP_CodeSniffer: How to reset line length on newline?PHP_CodeSniffer:如何在换行符上重置行长?
【发布时间】:2013-10-18 19:10:01
【问题描述】:

我已经制定了一个自定义标准,因为我的编码风格与任何人认为的正常风格相去甚远。事实上,我拒绝 90% 的许多人认为好的标准是空白垃圾邮件。话虽如此,我确实认为如果我要使用稍微奇怪的编码风格,我至少应该始终保持奇怪。为此,我已将所有Generic 标准嗅探复制到我的自定义标准中,现在我正在修改\删除这些以满足我的需要。

我遇到的问题是 ATM 是我试图找到\修改一个嗅探器,它实际上会以我们在测量行长时都习惯的方式限制行长。我正在使用的当前嗅探器(来自 Generic 标准,所以我假设这是最常用的)在遇到换行符时不会重置计数。

正在发生的事情的一个例子(为此我使用了非常小的限制):

$var='789012345678'.
  '2345678';

目前,如果我有 20 个字符的限制,此 sn-p 将产生错误,因为它不会重置计数,直到它到达分号 (;)。我需要这个通过,除非>20 个字符都在 single 实际行上(IOW:遇到新行而不是分号时需要重置)。

注意:我不想完全想disable the line length 嗅探。

更新:有人刚刚发布了这个问题的答案,这让我直接找到了解决方案。我打算接受这个答案,但现在它已被删除。如果他们愿意,在我自己发布解决方案之前,我会给他们一些时间来重写之前的答案。提示:这与使用Generic 标准有关。如果他们提到它是不使用换行符的 PEAR 标准,它也可以得到改进;其他人似乎工作正常。

【问题讨论】:

  • 嗯,这里的所有标准工作正常(换行后重置,而不是;),在PHP_CodeSniffer 1.4.7版本中,你使用的是哪个版本?
  • 是的,我现在发现了。我相信这个问题是以完全不正确的方式做事的副作用,但我无法重现它,因为我已经重新安排了我这样做的方式。我不应该从其他地方复制嗅探,我应该使用 ruleset.xml 文件来定义要包含的项目。

标签: php codesniffer


【解决方案1】:

如果其他人有这个问题,那是因为Generic 标准不打算用作标准。虽然这并不完全是在做什么,但实际上是相同的,因为我从一开始就复制了所有的嗅探。它包含的一些嗅探直接相互冲突。由于这个原因,它产生了如此错误的结果,这绝对是库的一个缺点,但如果我正确使用它们(通过将我想要的嗅探器单独导入我的自定义标准定义文件),这将不是问题。

【讨论】:

    猜你喜欢
    • 2012-03-06
    • 2011-11-13
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2012-12-27
    • 2011-11-30
    • 1970-01-01
    相关资源
    最近更新 更多