如何设置PHP CodeSniffer以扩展WordPress编码标准+;VSCode中的自动修复错误?

如何设置PHP CodeSniffer以扩展WordPress编码标准+;VSCode中的自动修复错误?,php,wordpress,visual-studio-code,codesniffer,Php,Wordpress,Visual Studio Code,Codesniffer,如何使用个人规则为项目设置PHP CodeSniffer,这些规则扩展WordPress编码标准+保存时自动修复VSCode中的错误 我有 在主题文件夹内(因此在项目内它们位于/wp content/themes/bideja/wpcs) 在主题文件夹中,我创建了phpcs.xml,它应该继承WordPress标准,这样我就可以进一步自定义它 <?xml version="1.0"?> <ruleset name="Bideja"> <description

如何使用个人规则为项目设置PHP CodeSniffer,这些规则扩展WordPress编码标准+保存时自动修复VSCode中的错误

我有

在主题文件夹内(因此在项目内它们位于
/wp content/themes/bideja/wpcs

在主题文件夹中,我创建了
phpcs.xml
,它应该继承WordPress标准,这样我就可以进一步自定义它

<?xml version="1.0"?>
<ruleset name="Bideja">
    <description>Sniffs</description>

    <config name="installed_paths" value="wpcs" />

    <arg value="s"/>

    <exclude-pattern>assets/*</exclude-pattern>
    <exclude-pattern>node_modules/*</exclude-pattern>
    <exclude-pattern>vendor/*</exclude-pattern>

    <rule ref="WordPress-VIP">
        <exclude name="Generic.Files.EndFileNewline.NotFound" />
        <exclude name="WordPress.PHP.YodaConditions.NotYoda" />
    </rule>

</ruleset>
但是VSCode如何在save上修复它们呢?我得到弹出错误:

phpcs: Referenced sniff "WordPress-VIP" does not exist
我应该在User settings.json中放置什么

"phpcs.enable": true,
"phpcs.standard": "WordPress", // ?
我试过了

phpcs --config-set installed_paths wpcs
当我用
phpcs-I
检查已安装的标准时,我可以看到WordPress标准已列出

 The installed coding standards are MySource, PEAR, PSR1, PSR12, PSR2, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra and WordPress-VIP

CodeSniffer是否能够自动缩进PHP和HTML,或者这超出了它的能力范围?我正在努力在VSCode中实现良好的缩进,我已经将WordPress编码标准克隆到
C:/wamp64/www/tools/phpcs
中,并在
C:/wamp64/www/tools/phpcs/bideja
中创建了自定义
ruleset.xml

<?xml version="1.0"?>
<ruleset name="Bideja">

    <arg value="s"/>

    <exclude-pattern>assets/*</exclude-pattern>
    <exclude-pattern>node_modules/*</exclude-pattern>
    <exclude-pattern>vendor/*</exclude-pattern>

    <rule ref="WordPress">
        <exclude name="WordPress.PHP.YodaConditions.NotYoda" />
        <!-- exclude other stuff as you wish -->
    </rule>

</ruleset>
检查是否安装了标准

phpcs -i
设置默认标准

phpcs --config-set default_standard bideja
安装
phpcbf
扩展,根据文件夹路径为Windows中的路径添加环境变量

 C:\Users\User\AppData\Roaming\Composer\vendor\bin
并使用标准的正确路径和名称修改
User settings.json

"phpcbf.executablePath": "C:\\Users\\User\\AppData\\Roaming\\Composer\\vendor\\bin\\phpcbf.bat",
"phpcbf.executablePathWindows": "C:\\Users\\User\\AppData\\Roaming\\Composer\\vendor\\bin\\phpcbf.bat",
"phpcs.standard": "bideja",
"phpcbf.standard": "bideja",
"phpcs.enable": true,
"phpcbf.onsave": true,

我希望我没有忘记一些事情,因为我把这件事弄得一团糟了好几个小时,但在保存文件后,VSCode最终修复了它所能修复的问题。

另一个设置是在
composer.json
脚本中使用
phpcs./path/to/code--standard=./path/to/ruleset.xml
,而不是更改设置
phpcs -i
phpcs --config-set default_standard bideja
 C:\Users\User\AppData\Roaming\Composer\vendor\bin
"phpcbf.executablePath": "C:\\Users\\User\\AppData\\Roaming\\Composer\\vendor\\bin\\phpcbf.bat",
"phpcbf.executablePathWindows": "C:\\Users\\User\\AppData\\Roaming\\Composer\\vendor\\bin\\phpcbf.bat",
"phpcs.standard": "bideja",
"phpcbf.standard": "bideja",
"phpcs.enable": true,
"phpcbf.onsave": true,