自定义 phpcs 规则集不遵守排除模式声明

Custom phpcs ruleset is not respecting exclude-pattern declaration

我有一个自定义的 phpcs 规则集文件,其中包括几个规则集,还排除了某些目录(如测试或供应商)中的文件。

完整的 phpcs.xml 配置文件位于 https://github.com/sudar/bulk-move/blob/master/phpcs.xml 下面我提到了有趣的部分

<file>./</file>

<!-- Exclude test directories -->
<exclude-pattern>tests/*</exclude-pattern>

<!-- PHP Compatibility -->
<config name="testVersion" value="5.2-"/>
<rule ref="PHPCompatibility">
</rule>

现在,当我从我的项目的根目录发出 运行 phpcs 命令时,它从测试目录中排除了文件,并且 运行s phpcs 仅在其他文件上。

在 PhpStorm 中,我在配置 phpcs 时选择了这个 phpcs.xml 文件作为自定义编码标准。但是当我从测试目录(被排除在外)编辑文件时,PhpStorm 仍然使用自定义编码标准调用 phpcs 并显示警告。

所以我的问题是如何告诉 PhpStorm 排除在 phpcs.xml 规则集文件中排除的文件?

当前不支持

<exclude-pattern>

https://youtrack.jetbrains.com/issue/WI-22102 -- 观看这张票 (star/vote/comment) 以获得任何进展的通知。


现在您可以从 PHPCS 处理中排除文件.. 但必须在 IDE.

中手动完成

PHP CodeSniffer 集成(显示验证结果)作为 Inspection 完成......因此您可以对其进行配置 (enable/disable) 基于每个范围

  • 转到Settings/Preferences | Editor | Inspections
  • 定位CodeSniffer检查(PHP | PHP Code Sniffer validation)
  • 根据需要调整范围
    • 如果您在项目视图面板中将 tests 文件夹标记为 Tests Root(或 Settings/Preferences | Directories .. 或者它可能是从 composer.json 文件中自动检测到的)那么这样的文件夹已经是标准 "Tests" 范围的一部分)
    • 如果不是——那么就这样标记...或者在 Settings/Preferences | Appearance & Behavior | Scopes 创建自定义作用域然后在那里使用它。

一些链接:

2020.2将支持!请参阅上面的 Youtrack link。