annotate vendor/github.com/alecthomas/chroma/v2/lexers/genshi.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 package lexers
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 import (
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4 . "github.com/alecthomas/chroma/v2" // nolint
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5 )
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7 // Genshi Text lexer.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8 var GenshiText = Register(MustNewLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 Name: "Genshi Text",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11 Aliases: []string{"genshitext"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 Filenames: []string{},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 MimeTypes: []string{"application/x-genshi-text", "text/x-genshi"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 genshiTextRules,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 ))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 func genshiTextRules() Rules {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 return Rules{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20 "root": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 {`[^#$\s]+`, Other, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 {`^(\s*)(##.*)$`, ByGroups(Text, Comment), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 {`^(\s*)(#)`, ByGroups(Text, CommentPreproc), Push("directive")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 Include("variable"),
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 {`[#$\s]`, Other, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 "directive": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28 {`\n`, Text, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 {`(?:def|for|if)\s+.*`, Using("Python"), Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30 {`(choose|when|with)([^\S\n]+)(.*)`, ByGroups(Keyword, Text, Using("Python")), Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 {`(choose|otherwise)\b`, Keyword, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 {`(end\w*)([^\S\n]*)(.*)`, ByGroups(Keyword, Text, Comment), Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34 "variable": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 {`(?<!\$)(\$\{)(.+?)(\})`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 {`(?<!\$)(\$)([a-zA-Z_][\w.]*)`, NameVariable, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41 // Html+Genshi lexer.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 var GenshiHTMLTemplate = Register(MustNewLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
44 Name: "Genshi HTML",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
45 Aliases: []string{"html+genshi", "html+kid"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
46 Filenames: []string{},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
47 MimeTypes: []string{"text/html+genshi"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
48 NotMultiline: true,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
49 DotAll: true,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
50 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
51 genshiMarkupRules,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
52 ))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
53
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
54 // Genshi lexer.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
55 var Genshi = Register(MustNewLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
56 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
57 Name: "Genshi",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
58 Aliases: []string{"genshi", "kid", "xml+genshi", "xml+kid"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
59 Filenames: []string{"*.kid"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
60 MimeTypes: []string{"application/x-genshi", "application/x-kid"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
61 NotMultiline: true,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
62 DotAll: true,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
63 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
64 genshiMarkupRules,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
65 ))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
67 func genshiMarkupRules() Rules {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
68 return Rules{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
69 "root": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
70 {`[^<$]+`, Other, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
71 {`(<\?python)(.*?)(\?>)`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
72 {`<\s*(script|style)\s*.*?>.*?<\s*/\1\s*>`, Other, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
73 {`<\s*py:[a-zA-Z0-9]+`, NameTag, Push("pytag")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
74 {`<\s*[a-zA-Z0-9:.]+`, NameTag, Push("tag")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
75 Include("variable"),
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
76 {`[<$]`, Other, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
77 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
78 "pytag": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
79 {`\s+`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
80 {`[\w:-]+\s*=`, NameAttribute, Push("pyattr")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
81 {`/?\s*>`, NameTag, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
82 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
83 "pyattr": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
84 {`(")(.*?)(")`, ByGroups(LiteralString, Using("Python"), LiteralString), Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
85 {`(')(.*?)(')`, ByGroups(LiteralString, Using("Python"), LiteralString), Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
86 {`[^\s>]+`, LiteralString, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
87 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
88 "tag": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
89 {`\s+`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
90 {`py:[\w-]+\s*=`, NameAttribute, Push("pyattr")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
91 {`[\w:-]+\s*=`, NameAttribute, Push("attr")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
92 {`/?\s*>`, NameTag, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
93 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
94 "attr": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
95 {`"`, LiteralString, Push("attr-dstring")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
96 {`'`, LiteralString, Push("attr-sstring")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
97 {`[^\s>]*`, LiteralString, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
98 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
99 "attr-dstring": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
100 {`"`, LiteralString, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
101 Include("strings"),
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
102 {`'`, LiteralString, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
103 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
104 "attr-sstring": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
105 {`'`, LiteralString, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
106 Include("strings"),
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
107 {`'`, LiteralString, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
108 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
109 "strings": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
110 {`[^"'$]+`, LiteralString, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
111 Include("variable"),
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
112 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
113 "variable": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
114 {`(?<!\$)(\$\{)(.+?)(\})`, ByGroups(CommentPreproc, Using("Python"), CommentPreproc), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
115 {`(?<!\$)(\$)([a-zA-Z_][\w\.]*)`, NameVariable, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
116 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
117 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
118 }