summaryrefslogtreecommitdiff
path: root/vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go')
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go b/vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go
new file mode 100644
index 0000000..42ff0e6
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/myghty.go
@@ -0,0 +1,42 @@
+package lexers
+
+import (
+ . "github.com/alecthomas/chroma/v2" // nolint
+)
+
+// Myghty lexer.
+var Myghty = Register(MustNewLexer(
+ &Config{
+ Name: "Myghty",
+ Aliases: []string{"myghty"},
+ Filenames: []string{"*.myt", "autodelegate"},
+ MimeTypes: []string{"application/x-myghty"},
+ },
+ myghtyRules,
+))
+
+func myghtyRules() Rules {
+ return Rules{
+ "root": {
+ {`\s+`, Text, nil},
+ {`(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil},
+ {`(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using("Python2"), NameTag), nil},
+ {`(<&[^|])(.*?)(,.*?)?(&>)`, ByGroups(NameTag, NameFunction, Using("Python2"), NameTag), nil},
+ {`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using("Python2"), NameTag), nil},
+ {`</&>`, NameTag, nil},
+ {`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using("Python2"), NameTag), nil},
+ {`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil},
+ {`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using("Python2"), Other), nil},
+ {`(?sx)
+ (.+?) # anything, followed by:
+ (?:
+ (?<=\n)(?=[%#]) | # an eval or comment line
+ (?=</?[%&]) | # a substitution or block or
+ # call start or end
+ # - don't consume
+ (\\\n) | # an escaped newline
+ \Z # end of string
+ )`, ByGroups(Other, Operator), nil},
+ },
+ }
+}