1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Tempest \Highlight \Languages \Bash ;
6+
7+ use Override ;
8+ use Tempest \Highlight \Languages \Base \BaseLanguage ;
9+ use Tempest \Highlight \Languages \Bash \Patterns \BashBuiltinPattern ;
10+ use Tempest \Highlight \Languages \Bash \Patterns \BashCommentPattern ;
11+ use Tempest \Highlight \Languages \Bash \Patterns \BashFlagPattern ;
12+ use Tempest \Highlight \Languages \Bash \Patterns \BashKeywordPattern ;
13+ use Tempest \Highlight \Languages \Bash \Patterns \BashNumberPattern ;
14+ use Tempest \Highlight \Languages \Bash \Patterns \BashOperatorPattern ;
15+ use Tempest \Highlight \Languages \Bash \Patterns \BashShebangPattern ;
16+ use Tempest \Highlight \Languages \Bash \Patterns \BashVariablePattern ;
17+ use Tempest \Highlight \Languages \Php \Patterns \DoubleQuoteValuePattern ;
18+ use Tempest \Highlight \Languages \Php \Patterns \SingleQuoteValuePattern ;
19+
20+ class BashLanguage extends BaseLanguage
21+ {
22+ public function getName (): string
23+ {
24+ return 'bash ' ;
25+ }
26+
27+ #[Override]
28+ public function getAliases (): array
29+ {
30+ return ['sh ' , 'shell ' ];
31+ }
32+
33+ #[Override]
34+ public function getInjections (): array
35+ {
36+ return [
37+ ...parent ::getInjections (),
38+ ];
39+ }
40+
41+ #[Override]
42+ public function getPatterns (): array
43+ {
44+ return [
45+ ...parent ::getPatterns (),
46+
47+ // COMMENTS
48+ new BashShebangPattern (),
49+ new BashCommentPattern (),
50+
51+ // VALUES
52+ new SingleQuoteValuePattern (),
53+ new DoubleQuoteValuePattern (),
54+
55+ // KEYWORDS
56+ new BashKeywordPattern (),
57+ new BashBuiltinPattern (),
58+
59+ // VARIABLES
60+ new BashVariablePattern (),
61+
62+ // OPERATORS
63+ new BashOperatorPattern (),
64+
65+ // NUMBERS
66+ new BashNumberPattern (),
67+
68+ // FLAGS
69+ new BashFlagPattern (),
70+ ];
71+ }
72+ }
0 commit comments