Mercurial > yakumo_izuru > aya
comparison vendor/github.com/alecthomas/chroma/v2/lexers/smarty.go @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 package lexers | |
2 | |
3 import ( | |
4 . "github.com/alecthomas/chroma/v2" // nolint | |
5 ) | |
6 | |
7 // Smarty lexer. | |
8 var Smarty = Register(MustNewLexer( | |
9 &Config{ | |
10 Name: "Smarty", | |
11 Aliases: []string{"smarty"}, | |
12 Filenames: []string{"*.tpl"}, | |
13 MimeTypes: []string{"application/x-smarty"}, | |
14 DotAll: true, | |
15 }, | |
16 smartyRules, | |
17 )) | |
18 | |
19 func smartyRules() Rules { | |
20 return Rules{ | |
21 "root": { | |
22 {`[^{]+`, Other, nil}, | |
23 {`(\{)(\*.*?\*)(\})`, ByGroups(CommentPreproc, Comment, CommentPreproc), nil}, | |
24 {`(\{php\})(.*?)(\{/php\})`, ByGroups(CommentPreproc, Using("PHP"), CommentPreproc), nil}, | |
25 {`(\{)(/?[a-zA-Z_]\w*)(\s*)`, ByGroups(CommentPreproc, NameFunction, Text), Push("smarty")}, | |
26 {`\{`, CommentPreproc, Push("smarty")}, | |
27 }, | |
28 "smarty": { | |
29 {`\s+`, Text, nil}, | |
30 {`\{`, CommentPreproc, Push()}, | |
31 {`\}`, CommentPreproc, Pop(1)}, | |
32 {`#[a-zA-Z_]\w*#`, NameVariable, nil}, | |
33 {`\$[a-zA-Z_]\w*(\.\w+)*`, NameVariable, nil}, | |
34 {`[~!%^&*()+=|\[\]:;,.<>/?@-]`, Operator, nil}, | |
35 {`(true|false|null)\b`, KeywordConstant, nil}, | |
36 {`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil}, | |
37 {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, | |
38 {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, | |
39 {`[a-zA-Z_]\w*`, NameAttribute, nil}, | |
40 }, | |
41 } | |
42 } |