diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-10-25 00:47:47 +0200 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-10-25 00:47:47 +0200 |
| commit | c6cc0108ca7738023b45e0eeac0fa2390532dd93 (patch) | |
| tree | 36890e6cd3091bbab8efbe686cc56f467f645bfd /vendor/github.com/alecthomas/chroma/v2/lexers/mason.go | |
| parent | 0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff) | |
| download | jbmafp-c6cc0108ca7738023b45e0eeac0fa2390532dd93.tar.gz | |
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/mason.go')
| -rw-r--r-- | vendor/github.com/alecthomas/chroma/v2/lexers/mason.go | 44 |
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 @@ | |||
| 1 | package lexers | ||
| 2 | |||
| 3 | import ( | ||
| 4 | . "github.com/alecthomas/chroma/v2" // nolint | ||
| 5 | ) | ||
| 6 | |||
| 7 | // Mason lexer. | ||
| 8 | var 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 | |||
| 19 | func 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 | } | ||
