jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/327442 )
Change subject: Allow filtering documentation requirements based on visibility ...................................................................... Allow filtering documentation requirements based on visibility * Don't require documentation for private methods * Allow repos to opt-out of requiring documentation for protected methods Change-Id: Ib0eb21d300c5dc583022618dc140beaac08e6e38 --- M MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php M MediaWiki/Tests/files/Commenting/commenting_function.php M MediaWiki/Tests/files/Commenting/commenting_function.php.fixed 3 files changed, 26 insertions(+), 1 deletion(-) Approvals: Krinkle: Looks good to me, approved jenkins-bot: Verified Jforrester: Looks good to me, approved diff --git a/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php b/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php index 60b2afe..3cc5a5f 100644 --- a/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php +++ b/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php @@ -44,6 +44,21 @@ return; } $tokens = $phpcsFile->getTokens(); + // Identify the visiblity of the function + $visibility = $phpcsFile->findPrevious( [ T_PUBLIC, T_PROTECTED, T_PRIVATE ], $stackPtr - 1 ); + $visStr = 'Public'; + if ( $visibility ) { + $visInfo = $tokens[$visibility]; + if ( $visInfo['line'] == $tokens[$stackPtr]['line'] ) { + if ( $visInfo['code'] == T_PRIVATE ) { + // Don't check documentation for private functions + return; + } elseif ( $visInfo['code'] == T_PROTECTED ) { + $visStr = 'Protected'; + } + } + } + $find = PHP_CodeSniffer_Tokens::$methodPrefixes; $find[] = T_WHITESPACE; $commentEnd = $phpcsFile->findPrevious( $find, ( $stackPtr - 1 ), null, true ); @@ -60,7 +75,7 @@ if ( $tokens[$commentEnd]['code'] !== T_DOC_COMMENT_CLOSE_TAG && $tokens[$commentEnd]['code'] !== T_COMMENT ) { - $phpcsFile->addError( 'Missing function doc comment', $stackPtr, 'Missing' ); + $phpcsFile->addError( 'Missing function doc comment', $stackPtr, "Missing.$visStr" ); $phpcsFile->recordMetric( $stackPtr, 'Function has doc comment', 'no' ); return; } else { diff --git a/MediaWiki/Tests/files/Commenting/commenting_function.php b/MediaWiki/Tests/files/Commenting/commenting_function.php index ffe62f1..de1fa48 100644 --- a/MediaWiki/Tests/files/Commenting/commenting_function.php +++ b/MediaWiki/Tests/files/Commenting/commenting_function.php @@ -54,4 +54,9 @@ return $testVar; } + private function noDocs( $foo, $baz ) { + // This function has no documentation because + // it is private + echo $foo; + } } diff --git a/MediaWiki/Tests/files/Commenting/commenting_function.php.fixed b/MediaWiki/Tests/files/Commenting/commenting_function.php.fixed index 96b2041..735f9be 100644 --- a/MediaWiki/Tests/files/Commenting/commenting_function.php.fixed +++ b/MediaWiki/Tests/files/Commenting/commenting_function.php.fixed @@ -54,4 +54,9 @@ return $testVar; } + private function noDocs( $foo, $baz ) { + // This function has no documentation because + // it is private + echo $foo; + } } -- To view, visit https://gerrit.wikimedia.org/r/327442 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ib0eb21d300c5dc583022618dc140beaac08e6e38 Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/tools/codesniffer Gerrit-Branch: master Gerrit-Owner: Legoktm <lego...@member.fsf.org> Gerrit-Reviewer: Jforrester <jforres...@wikimedia.org> Gerrit-Reviewer: Krinkle <krinklem...@gmail.com> Gerrit-Reviewer: Legoktm <lego...@member.fsf.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits