annotate vendor/github.com/alecthomas/chroma/v2/lexers/html.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 // HTML lexer.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8 var HTML = Register(MustNewLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 Name: "HTML",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11 Aliases: []string{"html"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 Filenames: []string{"*.html", "*.htm", "*.xhtml", "*.xslt"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 MimeTypes: []string{"text/html", "application/xhtml+xml"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 NotMultiline: true,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 DotAll: true,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 CaseInsensitive: true,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 htmlRules,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 ))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 func htmlRules() Rules {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 return Rules{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 "root": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 {`[^<&]+`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 {`&\S*?;`, NameEntity, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 {`\<\!\[CDATA\[.*?\]\]\>`, CommentPreproc, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 {`<!--`, Comment, Push("comment")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28 {`<\?.*?\?>`, CommentPreproc, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 {`<![^>]*>`, CommentPreproc, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30 {`(<)(\s*)(script)(\s*)`, ByGroups(Punctuation, Text, NameTag, Text), Push("script-content", "tag")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 {`(<)(\s*)(style)(\s*)`, ByGroups(Punctuation, Text, NameTag, Text), Push("style-content", "tag")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 {`(<)(\s*)([\w:.-]+)`, ByGroups(Punctuation, Text, NameTag), Push("tag")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 {`(<)(\s*)(/)(\s*)([\w:.-]+)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 "comment": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 {`[^-]+`, Comment, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37 {`-->`, Comment, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 {`-`, Comment, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40 "tag": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41 {`\s+`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 {`([\w:-]+\s*)(=)(\s*)`, ByGroups(NameAttribute, Operator, Text), Push("attr")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43 {`[\w:-]+`, NameAttribute, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
44 {`(/?)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation), Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
45 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
46 "script-content": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
47 {`(<)(\s*)(/)(\s*)(script)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
48 {`.+?(?=<\s*/\s*script\s*>)`, Using("Javascript"), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
49 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
50 "style-content": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
51 {`(<)(\s*)(/)(\s*)(style)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
52 {`.+?(?=<\s*/\s*style\s*>)`, Using("CSS"), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
53 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
54 "attr": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
55 {`".*?"`, LiteralString, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
56 {`'.*?'`, LiteralString, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
57 {`[^\s>]+`, LiteralString, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
58 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
59 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
60 }