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

Sud*_*dar 2 php phpstorm phpcs

我有一个自定义的 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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

Laz*_*One 6

<exclude-pattern> 目前不支持。

https://youtrack.jetbrains.com/issue/WI-22102——观看这张票(明星/投票/评论)以获取任何进展的通知。


现在您可以从 PHPCS 处理中排除文件……但必须在 IDE 中手动完成。

PHP CodeSniffer 集成(显示验证结果)作为检查完成.. 因此您可以在每个范围的基础上配置它(启用/禁用):

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

一些链接: