tl;dr - Code Climate is a very easy to implement linter for PHP, JavaScript, CSS etc.
[A linter] find code that doesn't correspond to certain style guidelines
source: Wikipedia
When I upgraded my plugins to support WordPress 4.6, I decided that I wanted to follow the WordPress Coding Standards. I could have installed PHP CodeSniffer + the WordPress Coding Standards add-on, ES Lint, CSSlint etc, but why do that when I get it all from Code Climate ? Code Climate includes more than 30 different code analysis engines.
Prerequisite
I'm on a Mac, so I already had:
If you're not on a Mac, please see the Code Climate CLI README.
Installation
brew tap codeclimate/formulae brew install codeclimate
That's it :)
Setup
Go to your projectfolder and create the Code Climate config file - .codeclimate.yml
cd PROJECTFOLDER codeclimate init codeclimate engines:install
`codeclimate init` will scan the files and folders in `PROJECTFOLDER` and create a `.codeclimate.yml` with engines suitable for your project.
If you have a `.codeclimate.yml` file in your project folder, do:
cd PROJECTFOLDER codeclimate engines:install
`codeclimate engines:install` will install all the engines (linters) defined in `.codeclimate.yml`
WordPress
The PHP Codesniffer in Code Climate supports the following code standards:
WordPress
— complete set with all of the sniffs in the project
-
WordPress-Core
— main ruleset for WordPress core coding standards -
WordPress-Docs
— additional ruleset for inline documentation -
WordPress-Extra
— extended ruleset for optional best practices sniffs- includes
WordPress-Core
- includes
-
WordPress-VIP
— extended ruleset for WordPress VIP coding requirements- includes
WordPress-Core
- includes
Add the one you'd like to use to your `.codeclimate.yml` file:
phpcodesniffer: enabled: true config: standard: "WordPress-Core"
You can add multiple standards:
phpcodesniffer: enabled: true config: standard: "WordPress-Core, WordPress-Docs"
See my complete `.codeclimate.yml` file at the end of this article.
Use
From the command line
In the PROJECTFOLDER,
run codeclimate analyze
. Code Climate will list the issues it finds, eg:
Starting analysis Running duplication: Done! Running eslint: Done! Running fixme: Done! Running phpcodesniffer: Done! == plugin-customizer.php (2 issues) == 192: No space after opening parenthesis is prohibited [phpcodesniffer] 192: Expected 1 spaces between opening bracket and argument "$wp_query"; 0 found [phpcodesniffer] Analysis complete! Found 2 issues.
From inside your code editor
I'm using Atom, and Code Climate integrates well with the Atom linter plugin.
If you haven't, install the add-ons using the atom package manager:
apm install linter apm install linter-codeclimate
In Atom, the Code Climate linter will be triggered when you save the file.
There's also a vim plugin.
Bonus
If your project is an open source project, you can add it for free to codeclimate.com. Here's my plugin customizer.
.codeclimate.yml
Here's the config file I use for most of my projects: