Skip to content

Commit b9de098

Browse files
committed
Adds PHP open and close tags as keywords
1 parent 6ea5573 commit b9de098

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Tempest\Highlight\Languages\Php\Patterns;
6+
7+
use Tempest\Highlight\IsPattern;
8+
use Tempest\Highlight\Pattern;
9+
use Tempest\Highlight\PatternTest;
10+
use Tempest\Highlight\Tokens\TokenTypeEnum;
11+
12+
#[PatternTest(input: '?>', output: '?>')]
13+
final readonly class PhpCloseTagPattern implements Pattern
14+
{
15+
use IsPattern;
16+
17+
public function getPattern(): string
18+
{
19+
return '(?<match>\?\>+)';
20+
}
21+
22+
public function getTokenType(): TokenTypeEnum
23+
{
24+
return TokenTypeEnum::KEYWORD;
25+
}
26+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Tempest\Highlight\Languages\Php\Patterns;
6+
7+
use Tempest\Highlight\IsPattern;
8+
use Tempest\Highlight\Pattern;
9+
use Tempest\Highlight\PatternTest;
10+
use Tempest\Highlight\Tokens\TokenTypeEnum;
11+
12+
#[PatternTest(input: '<?php', output: '<?php')]
13+
#[PatternTest(input: '<?=', output: '<?=')]
14+
final readonly class PhpOpenTagPattern implements Pattern
15+
{
16+
use IsPattern;
17+
18+
public function getPattern(): string
19+
{
20+
return '(?<match>\<\?[=|php]+)';
21+
}
22+
23+
public function getTokenType(): TokenTypeEnum
24+
{
25+
return TokenTypeEnum::KEYWORD;
26+
}
27+
}

src/Languages/Php/PhpLanguage.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
use Tempest\Highlight\Languages\Php\Patterns\NestedFunctionCallPattern;
3535
use Tempest\Highlight\Languages\Php\Patterns\NewObjectPattern;
3636
use Tempest\Highlight\Languages\Php\Patterns\OperatorPattern;
37+
use Tempest\Highlight\Languages\Php\Patterns\PhpCloseTagPattern;
38+
use Tempest\Highlight\Languages\Php\Patterns\PhpOpenTagPattern;
3739
use Tempest\Highlight\Languages\Php\Patterns\PropertyAccessPattern;
3840
use Tempest\Highlight\Languages\Php\Patterns\PropertyHookGetPattern;
3941
use Tempest\Highlight\Languages\Php\Patterns\PropertyHookSetParameterTypePattern;
@@ -76,6 +78,8 @@ public function getPatterns(): array
7678
return [
7779
...parent::getPatterns(),
7880

81+
new PhpOpenTagPattern(),
82+
new PhpCloseTagPattern(),
7983
new UseFunctionNamePattern(),
8084
new UseFunctionPattern(),
8185
new ClassNamePattern(),

0 commit comments

Comments
 (0)