File tree Expand file tree Collapse file tree 6 files changed +119
-0
lines changed
Expand file tree Collapse file tree 6 files changed +119
-0
lines changed Original file line number Diff line number Diff line change 99use Tempest \Highlight \Languages \Blade \Injections \BladePhpInjection ;
1010use Tempest \Highlight \Languages \Blade \Injections \BladeRawEchoInjection ;
1111use Tempest \Highlight \Languages \Blade \Patterns \BladeCommentPattern ;
12+ use Tempest \Highlight \Languages \Blade \Patterns \BladeComponentCloseTagPattern ;
13+ use Tempest \Highlight \Languages \Blade \Patterns \BladeComponentOpenTagPattern ;
1214use Tempest \Highlight \Languages \Blade \Patterns \BladeKeywordPattern ;
1315use Tempest \Highlight \Languages \Html \HtmlLanguage ;
1416
@@ -34,6 +36,8 @@ public function getPatterns(): array
3436 {
3537 return [
3638 ...parent ::getPatterns (),
39+ new BladeComponentOpenTagPattern (),
40+ new BladeComponentCloseTagPattern (),
3741 new BladeKeywordPattern (),
3842 new BladeCommentPattern (),
3943 ];
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Tempest \Highlight \Languages \Blade \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: '</a> ' , output: 'a ' )]
13+ #[PatternTest(input: '</x-hello> ' , output: 'x-hello ' )]
14+ #[PatternTest(input: '</x-hello::world> ' , output: 'x-hello::world ' )]
15+ #[PatternTest(input: '</x-hello::world.lorem> ' , output: 'x-hello::world.lorem ' )]
16+ final readonly class BladeComponentCloseTagPattern implements Pattern
17+ {
18+ use IsPattern;
19+
20+ public function getPattern (): string
21+ {
22+ return '<\/(?<match>[\w\-\:\.]+) ' ;
23+ }
24+
25+ public function getTokenType (): TokenTypeEnum
26+ {
27+ return TokenTypeEnum::KEYWORD ;
28+ }
29+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Tempest \Highlight \Languages \Blade \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: '<a attr=""> ' , output: 'a ' )]
13+ #[PatternTest(input: '<x-hello attr=""> ' , output: 'x-hello ' )]
14+ #[PatternTest(input: '<x-hello::world attr=""> ' , output: 'x-hello::world ' )]
15+ #[PatternTest(input: '<x-hello::world.lorem attr=""> ' , output: 'x-hello::world.lorem ' )]
16+ final readonly class BladeComponentOpenTagPattern implements Pattern
17+ {
18+ use IsPattern;
19+
20+ public function getPattern (): string
21+ {
22+ return '<(?<match>[\w\-\:\.]+) ' ;
23+ }
24+
25+ public function getTokenType (): TokenTypeEnum
26+ {
27+ return TokenTypeEnum::KEYWORD ;
28+ }
29+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 3434use Tempest \Highlight \Languages \Php \Patterns \NestedFunctionCallPattern ;
3535use Tempest \Highlight \Languages \Php \Patterns \NewObjectPattern ;
3636use Tempest \Highlight \Languages \Php \Patterns \OperatorPattern ;
37+ use Tempest \Highlight \Languages \Php \Patterns \PhpCloseTagPattern ;
38+ use Tempest \Highlight \Languages \Php \Patterns \PhpOpenTagPattern ;
3739use Tempest \Highlight \Languages \Php \Patterns \PropertyAccessPattern ;
3840use Tempest \Highlight \Languages \Php \Patterns \PropertyHookGetPattern ;
3941use 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 (),
You can’t perform that action at this time.
0 commit comments