我在PhpStorm 2019.2.3中有一个项目,我想将自定义编码标准规则集与 PHP Code Sniffer 一起使用。当我选择提供的编码标准时,代码嗅探器按预期工作,但是当我更改为我的自定义规则集时,所有嗅探器都会消失。
我复制了整个 /PSR2 文件夹/PHP_CodeSniffer-3.4.2/src/Standards/
,将其命名PSR2-Custom
并编辑为ruleset.xml
:
<?xml version="1.0"?>
<ruleset name="PSR2R">
<rule ref="PSR2">
<exclude name="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine" />
<exclude name="PSR2.Classes.ClassDeclaration.OpenBraceNewLine" />
</rule>
<rule ref="Generic.Functions.OpeningFunctionBraceKernighanRitchie" />
</ruleset>
我认为它的作用是它使用 PSR2 编码标准并排除了两个包含的规则,受phpcs 启发:如何修改 PSR2 以检查大括号与方法是否在同一行?和https://github.com/squizlabs/PHP_CodeSniffer/issues/703
这些是我的设置:
A) 设置 > 语言和框架 > PHP > 质量工具:
带有 phpcs.bat 路径的本地配置(PHP_CodeSniffer-3.4.2,手动下载)(如文档所述)
B) 设置 > 编辑器 > 检查:PHP > 质量工具 > PHP 代码嗅探器验证:
-> 在“编码标准”下拉列表中选择 PSR2:标记嗅探
-> 在“编码标准”下拉列表中选择 PSR2-Custom:不再标记嗅探
我在 SO 上检查了类似的问题,但没有一个帮助我解决了我的问题,例如 自定义 PMD 规则集不起作用
我想不通,我哪里出错了。我的规则集配置有问题吗?感谢您的帮助。