aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/alecthomas/chroma/v2/lexers/mason.go
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
commitc6cc0108ca7738023b45e0eeac0fa2390532dd93 (patch)
tree36890e6cd3091bbab8efbe686cc56f467f645bfd /vendor/github.com/alecthomas/chroma/v2/lexers/mason.go
parent0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff)
downloadjbmafp-c6cc0108ca7738023b45e0eeac0fa2390532dd93.tar.gz
Added vendor lock on depsHEADmaster
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/mason.go')
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/mason.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/mason.go b/vendor/github.com/alecthomas/chroma/v2/lexers/mason.go
new file mode 100644
index 0000000..57e6120
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/mason.go
@@ -0,0 +1,44 @@
1package lexers
2
3import (
4 . "github.com/alecthomas/chroma/v2" // nolint
5)
6
7// Mason lexer.
8var Mason = Register(MustNewLexer(
9 &Config{
10 Name: "Mason",
11 Aliases: []string{"mason"},
12 Filenames: []string{"*.m", "*.mhtml", "*.mc", "*.mi", "autohandler", "dhandler"},
13 MimeTypes: []string{"application/x-mason"},
14 Priority: 0.1,
15 },
16 masonRules,
17))
18
19func masonRules() Rules {
20 return Rules{
21 "root": {
22 {`\s+`, Text, nil},
23 {`(<%doc>)(.*?)(</%doc>)(?s)`, ByGroups(NameTag, CommentMultiline, NameTag), nil},
24 {`(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil},
25 {`(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using("Perl"), NameTag), nil},
26 {`(<&[^|])(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Perl"), NameTag), nil},
27 {`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Perl"), NameTag), nil},
28 {`</&>`, NameTag, nil},
29 {`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using("Perl"), NameTag), nil},
30 {`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil},
31 {`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using("Perl"), Other), nil},
32 {`(?sx)
33 (.+?) # anything, followed by:
34 (?:
35 (?<=\n)(?=[%#]) | # an eval or comment line
36 (?=</?[%&]) | # a substitution or block or
37 # call start or end
38 # - don't consume
39 (\\\n) | # an escaped newline
40 \Z # end of string
41 )`, ByGroups(Using("HTML"), Operator), nil},
42 },
43 }
44}