65 lines
2.2 KiB
PHP
65 lines
2.2 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* WordPress Coding Standard.
|
||
|
*
|
||
|
* @package WPCS\WordPressCodingStandards
|
||
|
* @link https://github.com/WordPress/WordPress-Coding-Standards
|
||
|
* @license https://opensource.org/licenses/MIT MIT
|
||
|
*/
|
||
|
|
||
|
namespace WordPressCS\WordPress\Sniffs\WhiteSpace;
|
||
|
|
||
|
use PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\OperatorSpacingSniff as PHPCS_Squiz_OperatorSpacingSniff;
|
||
|
use PHP_CodeSniffer\Util\Tokens;
|
||
|
|
||
|
/**
|
||
|
* Verify operator spacing, uses the Squiz sniff, but additionally also sniffs for the `!` (boolean not) operator.
|
||
|
*
|
||
|
* "Always put spaces after commas, and on both sides of logical, comparison, string and assignment operators."
|
||
|
*
|
||
|
* @link https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#space-usage
|
||
|
*
|
||
|
* @package WPCS\WordPressCodingStandards
|
||
|
*
|
||
|
* @since 0.1.0
|
||
|
* @since 0.3.0 This sniff now has the ability to fix the issues it flags.
|
||
|
* @since 0.12.0 This sniff used to be a copy of a very old and outdated version of the
|
||
|
* upstream sniff.
|
||
|
* Now, the sniff defers completely to the upstream sniff, adding just the
|
||
|
* T_BOOLEAN_NOT and the logical operators (`&&` and the like) - via the
|
||
|
* registration method and changing the value of the customizable
|
||
|
* $ignoreNewlines property.
|
||
|
* @since 0.13.0 Class name changed: this class is now namespaced.
|
||
|
*
|
||
|
* Last synced with base class June 2017 at commit 41127aa4764536f38f504fb3f7b8831f05919c89.
|
||
|
* @link https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php
|
||
|
*/
|
||
|
class OperatorSpacingSniff extends PHPCS_Squiz_OperatorSpacingSniff {
|
||
|
|
||
|
/**
|
||
|
* Allow newlines instead of spaces.
|
||
|
*
|
||
|
* N.B.: The upstream sniff defaults to `false`.
|
||
|
*
|
||
|
* @var boolean
|
||
|
*/
|
||
|
public $ignoreNewlines = true;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Returns an array of tokens this test wants to listen for.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function register() {
|
||
|
$tokens = parent::register();
|
||
|
$tokens[ \T_BOOLEAN_NOT ] = \T_BOOLEAN_NOT;
|
||
|
$tokens[ \T_INSTANCEOF ] = \T_INSTANCEOF;
|
||
|
$logical_operators = Tokens::$booleanOperators;
|
||
|
|
||
|
// Using array union to auto-dedup.
|
||
|
return $tokens + $logical_operators;
|
||
|
}
|
||
|
|
||
|
}
|