Skip to content

Instantly share code, notes, and snippets.

@jeffreyvr
Last active May 11, 2020 11:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeffreyvr/1619647b4ad2d541e681f17459169ac5 to your computer and use it in GitHub Desktop.
Save jeffreyvr/1619647b4ad2d541e681f17459169ac5 to your computer and use it in GitHub Desktop.
WordPress Theme or Plugin setup VSCode
<?xml version="1.0"?>
<ruleset name="WordPress Coding Standards based custom ruleset for your plugin">
<description>Generally-applicable sniffs for WordPress plugins.</description>
<!-- What to scan -->
<file>.</file>
<exclude-pattern>/vendor/</exclude-pattern>
<exclude-pattern>/node_modules/</exclude-pattern>
<!-- How to scan -->
<!-- Usage instructions: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage -->
<!-- Annotated ruleset: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml -->
<arg value="sp"/> <!-- Show sniff and progress -->
<arg name="basepath" value="./"/><!-- Strip the file paths down to the relevant bit -->
<arg name="colors"/>
<arg name="extensions" value="php"/>
<arg name="parallel" value="8"/><!-- Enables parallel processing when available for faster results. -->
<!-- Rules: Check PHP version compatibility -->
<!-- https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions -->
<config name="testVersion" value="5.3-"/>
<!-- https://github.com/PHPCompatibility/PHPCompatibilityWP -->
<!-- <rule ref="PHPCompatibilityWP"/> -->
<!-- Rules: WordPress Coding Standards -->
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards -->
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties -->
<config name="minimum_supported_wp_version" value="4.6"/>
<rule ref="WordPress">
<!-- <exclude name="WordPress.VIP"/> -->
</rule>
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
<properties>
<!-- Value: replace the function, class, and variable prefixes used. Separate multiple prefixes with a comma. -->
<property name="prefixes" type="array" value="my-plugin"/>
</properties>
</rule>
<rule ref="WordPress.WP.I18n">
<properties>
<!-- Value: replace the text domain used. -->
<property name="text_domain" type="array" value="my-plugin"/>
</properties>
</rule>
<rule ref="WordPress.WhiteSpace.ControlStructureSpacing">
<properties>
<property name="blank_line_check" value="true"/>
</properties>
</rule>
</ruleset>

WordPress Theme or Plugin setup VSCode

composer require --dev squizlabs/php_codesniffer

composer require --dev wp-coding-standards/wpcs

composer require --dev dealerdirect/phpcodesniffer-composer-installer

Create settings

Settings file (make sure to add to .gitignore):

.vscode/settings.json

{
    "phpcs.enable": true,
    "phpcs.executablePath": "./vendor/bin/phpcs",
    "phpcs.standard": "WordPress",
    "phpcbf.standard": "WordPress",
    "phpcbf.executablePath": "./vendor/bin/phpcbf",
    "editor.formatOnSave": true,
    "editor.tabSize": 4
}

Extensions

  • phpcs (global, probably already installed)
  • phpcbf (global, probably already installed)
  • WordPress Snippets (should be workspace enabled)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment