annotate vendor/drupal/coder/coder_sniffer/Drupal/Sniffs/Commenting/GenderNeutralCommentSniff.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents
children
rev   line source
Chris@5 1 <?php
Chris@5 2 /**
Chris@5 3 * Parses and verifies comment language.
Chris@5 4 *
Chris@5 5 * @category PHP
Chris@5 6 * @package PHP_CodeSniffer
Chris@5 7 * @link http://pear.php.net/package/PHP_CodeSniffer
Chris@5 8 */
Chris@5 9
Chris@5 10 namespace Drupal\Sniffs\Commenting;
Chris@5 11
Chris@5 12 use PHP_CodeSniffer\Files\File;
Chris@5 13 use PHP_CodeSniffer\Sniffs\Sniff;
Chris@5 14
Chris@5 15 /**
Chris@5 16 * Parses and verifies that comments use gender neutral language.
Chris@5 17 *
Chris@5 18 * @category PHP
Chris@5 19 * @package PHP_CodeSniffer
Chris@5 20 * @link http://pear.php.net/package/PHP_CodeSniffer
Chris@5 21 */
Chris@5 22 class GenderNeutralCommentSniff implements Sniff
Chris@5 23 {
Chris@5 24
Chris@5 25
Chris@5 26 /**
Chris@5 27 * Returns an array of tokens this test wants to listen for.
Chris@5 28 *
Chris@5 29 * @return array
Chris@5 30 */
Chris@5 31 public function register()
Chris@5 32 {
Chris@5 33 return array(
Chris@5 34 T_COMMENT,
Chris@5 35 T_DOC_COMMENT_STRING,
Chris@5 36 );
Chris@5 37
Chris@5 38 }//end register()
Chris@5 39
Chris@5 40
Chris@5 41 /**
Chris@5 42 * Processes this test, when one of its tokens is encountered.
Chris@5 43 *
Chris@5 44 * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned.
Chris@5 45 * @param int $stackPtr The position of the current token
Chris@5 46 * in the stack passed in $tokens.
Chris@5 47 *
Chris@5 48 * @return void
Chris@5 49 */
Chris@5 50 public function process(File $phpcsFile, $stackPtr)
Chris@5 51 {
Chris@5 52 $tokens = $phpcsFile->getTokens();
Chris@5 53 if ((bool) preg_match('/(^|\W)(he|her|hers|him|his|she)($|\W)/i', $tokens[$stackPtr]['content']) === true) {
Chris@5 54 $phpcsFile->addError('Unnecessarily gendered language in a comment', $stackPtr, 'GenderNeutral');
Chris@5 55 }
Chris@5 56
Chris@5 57 }//end process()
Chris@5 58
Chris@5 59
Chris@5 60 }//end class