annotate vendor/github.com/alecthomas/chroma/v2/lexers/mason.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 // Mason lexer.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8 var Mason = Register(MustNewLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 Name: "Mason",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11 Aliases: []string{"mason"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 Filenames: []string{"*.m", "*.mhtml", "*.mc", "*.mi", "autohandler", "dhandler"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 MimeTypes: []string{"application/x-mason"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 Priority: 0.1,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 masonRules,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17 ))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 func masonRules() Rules {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20 return Rules{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 "root": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 {`\s+`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 {`(<%doc>)(.*?)(</%doc>)(?s)`, ByGroups(NameTag, CommentMultiline, NameTag), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 {`(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 {`(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using("Perl"), NameTag), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 {`(<&[^|])(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Perl"), NameTag), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 {`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Perl"), NameTag), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28 {`</&>`, NameTag, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 {`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using("Perl"), NameTag), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30 {`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 {`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using("Perl"), Other), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 {`(?sx)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 (.+?) # anything, followed by:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34 (?:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 (?<=\n)(?=[%#]) | # an eval or comment line
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 (?=</?[%&]) | # a substitution or block or
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37 # call start or end
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 # - don't consume
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39 (\\\n) | # an escaped newline
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40 \Z # end of string
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41 )`, ByGroups(Using("HTML"), Operator), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
44 }