From ab24c39c05282f95c54f348921b5374b5ea0ac49 Mon Sep 17 00:00:00 2001 From: Roj Vroemen Date: Wed, 19 Mar 2025 00:00:16 +0100 Subject: [PATCH] Add support for PHP shell-style comments --- .../Php/Patterns/SinglelineCommentPattern.php | 2 +- .../SinglelineDocCommentPatternTest.php | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Languages/Php/Patterns/SinglelineCommentPattern.php b/src/Languages/Php/Patterns/SinglelineCommentPattern.php index bb9535c..5b1dd0c 100644 --- a/src/Languages/Php/Patterns/SinglelineCommentPattern.php +++ b/src/Languages/Php/Patterns/SinglelineCommentPattern.php @@ -14,7 +14,7 @@ public function getPattern(): string { - return '(?\/\/(.)*)'; + return '(?(?:\/\/|#[^\[])(.)*)'; } public function getTokenType(): TokenTypeEnum diff --git a/tests/Languages/Php/Patterns/SinglelineDocCommentPatternTest.php b/tests/Languages/Php/Patterns/SinglelineDocCommentPatternTest.php index b5ff231..5ee16a2 100644 --- a/tests/Languages/Php/Patterns/SinglelineDocCommentPatternTest.php +++ b/tests/Languages/Php/Patterns/SinglelineDocCommentPatternTest.php @@ -19,5 +19,23 @@ public function test_pattern() content: '$bar // foo', expected: '// foo', ); + + $this->assertMatches( + pattern: new SinglelineCommentPattern(), + content: '$bar # foo', + expected: '# foo', + ); + + $this->assertMatches( + pattern: new SinglelineCommentPattern(), + content: '$bar #[IncompleteAttribute', + expected: null, + ); + + $this->assertMatches( + pattern: new SinglelineCommentPattern(), + content: '$bar #[Attribute]', + expected: null, + ); } }