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 <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits