annotate vendor/drupal/coder/coder_sniffer/Drupal/Sniffs/Commenting/GenderNeutralCommentSniff.php @ 19:fa3358dc1485 tip

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