diff --git a/resources/config/php-domain.php b/resources/config/php-domain.php
index 99f41e9..fbb2f8e 100644
--- a/resources/config/php-domain.php
+++ b/resources/config/php-domain.php
@@ -7,6 +7,7 @@
use phpDocumentor\Guides\RestructuredText\Parser\Productions\DirectiveContentRule;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+use T3Docs\GuidesPhpDomain\Compiler\NodeTransformers\MemberNodeTransformer;
use T3Docs\GuidesPhpDomain\Directives\Php\CaseDirective;
use T3Docs\GuidesPhpDomain\Directives\Php\ClassDirective;
use T3Docs\GuidesPhpDomain\Directives\Php\ConstDirective;
@@ -19,6 +20,7 @@
use T3Docs\GuidesPhpDomain\TextRoles\ClassTextRole;
use T3Docs\GuidesPhpDomain\TextRoles\EnumTextRole;
use T3Docs\GuidesPhpDomain\TextRoles\ExceptionTextRole;
+use T3Docs\GuidesPhpDomain\TextRoles\MethodTextRole;
use T3Docs\GuidesPhpDomain\TextRoles\TraitTextRole;
use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
@@ -57,6 +59,9 @@
->set(ModifierService::class)
->set(NamespaceRepository::class)
+ ->set(MemberNodeTransformer::class)
+ ->tag('phpdoc.guides.compiler.nodeTransformers')
+
->set(ClassTextRole::class)
->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php'])
->set(EnumTextRole::class)
@@ -65,6 +70,8 @@
->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php'])
->set(InterfaceTextRole::class)
->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php'])
+ ->set(MethodTextRole::class)
+ ->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php'])
->set(TraitTextRole::class)
->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php'])
;
diff --git a/src/Compiler/NodeTransformers/MemberNodeTransformer.php b/src/Compiler/NodeTransformers/MemberNodeTransformer.php
new file mode 100644
index 0000000..e2d13af
--- /dev/null
+++ b/src/Compiler/NodeTransformers/MemberNodeTransformer.php
@@ -0,0 +1,74 @@
+
+ *
+ * The "class" directive sets the "classes" attribute value on its content or on the first immediately following
+ * non-comment element. https://docutils.sourceforge.io/docs/ref/rst/directives.html#class
+ */
+class MemberNodeTransformer implements NodeTransformer
+{
+ private ?PhpComponentNode $currentComponent = null;
+
+ public function __construct(
+ private readonly LoggerInterface $logger,
+ private readonly AnchorReducer $anchorReducer,
+ ) {}
+
+ public function enterNode(Node $node, CompilerContext $compilerContext): Node
+ {
+ if ($node instanceof PhpComponentNode) {
+ if ($this->currentComponent instanceof \T3Docs\GuidesPhpDomain\Nodes\PhpComponentNode) {
+ $this->logger->warning(
+ sprintf('Nested PHP domain components (php:class, php:interface, php:enum etc) are not supported.
+ Found php:%s inside %s', $node->toString(), $this->currentComponent->toString()),
+ $compilerContext->getLoggerInformation()
+ );
+ }
+ $this->currentComponent = $node;
+ return $node;
+ }
+
+ if ($node instanceof PhpMemberNode && $this->currentComponent instanceof PhpComponentNode) {
+ $newId = $this->anchorReducer->reduceAnchor($this->currentComponent->getId() . '::' . $node->getName());
+ return $node->withId($newId);
+ }
+
+ return $node;
+ }
+
+ public function leaveNode(Node $node, CompilerContext $compilerContext): Node|null
+ {
+ if ($node instanceof PhpComponentNode) {
+ $this->currentComponent = null;
+ }
+ return $node;
+ }
+
+ public function supports(Node $node): bool
+ {
+ return $node instanceof PhpMemberNode || $node instanceof PhpComponentNode;
+ }
+
+ public function getPriority(): int
+ {
+ return 40_000;
+ }
+}
diff --git a/src/Nodes/PhpMemberNode.php b/src/Nodes/PhpMemberNode.php
index 77495ce..5a82b98 100644
--- a/src/Nodes/PhpMemberNode.php
+++ b/src/Nodes/PhpMemberNode.php
@@ -5,6 +5,7 @@
namespace T3Docs\GuidesPhpDomain\Nodes;
use phpDocumentor\Guides\Nodes\CompoundNode;
+use phpDocumentor\Guides\Nodes\LinkTargetNode;
use phpDocumentor\Guides\Nodes\Node;
/**
@@ -12,10 +13,10 @@
*
* @extends CompoundNode
*/
-abstract class PhpMemberNode extends CompoundNode
+abstract class PhpMemberNode extends CompoundNode implements LinkTargetNode
{
public function __construct(
- private readonly string $id,
+ private string $id,
private readonly string $type,
private readonly string $name,
array $value = [],
@@ -23,11 +24,27 @@ public function __construct(
parent::__construct($value);
}
+ public function withId(string $id): PhpMemberNode
+ {
+ $clone = clone($this);
+ $clone->id = $id;
+ return $clone;
+ }
+
public function getName(): string
{
return $this->name;
}
+ public function getLinkType(): string
+ {
+ return 'php:' . $this->type;
+ }
+ public function getLinkText(): string
+ {
+ return $this->name;
+ }
+
public function getType(): string
{
return $this->type;
diff --git a/src/TextRoles/MethodTextRole.php b/src/TextRoles/MethodTextRole.php
new file mode 100644
index 0000000..a180786
--- /dev/null
+++ b/src/TextRoles/MethodTextRole.php
@@ -0,0 +1,59 @@
+createNodeWithInterlink($documentParserContext, $matches[2], $matches[1], $referenceName);
+ }
+ return $this->createNodeWithInterlink($documentParserContext, $referenceTarget, '', $referenceName);
+ }
+
+ private function createNodeWithInterlink(DocumentParserContext $documentParserContext, string $referenceTarget, string $interlinkDomain, string|null $referenceName): ReferenceNode
+ {
+ if (!preg_match(self::METHOD_NAME_REGEX, $referenceTarget, $matches)) {
+ $this->logger->warning($referenceTarget . ' is not a valid method name. Use the form "\Vendor\Path\Class::method" or "\Vendor\Path\Class::method(int $param)"', $documentParserContext->getLoggerInformation());
+ $id = $this->anchorReducer->reduceAnchor($referenceTarget);
+ return new ReferenceNode($id, $referenceName ?? $referenceTarget, $interlinkDomain, 'php:' . $this->getName());
+ }
+
+ $class = $matches[1];
+ $method = $matches[2];
+
+ $id = $this->anchorReducer->reduceAnchor($class . '::' . $method);
+
+ return new ReferenceNode($id, $referenceName ?? $referenceTarget, $interlinkDomain, 'php:' . $this->getName());
+ }
+
+ public function getName(): string
+ {
+ return self::TYPE;
+ }
+}
diff --git a/src/TextRoles/PhpComponentTextRole.php b/src/TextRoles/PhpComponentTextRole.php
index 07d6918..7f48b6a 100644
--- a/src/TextRoles/PhpComponentTextRole.php
+++ b/src/TextRoles/PhpComponentTextRole.php
@@ -18,7 +18,7 @@ abstract class PhpComponentTextRole implements TextRole
/**
* @see https://regex101.com/r/OyN05v/1
*/
- private const INTERLINK_NAME_REGEX = '/^([a-zA-Z0-9]+):(.*$)/';
+ protected const INTERLINK_NAME_REGEX = '/^([a-zA-Z0-9]+):(.*$)/';
private readonly InlineLexer $lexer;
@@ -94,11 +94,11 @@ public function processNode(
$value = null;
}
- return $this->createNode($referenceTarget, $value, $role);
+ return $this->createNode($documentParserContext, $referenceTarget, $value, $role);
}
/** @return ReferenceNode */
- protected function createNode(string $referenceTarget, string|null $referenceName, string $role): AbstractLinkInlineNode
+ protected function createNode(DocumentParserContext $documentParserContext, string $referenceTarget, string|null $referenceName, string $role): AbstractLinkInlineNode
{
if (preg_match(self::INTERLINK_NAME_REGEX, $referenceTarget, $matches)) {
$interlinkDomain = $matches[1];
diff --git a/tests/integration/class-abstract/expected/index.html b/tests/integration/class-abstract/expected/index.html
index c96c0da..102ba52 100644
--- a/tests/integration/class-abstract/expected/index.html
+++ b/tests/integration/class-abstract/expected/index.html
@@ -9,8 +9,7 @@ abstract class
class
\TYPO3\CMS\Core\
AbstractTest
-
-
+
Lorem Ipsum Dolor!
diff --git a/tests/integration/class-final-abstract/expected/index.html b/tests/integration/class-final-abstract/expected/index.html
index 4a56b2a..de9334b 100644
--- a/tests/integration/class-final-abstract/expected/index.html
+++ b/tests/integration/class-final-abstract/expected/index.html
@@ -10,8 +10,7 @@ abstract final class causes warning
class
\TYPO3\CMS\Core\
Test
-
-
+
Lorem Ipsum Dolor!
diff --git a/tests/integration/class-final/expected/index.html b/tests/integration/class-final/expected/index.html
index 85eb963..b9ffe07 100644
--- a/tests/integration/class-final/expected/index.html
+++ b/tests/integration/class-final/expected/index.html
@@ -9,8 +9,7 @@ final class
class
\TYPO3\CMS\Core\
Test
-
-
+
Lorem Ipsum Dolor!
diff --git a/tests/integration/class-namespace-directive/expected/index.html b/tests/integration/class-namespace-directive/expected/index.html
index 1c76d28..904ebfd 100644
--- a/tests/integration/class-namespace-directive/expected/index.html
+++ b/tests/integration/class-namespace-directive/expected/index.html
@@ -8,8 +8,7 @@ PHP Class with current namespace from directive
class
\TYPO3\CMS\Core\
TestClass
-
-
+
Lorem Ipsum Dolor!
@@ -21,8 +20,7 @@ PHP Class with current namespace from directive
class
\TYPO3\CMS\Core\
AnotherClass
-
-
+
Lorem Ipsum Dolor Another!
@@ -34,8 +32,7 @@ PHP Class with current namespace from directive
class
\MyVendor\Some\Namespace\
AnotherClass
-
-
+
Lorem Ipsum Dolor Yet Another!
diff --git a/tests/integration/class-with-const-illegal-modifier-combinations/expected/index.html b/tests/integration/class-with-const-illegal-modifier-combinations/expected/index.html
index b2a4c35..d3496dd 100644
--- a/tests/integration/class-with-const-illegal-modifier-combinations/expected/index.html
+++ b/tests/integration/class-with-const-illegal-modifier-combinations/expected/index.html
@@ -8,11 +8,10 @@ PHP class with constants
class
\ChuckleFactory\
FunClass
-
-
+
Where Fun Knows No Bounds!
- -
+
-
public
private
const
@@ -23,7 +22,7 @@
PHP class with constants
a pick-me-up, just access JOY_CONSTANT and let the chuckles begin.
- -
+
-
public
protected
const
@@ -34,7 +33,7 @@
PHP class with constants
It's known to spontaneously increase during code reviews and coffee breaks.
- -
+
-
protected
private
const
diff --git a/tests/integration/class-with-const/expected/index.html b/tests/integration/class-with-const/expected/index.html
index 883f70c..876006d 100644
--- a/tests/integration/class-with-const/expected/index.html
+++ b/tests/integration/class-with-const/expected/index.html
@@ -8,11 +8,10 @@
PHP class with constants
class
\SecretSociety\
EnigmaticClass
-
-
+
-
Unveiling the mysteries of constants!
- -
+
-
public
const
PI
@@ -22,7 +21,7 @@
PHP class with constants
to its diameter. Also used as the secret handshake among mathematicians.
- -
+
-
protected
const
SECRET_NUMBER
@@ -33,7 +32,7 @@
PHP class with constants
treasure chest.
- -
+
-
private
const
ETERNAL_FLAME
diff --git a/tests/integration/class-with-link/expected/index.html b/tests/integration/class-with-link/expected/index.html
index 20d2e24..461b501 100644
--- a/tests/integration/class-with-link/expected/index.html
+++ b/tests/integration/class-with-link/expected/index.html
@@ -8,21 +8,20 @@
PHP Class with explicit namespace
class
\TYPO3\CMS\Core\
Test
-
-
+
-
Lorem Ipsum Dolor!
- -
+
-
setDate
(
int $year, int $month, int $day)
-
Set the date.
-
+
- -
+
-
getDate
(
)
@@ -30,7 +29,7 @@
PHP Class with explicit namespace
-
Get the date.
-
+
diff --git a/tests/integration/class-with-method-link-warning/expected/index.html b/tests/integration/class-with-method-link-warning/expected/index.html
new file mode 100644
index 0000000..55ce482
--- /dev/null
+++ b/tests/integration/class-with-method-link-warning/expected/index.html
@@ -0,0 +1,63 @@
+
+
+
PHP Class with explicit namespace
+
+
+ -
+ class
+ \TYPO3\CMS\Core\
+Test
+
+ -
+
Lorem Ipsum Dolor!
+ -
+setDate
+(
+int $year, int $month, int $day)
+
+ -
+
Set the date.
+
+
+
+ -
+getDate
+(
+)
+: int
+
+ -
+
Get the date.
+
+
+
+ -
+ class
+ IllegalSubClass
+
+ -
+
+ -
+getDate
+(
+)
+: int
+
+ -
+
+
+
+
+
+
+
+
+
+
+
\TYPO3\CMS\Core\Test:: or
+\TYPO3\CMS\Core\Test->getDate.
+
+
+
diff --git a/tests/integration/class-with-method-link-warning/expected/logs/warning.log b/tests/integration/class-with-method-link-warning/expected/logs/warning.log
new file mode 100644
index 0000000..db79f4e
--- /dev/null
+++ b/tests/integration/class-with-method-link-warning/expected/logs/warning.log
@@ -0,0 +1,4 @@
+app.WARNING: \TYPO3\CMS\Core\Test:: is not a valid method name. Use the form "\Vendor\Path\Class::method" or "\Vendor\Path\Class::method(int $param)" {"rst-file":"index.rst"} []
+app.WARNING: \TYPO3\CMS\Core\Test->getDate is not a valid method name. Use the form "\Vendor\Path\Class::method" or "\Vendor\Path\Class::method(int $param)" {"rst-file":"index.rst"} []
+app.WARNING: Nested PHP domain components (php:class, php:interface, php:enum etc) are not supported.
+app.WARNING: Reference typo3-cms-core-test could not be resolved in index {"rst-file":"index"} []
diff --git a/tests/integration/class-with-method-link-warning/input/index.rst b/tests/integration/class-with-method-link-warning/input/index.rst
new file mode 100644
index 0000000..6436725
--- /dev/null
+++ b/tests/integration/class-with-method-link-warning/input/index.rst
@@ -0,0 +1,23 @@
+=================================
+PHP Class with explicit namespace
+=================================
+
+.. php:class:: TYPO3\CMS\Core\Test
+
+ Lorem Ipsum Dolor!
+
+ .. php:method:: setDate(int $year, int $month, int $day)
+
+ Set the date.
+
+ .. php:method:: getDate(): int
+
+ Get the date.
+
+
+ .. php:class:: IllegalSubClass
+
+ .. php:method:: getDate(): int
+
+:php:method:`\TYPO3\CMS\Core\Test::` or
+:php:method:`\TYPO3\CMS\Core\Test->getDate`.
diff --git a/tests/integration/class-with-method-link/expected/index.html b/tests/integration/class-with-method-link/expected/index.html
new file mode 100644
index 0000000..65397bc
--- /dev/null
+++ b/tests/integration/class-with-method-link/expected/index.html
@@ -0,0 +1,42 @@
+
+
+
+
diff --git a/tests/integration/class-with-method-link/input/index.rst b/tests/integration/class-with-method-link/input/index.rst
new file mode 100644
index 0000000..b3cd66f
--- /dev/null
+++ b/tests/integration/class-with-method-link/input/index.rst
@@ -0,0 +1,18 @@
+=================================
+PHP Class with explicit namespace
+=================================
+
+.. php:class:: TYPO3\CMS\Core\Test
+
+ Lorem Ipsum Dolor!
+
+ .. php:method:: setDate(int $year, int $month, int $day)
+
+ Set the date.
+
+ .. php:method:: getDate(): int
+
+ Get the date.
+
+:php:method:`\TYPO3\CMS\Core\Test::setDate(int $year, int $month, int $day)` or
+:php:method:`\TYPO3\CMS\Core\Test::getDate`.
diff --git a/tests/integration/class-with-method/expected/index.html b/tests/integration/class-with-method/expected/index.html
index 37a2832..d90f7f5 100644
--- a/tests/integration/class-with-method/expected/index.html
+++ b/tests/integration/class-with-method/expected/index.html
@@ -8,33 +8,28 @@ PHP Class with explicit namespace
class
\TYPO3\CMS\Core\
Test
-
-
+
Lorem Ipsum Dolor!
- -
-
+
-
setDate
(
int $year, int $month, int $day)
-
-
+
-
Set the date.
-
+
- -
-
+
-
getDate
(
)
: int
-
-
+
-
Get the date.
-
+
diff --git a/tests/integration/class-with-property-warnings/expected/index.html b/tests/integration/class-with-property-warnings/expected/index.html
index df71828..83417e6 100644
--- a/tests/integration/class-with-property-warnings/expected/index.html
+++ b/tests/integration/class-with-property-warnings/expected/index.html
@@ -7,11 +7,10 @@ PHP class with properties that cause warnings
id="grumpygoblin">
class
GrumpyGoblin
-
-
+
Welcome to the gloomy world of GrumpyGoblins, spreading grumbles and dissatisfaction!
- -
+
-
public
private
string $hiddenSecret
@@ -20,7 +19,7 @@
PHP class with properties that cause warnings
The grumpy goblin's hidden secret. Publicly private - an illegal combination!
- -
+
-
static
readonly
bool $ancientCurse
@@ -29,7 +28,7 @@
PHP class with properties that cause warnings
The ancient curse haunting all GrumpyGoblins. A static readonly curse - an illegal combination!
- -
+
-
public
string $complaintBox
diff --git a/tests/integration/class-with-property/expected/index.html b/tests/integration/class-with-property/expected/index.html
index 1726b88..3988ea0 100644
--- a/tests/integration/class-with-property/expected/index.html
+++ b/tests/integration/class-with-property/expected/index.html
@@ -7,11 +7,10 @@
PHP class with properties
id="jollyelf">
class
JollyElf
-
-
+
-
Welcome to the magical workshop of JollyElves, spreading cheer and joy!
- -
+
-
public
string $festiveHatColor
@@ -19,7 +18,7 @@
PHP class with properties
The color of the elf's festive hat, radiating holiday spirit.
- -
+
-
protected
int $giftCount
@@ -27,7 +26,7 @@
PHP class with properties
The count of gifts wrapped by the JollyElf, a closely guarded secret.
- -
+
-
private
bool $sleighBellJingle
@@ -35,7 +34,7 @@
PHP class with properties
Whether the sleigh bells on the elf's shoes are jingling merrily.
- -
+
-
static
int $totalGiftsWrapped
@@ -43,7 +42,7 @@
PHP class with properties
The total count of gifts wrapped by all JollyElves in the workshop.
- -
+
-
private
readonly
int $entryYear
diff --git a/tests/integration/class-with-staticmethod/expected/index.html b/tests/integration/class-with-staticmethod/expected/index.html
index 6b41d15..d386f47 100644
--- a/tests/integration/class-with-staticmethod/expected/index.html
+++ b/tests/integration/class-with-staticmethod/expected/index.html
@@ -8,11 +8,10 @@
PHP Class with static method
class
\TYPO3\CMS\Core\
Test
-
-
+
-
Lorem Ipsum Dolor!
- - static
+
- static
doSomething
(
@@ -21,7 +20,7 @@
PHP Class with static method
-
Do something
-
+
diff --git a/tests/integration/class-with-typed-const/expected/index.html b/tests/integration/class-with-typed-const/expected/index.html
index 2239d35..08ded41 100644
--- a/tests/integration/class-with-typed-const/expected/index.html
+++ b/tests/integration/class-with-typed-const/expected/index.html
@@ -8,11 +8,10 @@ PHP class with constants
class
\SecretSociety\
EnigmaticClass
-
-
+
-
Unveiling the mysteries of constants!
- -
+
-
public
double const
PI
@@ -22,7 +21,7 @@
PHP class with constants
to its diameter. Also used as the secret handshake among mathematicians.
- -
+
-
protected
int const
SECRET_NUMBER
@@ -33,7 +32,7 @@
PHP class with constants
treasure chest.
- -
+
-
private
string const
ETERNAL_FLAME
diff --git a/tests/integration/class-without-namespace/expected/index.html b/tests/integration/class-without-namespace/expected/index.html
index 700cd25..6f85e81 100644
--- a/tests/integration/class-without-namespace/expected/index.html
+++ b/tests/integration/class-without-namespace/expected/index.html
@@ -7,8 +7,7 @@
PHP Class
id="testclass">
class
TestClass
-
-
+
-
Lorem Ipsum Dolor!
diff --git a/tests/integration/enum-backed-with-cases/expected/index.html b/tests/integration/enum-backed-with-cases/expected/index.html
index 69b7d6c..6a3180f 100644
--- a/tests/integration/enum-backed-with-cases/expected/index.html
+++ b/tests/integration/enum-backed-with-cases/expected/index.html
@@ -11,14 +11,14 @@ PHP Enum, backed, with cases
-
In playing cards, a suit is one of the categories into which the
cards of a deck are divided.
- -
+
-
case
Hearts
: 'H'
Hearts is one of the four suits in playing cards.
- -
+
-
case
Diamonds
: 'D'
diff --git a/tests/integration/enum-namespace-directive/expected/index.html b/tests/integration/enum-namespace-directive/expected/index.html
index 15a3381..b4d4d90 100644
--- a/tests/integration/enum-namespace-directive/expected/index.html
+++ b/tests/integration/enum-namespace-directive/expected/index.html
@@ -1,29 +1,31 @@
-
+
PHP Enum with current namespace from directive
-
- -
- enum
+
+ -
+ enum
\MyVendor\MyExtension\
- SomeEnum
-
- -
-
some stuff
-
-
+SomeEnum
+
+ -
+
some stuff
+
+
-
- -
- enum
+
+ -
+ enum
\MyVendor\MyExtension\
- AnotherEnum
-
- -
-
another stuff
-
-
-
+
AnotherEnum
+
+
-
+
another stuff
+
+
+
+
+
diff --git a/tests/integration/enum-with-cases/expected/index.html b/tests/integration/enum-with-cases/expected/index.html
index 54fbf8c..1fa60de 100644
--- a/tests/integration/enum-with-cases/expected/index.html
+++ b/tests/integration/enum-with-cases/expected/index.html
@@ -7,33 +7,32 @@ PHP Enum with Const
id="suit">
enum
Suit
-
-
+
-
In playing cards, a suit is one of the categories into which the
cards of a deck are divided.
- -
+
-
case
Hearts
:
Hearts is one of the four suits in playing cards.
- -
+
-
case
Diamonds
:
Diamonds is one of the four suits in playing cards.
- -
+
-
case
Clubs
:
Clubs is one of the four suits in playing cards.
- -
+
-
case
Spades
:
diff --git a/tests/integration/enum-with-constant/expected/index.html b/tests/integration/enum-with-constant/expected/index.html
index d833882..a02658d 100644
--- a/tests/integration/enum-with-constant/expected/index.html
+++ b/tests/integration/enum-with-constant/expected/index.html
@@ -8,11 +8,10 @@ PHP Enum with Const
enum
\MyVendor\MyExtension\
SomeEnum
-
-
+
-
some stuff
- -
+
-
const
PI
diff --git a/tests/integration/enum-with-link/expected/index.html b/tests/integration/enum-with-link/expected/index.html
index 539f555..5459591 100644
--- a/tests/integration/enum-with-link/expected/index.html
+++ b/tests/integration/enum-with-link/expected/index.html
@@ -8,8 +8,7 @@
PHP Enum with current namespace from directive
enum
\MyVendor\MyExtension\
SomeEnum
-
-
+
-
some stuff
@@ -21,8 +20,7 @@ PHP Enum with current namespace from directive
enum
\MyVendor\MyExtension\
AnotherEnum
-
-
+
-
another stuff
diff --git a/tests/integration/enum-with-namespace/expected/index.html b/tests/integration/enum-with-namespace/expected/index.html
index 3859cb2..eb0b092 100644
--- a/tests/integration/enum-with-namespace/expected/index.html
+++ b/tests/integration/enum-with-namespace/expected/index.html
@@ -1,29 +1,31 @@
-
+
PHP Enum without namespace from directive
-
- -
- enum
+
+ -
+ enum
\MyVendor\MyExtension\
- SomeEnum
-
- -
-
some stuff
-
-
+SomeEnum
+
+ -
+
some stuff
+
+
-
- -
- enum
+
+ -
+ enum
\MyVendor\MyExtension\
- AnotherEnum
-
- -
-
another stuff
-
-
-
+
AnotherEnum
+
+
-
+
another stuff
+
+
+
+
+
diff --git a/tests/integration/enum-with-warnings/expected/index.html b/tests/integration/enum-with-warnings/expected/index.html
index 3dd0ee0..8967186 100644
--- a/tests/integration/enum-with-warnings/expected/index.html
+++ b/tests/integration/enum-with-warnings/expected/index.html
@@ -11,14 +11,14 @@ PHP Enum with Warnings
-
In playing cards, a suit is one of the categories into which the
cards of a deck are divided.
- -
+
-
case
Hearts
: 'H'
Hearts is one of the four suits in playing cards.
- -
+
-
case
Diamonds
: 'D'
@@ -36,14 +36,14 @@ PHP Enum with Warnings
: string
-
- -
+
-
case
Clubs : 'C'
:
Clubs is one of the four suits in playing cards.
- -
+
-
case
Spades : 'S'
:
diff --git a/tests/integration/enum-without-namespace/expected/index.html b/tests/integration/enum-without-namespace/expected/index.html
index a83a6ee..3ffcaeb 100644
--- a/tests/integration/enum-without-namespace/expected/index.html
+++ b/tests/integration/enum-without-namespace/expected/index.html
@@ -1,27 +1,29 @@
-
+
PHP Enum without namespace from directive
-
- -
- enum
- SomeEnum
-
- -
-
some stuff
-
-
+
+ -
+ enum
+ SomeEnum
+
+ -
+
some stuff
+
+
+
+
+ -
+ enum
+ AnotherEnum
+
+ -
+
another stuff
+
+
+
+
-
- -
- enum
- AnotherEnum
-
- -
-
another stuff
-
-
-
diff --git a/tests/integration/exception-directive/expected/index.html b/tests/integration/exception-directive/expected/index.html
index d96a3bf..2939938 100644
--- a/tests/integration/exception-directive/expected/index.html
+++ b/tests/integration/exception-directive/expected/index.html
@@ -8,8 +8,7 @@ PHP Exception
exception
\TYPO3\CMS\Core\Exception\Page\
BrokenRootLineException
-
-
+
-
Exception for root line traversal when a page within the root line traversal
is missing / can not be resolved.
diff --git a/tests/integration/exception-with-link-deprecated/expected/index.html b/tests/integration/exception-with-link-deprecated/expected/index.html
index 43e1b35..fdcd2bb 100644
--- a/tests/integration/exception-with-link-deprecated/expected/index.html
+++ b/tests/integration/exception-with-link-deprecated/expected/index.html
@@ -8,8 +8,7 @@ PHP Exception
exception
\TYPO3\CMS\Core\Exception\Page\
BrokenRootLineException
-
-
+
-
Exception for root line traversal when a page within the root line traversal
is missing / can not be resolved.
diff --git a/tests/integration/interface-implicit-namespace/expected/index.html b/tests/integration/interface-implicit-namespace/expected/index.html
index c1b59d6..013e5d0 100644
--- a/tests/integration/interface-implicit-namespace/expected/index.html
+++ b/tests/integration/interface-implicit-namespace/expected/index.html
@@ -8,8 +8,7 @@ PHP Interface with implicit namespace
interface
\TYPO3\CMS\Core\
TestInterface
-
-
+
-
Lorem Ipsum Dolor!
@@ -17,4 +16,4 @@ PHP Interface with implicit namespace
-
\ No newline at end of file
+
diff --git a/tests/integration/interface-link/expected/index.html b/tests/integration/interface-link/expected/index.html
index 35c78d7..dc46567 100644
--- a/tests/integration/interface-link/expected/index.html
+++ b/tests/integration/interface-link/expected/index.html
@@ -8,8 +8,7 @@ PHP Interface with implicit namespace
interface
\TYPO3\CMS\Core\
TestInterface
-
-
+
-
Lorem Ipsum Dolor!
diff --git a/tests/integration/interface-namespace-directive/expected/index.html b/tests/integration/interface-namespace-directive/expected/index.html
index ec1f0e2..fd3c685 100644
--- a/tests/integration/interface-namespace-directive/expected/index.html
+++ b/tests/integration/interface-namespace-directive/expected/index.html
@@ -8,8 +8,7 @@ PHP Interface with current namespace from directive
interface
\TYPO3\CMS\Core\
TestInterface
-
-
+
-
Lorem Ipsum Dolor!
@@ -21,8 +20,7 @@ PHP Interface with current namespace from directive
interface
\TYPO3\CMS\Core\
AnotherInterface
-
-
+
-
Lorem Ipsum Dolor Another!
@@ -30,4 +28,4 @@ PHP Interface with current namespace from directive
-
\ No newline at end of file
+
diff --git a/tests/integration/interface-with-const/expected/index.html b/tests/integration/interface-with-const/expected/index.html
index b5d2a3b..ac8c9e2 100644
--- a/tests/integration/interface-with-const/expected/index.html
+++ b/tests/integration/interface-with-const/expected/index.html
@@ -8,11 +8,10 @@ PHP Interface with const
interface
\TYPO3\CMS\Core\
TestInterface
-
-
+
-
Lorem Ipsum Dolor!
- -
+
-
const
ATOM
diff --git a/tests/integration/interface-with-method/expected/index.html b/tests/integration/interface-with-method/expected/index.html
index 3bdcb48..9abb75c 100644
--- a/tests/integration/interface-with-method/expected/index.html
+++ b/tests/integration/interface-with-method/expected/index.html
@@ -8,33 +8,28 @@
PHP Interface with implicit namespace
interface
\TYPO3\CMS\Core\
TestInterface
-
-
+
-
Lorem Ipsum Dolor!
- -
-
+
-
setDate
(
int $year, int $month, int $day)
-
-
+
-
Set the date.
-
+
- -
-
+
-
getDate
(
)
: int
-
-
+
-
Get the date.
-
+
diff --git a/tests/integration/interface-without-namespace/expected/index.html b/tests/integration/interface-without-namespace/expected/index.html
index 97b77eb..1e02f40 100644
--- a/tests/integration/interface-without-namespace/expected/index.html
+++ b/tests/integration/interface-without-namespace/expected/index.html
@@ -7,8 +7,7 @@ PHP Interface
id="testinterface">
interface
TestInterface
-
-
+
-
Lorem Ipsum Dolor!
@@ -16,4 +15,4 @@ PHP Interface
-
\ No newline at end of file
+
diff --git a/tests/integration/method-illegal-combinations/expected/index.html b/tests/integration/method-illegal-combinations/expected/index.html
index 46bd9bb..a6c2bc9 100644
--- a/tests/integration/method-illegal-combinations/expected/index.html
+++ b/tests/integration/method-illegal-combinations/expected/index.html
@@ -14,7 +14,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -28,7 +28,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -42,7 +42,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -56,7 +56,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -70,7 +70,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
diff --git a/tests/integration/method-legal-combinations/expected/index.html b/tests/integration/method-legal-combinations/expected/index.html
index 7705229..cb64896 100644
--- a/tests/integration/method-legal-combinations/expected/index.html
+++ b/tests/integration/method-legal-combinations/expected/index.html
@@ -12,7 +12,7 @@ PHP method with allowed modifier combinations
Do something
-
+
@@ -26,7 +26,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -39,7 +39,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -52,7 +52,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -65,7 +65,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -78,7 +78,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -92,7 +92,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -106,7 +106,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -121,7 +121,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
@@ -135,7 +135,7 @@ PHP method with allowed modifier combinations
-
Do something
-
+
diff --git a/tests/integration/static-method/expected/index.html b/tests/integration/static-method/expected/index.html
index 5b2ec74..4d9f6bc 100644
--- a/tests/integration/static-method/expected/index.html
+++ b/tests/integration/static-method/expected/index.html
@@ -12,7 +12,7 @@ PHP static method
Do something
-
+
diff --git a/tests/integration/trait-directive/expected/index.html b/tests/integration/trait-directive/expected/index.html
index b4449ae..7ea65ea 100644
--- a/tests/integration/trait-directive/expected/index.html
+++ b/tests/integration/trait-directive/expected/index.html
@@ -8,11 +8,10 @@ PHP Trait
trait
\TYPO3\CMS\Core\Context\
ContextAwareTrait
-
-
+
- -
+
-
public
const
FLAG_1
@@ -21,24 +20,24 @@
PHP Trait
- -
+
-
setContext
(
Context $context)
-
-
+
- -
+
-
getContext
(
)
-
-
+
diff --git a/tests/integration/trait-with-link/expected/index.html b/tests/integration/trait-with-link/expected/index.html
index b829b25..6675939 100644
--- a/tests/integration/trait-with-link/expected/index.html
+++ b/tests/integration/trait-with-link/expected/index.html
@@ -8,11 +8,10 @@ PHP Trait
trait
\TYPO3\CMS\Core\Context\
ContextAwareTrait
-
-
+
- -
+
-
public
const
FLAG_1
@@ -21,24 +20,24 @@
PHP Trait
- -
+
-
setContext
(
Context $context)
-
-
+
- -
+
-
getContext
(
)
-
-
+