From a9daa4a8eb699e50da586307791dfab95731a098 Mon Sep 17 00:00:00 2001 From: Anna Filina Date: Mon, 29 Mar 2021 17:14:38 -0400 Subject: [PATCH 1/2] Exclude {@internal} comments from description --- src/Parser/SniffParser.php | 3 ++- tests/Parser/SniffParserTest.php | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/Parser/SniffParser.php b/src/Parser/SniffParser.php index afe51e7..f8c8d8c 100644 --- a/src/Parser/SniffParser.php +++ b/src/Parser/SniffParser.php @@ -142,8 +142,9 @@ private function getDocBlock(string $docComment): string $docBlockSummary = $docBlock->getSummary(); $docBlockDescription = (string)$docBlock->getDescription(); + $docBlockDescription = preg_replace('`\n*{@internal[^}]+}`', '', $docBlockDescription); - return $docBlockSummary . ($docBlockDescription !== '' ? "\n\n" . $docBlock->getDescription() : ''); + return $docBlockSummary . ($docBlockDescription !== '' ? "\n\n" . $docBlockDescription : ''); } /** diff --git a/tests/Parser/SniffParserTest.php b/tests/Parser/SniffParserTest.php index aac916a..8e1a0cd 100644 --- a/tests/Parser/SniffParserTest.php +++ b/tests/Parser/SniffParserTest.php @@ -294,6 +294,29 @@ class MySniff {} ); } + /** @test */ + public function parse_WithInternalDocblock_ExcludeInternal() + { + $content = 'dumpFile(self::PHP_FILE_PATH, $content); + $doc = $this->parser->parse(self::PHP_FILE_PATH, new StringSourceLocator($content, $this->astLocator)); + self::assertEquals( + "Summary\n\nDescription", + $doc->getDocblock() + ); + } + /** @test */ public function parse_WithInvalidPhpPath_ThrowException() { From aa4c59b52f2c201f8dd2782c09d73152e2a49d6b Mon Sep 17 00:00:00 2001 From: Anna Filina Date: Mon, 29 Mar 2021 19:23:16 -0400 Subject: [PATCH 2/2] Improve regex --- src/Parser/SniffParser.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Parser/SniffParser.php b/src/Parser/SniffParser.php index f8c8d8c..2e4e3f1 100644 --- a/src/Parser/SniffParser.php +++ b/src/Parser/SniffParser.php @@ -142,7 +142,7 @@ private function getDocBlock(string $docComment): string $docBlockSummary = $docBlock->getSummary(); $docBlockDescription = (string)$docBlock->getDescription(); - $docBlockDescription = preg_replace('`\n*{@internal[^}]+}`', '', $docBlockDescription); + $docBlockDescription = preg_replace('`[\n\r]*\{@internal[^}]+\}`', '', $docBlockDescription); return $docBlockSummary . ($docBlockDescription !== '' ? "\n\n" . $docBlockDescription : ''); }