Skip to content

Instantly share code, notes, and snippets.

@Rarst
Last active February 21, 2023 11:21
Show Gist options
  • Select an option

  • Save Rarst/1370155 to your computer and use it in GitHub Desktop.

Select an option

Save Rarst/1370155 to your computer and use it in GitHub Desktop.
WordPress coding standards configuration for PhpStorm

Now Native

PhpStorm now bundles WordPress coding style natively, starting from version 8.

  1. Go to Project Settings > Code Style > PHP.
  2. Select Set From... (top right of window) > Predefined Style > WordPress.

No longer need to muck with this import! :)

@tannerm

tannerm commented Apr 10, 2013

Copy link
Copy Markdown

Awesome! Thanks @Rarst!!

For PhpStorm 6.0 on Mac on OSX 10.8.2 I followed @johnbloch's instructions for storing the file and to import it to PhpStorm had to go File->Default Settings->Code Style and then select the Wordpress scheme from there.

@Rarst

Rarst commented Apr 14, 2013

Copy link
Copy Markdown
Author

@tannerm that's strange, did it not just appear as available? I don't think I ever touched Default Settings for anything, but I mostly deal with giant project for my whole local test stack.

@iandunn

iandunn commented May 4, 2013

Copy link
Copy Markdown

Same as @tannerm with a fresh install of PhpStorm 6 on 10.8.3, except I had to restart PhpStorm before it would show up.

@theantichris

Copy link
Copy Markdown

Quick question. If these are based off this page http://make.wordpress.org/core/handbook/coding-standards/php/ it credits PEAR standards so I assume it is based off that.

PEAR standards have tabs and indents at 4 spaces not 2.

What is the reason for 2 in this file?

@Rarst

Rarst commented May 21, 2013

Copy link
Copy Markdown
Author

PEAR standards have tabs and indents at 4 spaces not 2. What is the reason for 2 in this file?

WP standard currently doesn't specify number of spaces per tab. PEAR might, but there is no explicit or implicit statement that rules missing in WP standard should be sourced from it.

2 is just my personal preference (as well as convention at past job), feel free to adjust. If standard makes it 4 explicitly I will probably move to that, until then it is rule that isn't officially defined.

Since bulk of indentation is real tabs anyway this doesn't have much impact.

@theantichris

Copy link
Copy Markdown

Cool deal. Thanks.

@sscovil

sscovil commented Jul 28, 2013

Copy link
Copy Markdown

This is fantastic, thank you!

@pdewouters

Copy link
Copy Markdown

thanks for this, I keep recommending it to others!

@frankiejarrett

Copy link
Copy Markdown

Thanks for taking the time. /five

@alexVauch

Copy link
Copy Markdown

Good job. Thanks.
What about this line:

<option name="ELSE_ON_NEW_LINE" value="true" />

But in codex there is no new line between "}" and "else".

@Rarst

Rarst commented Nov 15, 2013

Copy link
Copy Markdown
Author

Hmm, I am not sure if else thing was as strongly worded in earlier versions of coding style. Might be oversight on my part.

@Viper007Bond

Copy link
Copy Markdown

For those looking for a 4 space width tab indent instead of Rarst's 2 spaces, you can find my code style file here:

https://github.com/Automattic/PhpStorm-Resources/blob/master/WordPress.xml

I made it from scratch and it's similar but has some other changes as well.

Pull requests welcome.

@Rarst

Rarst commented Jan 13, 2014

Copy link
Copy Markdown
Author

Updated for 4 spaces per tab, more mainstream and was causing issues with CodeSniffer because continuation indent didn't match.

@tivnet

tivnet commented Jan 14, 2014

Copy link
Copy Markdown

@Rarst There was something about spaces vs tabs for JS. I believe lint/hint wanted spaces.

@Rarst

Rarst commented Jan 14, 2014

Copy link
Copy Markdown
Author

WP's JavaScript Coding Standards say tabs. I do little JS so no promises on state of it in this config. :)

@pablopaul

Copy link
Copy Markdown

Thanks @Rarst, for me under Mac OS X 10.9.1 and PhpStorm 7.0 I could find the file under this path:

~/Library/Preferences/WebIde70/codestyles

No more "config" folder before "codestyles"

@Rarst

Rarst commented Jan 30, 2014

Copy link
Copy Markdown
Author

I still have config level on Windows. Best refer to linked part of manual on it.

@HappyPlugins

Copy link
Copy Markdown

@Rarst, thank you for that

@missjwo

missjwo commented Jul 25, 2014

Copy link
Copy Markdown

@Rarst, this is amazing! Thank you soo much for creating it!

@andizer

andizer commented Aug 11, 2014

Copy link
Copy Markdown

The file removes the space between ! and function. Seems to be a bug, because the codestyle for wordpress says there has to be a space between them.

See: http://make.wordpress.org/core/handbook/coding-standards/php/#space-usage

@Rarst

Rarst commented Aug 13, 2014

Copy link
Copy Markdown
Author

@andizer

That shoudn't be the case (<option name="SPACE_AROUND_UNARY_OPERATOR" value="true" />). Check your code style settings for changes (Project Settings > Code Style > PHP > Spaces > Around Operators > Unary Operators).

@tacoverdo

Copy link
Copy Markdown

@Rarst It seems that the setting has been moved in the EAP version of PHPStorm that @andizer and I are running.

Checking Project Settings > Code Style > PHP > Spaces > Other > After unary Not (!) solves this issue.

@Rarst

Rarst commented Sep 2, 2014

Copy link
Copy Markdown
Author

EAP should ship with native WP style as far as I know? If it's wrong in that one should probably be reported as bug...

@Rarst

Rarst commented Oct 8, 2014

Copy link
Copy Markdown
Author

Yeah, there seems to be mild upgrade issue with that setting going from 7 to 8, hit it too. :)

@momin-riyadh

Copy link
Copy Markdown

How to auto Complete for wordpress comments and function definition in PhpStorm?

/**
 * The Header template for our theme
 *
 * Displays all of the <head> section and everything up till <div id="main">
 *
 * @package Hasan_WordPress
 * @subpackage Hasan
 * @since Hasan 1.0
 */

@gaupoit

gaupoit commented Jul 8, 2018

Copy link
Copy Markdown

@momin-ctg you can use /** and press "Enter"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment