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

Reply via email to