diff --git a/src/DocBlockFactory.php b/src/DocBlockFactory.php index ca16bf6..67c147f 100644 --- a/src/DocBlockFactory.php +++ b/src/DocBlockFactory.php @@ -166,7 +166,7 @@ final class DocBlockFactory implements DocBlockFactoryInterface [^\n.]+ (?: (?! \. \n | \n{2} ) # End summary upon a dot followed by newline or two newlines - [\n.] (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line + [\n.]* (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line [^\n.]+ # Include anything else )* \.? diff --git a/tests/integration/InterpretingDocBlocksTest.php b/tests/integration/InterpretingDocBlocksTest.php index b2ec5ea..099e40a 100644 --- a/tests/integration/InterpretingDocBlocksTest.php +++ b/tests/integration/InterpretingDocBlocksTest.php @@ -33,6 +33,31 @@ class InterpretingDocBlocksTest extends TestCase m::close(); } + public function testInterpretingSummaryWithEllipsis(): void + { + $docblock = <<create($docblock); + + $summary = 'This is a short (...) description.'; + $description = 'This is a long description.'; + + $this->assertInstanceOf(DocBlock::class, $phpdoc); + $this->assertSame($summary, $phpdoc->getSummary()); + $this->assertSame($description, $phpdoc->getDescription()->render()); + $this->assertCount(1, $phpdoc->getTags()); + $this->assertTrue($phpdoc->hasTag('return')); + } + public function testInterpretingASimpleDocBlock(): void { /** diff --git a/tests/unit/DocBlockTest.php b/tests/unit/DocBlockTest.php index 7374e6f..d03fb0d 100644 --- a/tests/unit/DocBlockTest.php +++ b/tests/unit/DocBlockTest.php @@ -48,6 +48,21 @@ class DocBlockTest extends TestCase $this->assertSame($summary, $fixture->getSummary()); } + /** + * @covers ::__construct + * @covers ::getSummary + * + * @uses \phpDocumentor\Reflection\DocBlock\Description + */ + public function testDocBlockCanHaveEllipsisInSummary(): void + { + $summary = 'This is a short (...) description.'; + + $fixture = new DocBlock($summary); + + $this->assertSame($summary, $fixture->getSummary()); + } + /** * @covers ::__construct * @covers ::getDescription