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/vim.go | |
| parent | 0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff) | |
| download | jbmafp-c6cc0108ca7738023b45e0eeac0fa2390532dd93.tar.gz | |
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/vim.go')
| -rw-r--r-- | vendor/github.com/alecthomas/chroma/v2/lexers/vim.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/vim.go b/vendor/github.com/alecthomas/chroma/v2/lexers/vim.go new file mode 100644 index 0000000..b0059ea --- /dev/null +++ b/vendor/github.com/alecthomas/chroma/v2/lexers/vim.go @@ -0,0 +1,39 @@ +package lexers + +import ( + . "github.com/alecthomas/chroma/v2" // nolint +) + +// Viml lexer. +var Viml = Register(MustNewLexer( + &Config{ + Name: "VimL", + Aliases: []string{"vim"}, + Filenames: []string{"*.vim", ".vimrc", ".exrc", ".gvimrc", "_vimrc", "_exrc", "_gvimrc", "vimrc", "gvimrc"}, + MimeTypes: []string{"text/x-vim"}, + }, + vimlRules, +)) + +func vimlRules() Rules { + return Rules{ + "root": { + {`^([ \t:]*)(py(?:t(?:h(?:o(?:n)?)?)?)?)([ \t]*)(<<)([ \t]*)(.*)((?:\n|.)*)(\6)`, ByGroups(UsingSelf("root"), Keyword, Text, Operator, Text, Text, Using("Python"), Text), nil}, + {`^([ \t:]*)(py(?:t(?:h(?:o(?:n)?)?)?)?)([ \t])(.*)`, ByGroups(UsingSelf("root"), Keyword, Text, Using("Python")), nil}, + {`^\s*".*`, Comment, nil}, + {`[ \t]+`, Text, nil}, + {`/(\\\\|\\/|[^\n/])*/`, LiteralStringRegex, nil}, + {`"(\\\\|\\"|[^\n"])*"`, LiteralStringDouble, nil}, + {`'(''|[^\n'])*'`, LiteralStringSingle, nil}, + {`(?<=\s)"[^\-:.%#=*].*`, Comment, nil}, + {`-?\d+`, LiteralNumber, nil}, + {`#[0-9a-f]{6}`, LiteralNumberHex, nil}, + {`^:`, Punctuation, nil}, + {`[()<>+=!|,~-]`, Punctuation, nil}, + {`\b(let|if|else|endif|elseif|fun|function|endfunction)\b`, Keyword, nil}, + {`\b(NONE|bold|italic|underline|dark|light)\b`, NameBuiltin, nil}, + {`\b\w+\b`, NameOther, nil}, + {`.`, Text, nil}, + }, + } +} |
