File tree Expand file tree Collapse file tree 3 files changed +60
-0
lines changed
Expand file tree Collapse file tree 3 files changed +60
-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: '</x-hello> ' , output: 'x-hello ' )]
13+ #[PatternTest(input: '</x-hello::world> ' , output: 'x-hello::world ' )]
14+ #[PatternTest(input: '</a> ' , output: 'a ' )]
15+ final readonly class BladeComponentCloseTagPattern implements Pattern
16+ {
17+ use IsPattern;
18+
19+ public function getPattern (): string
20+ {
21+ return '<\/(?<match>[\w\-\:]+) ' ;
22+ }
23+
24+ public function getTokenType (): TokenTypeEnum
25+ {
26+ return TokenTypeEnum::KEYWORD ;
27+ }
28+ }
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: '<x-hello attr=""> ' , output: 'x-hello ' )]
13+ #[PatternTest(input: '<x-hello::world attr=""> ' , output: 'x-hello::world ' )]
14+ #[PatternTest(input: '<a attr=""> ' , output: 'a ' )]
15+ final readonly class BladeComponentOpenTagPattern implements Pattern
16+ {
17+ use IsPattern;
18+
19+ public function getPattern (): string
20+ {
21+ return '<(?<match>[\w\-\:]+) ' ;
22+ }
23+
24+ public function getTokenType (): TokenTypeEnum
25+ {
26+ return TokenTypeEnum::KEYWORD ;
27+ }
28+ }
You can’t perform that action at this time.
0 commit comments