diff options
| author | Amaan Qureshi <amaanq12@gmail.com> | 2023-08-22 02:10:29 -0400 |
|---|---|---|
| committer | Amaan Qureshi <amaanq12@gmail.com> | 2023-08-24 02:52:48 -0400 |
| commit | c58694685d0a4387ea10aeac1932c6afc55bcf3e (patch) | |
| tree | fcf5551992e32b84dc5dc4bf5662122268322d7d /queries/re2c | |
| parent | refactor: replace some match & vim-match usages (diff) | |
| download | nvim-treesitter-c58694685d0a4387ea10aeac1932c6afc55bcf3e.tar nvim-treesitter-c58694685d0a4387ea10aeac1932c6afc55bcf3e.tar.gz nvim-treesitter-c58694685d0a4387ea10aeac1932c6afc55bcf3e.tar.bz2 nvim-treesitter-c58694685d0a4387ea10aeac1932c6afc55bcf3e.tar.lz nvim-treesitter-c58694685d0a4387ea10aeac1932c6afc55bcf3e.tar.xz nvim-treesitter-c58694685d0a4387ea10aeac1932c6afc55bcf3e.tar.zst nvim-treesitter-c58694685d0a4387ea10aeac1932c6afc55bcf3e.zip | |
feat: add re2c
Diffstat (limited to 'queries/re2c')
| -rw-r--r-- | queries/re2c/folds.scm | 4 | ||||
| -rw-r--r-- | queries/re2c/highlights.scm | 190 | ||||
| -rw-r--r-- | queries/re2c/indents.scm | 11 | ||||
| -rw-r--r-- | queries/re2c/injections.scm | 12 | ||||
| -rw-r--r-- | queries/re2c/locals.scm | 1 |
5 files changed, 218 insertions, 0 deletions
diff --git a/queries/re2c/folds.scm b/queries/re2c/folds.scm new file mode 100644 index 000000000..b4cf5f24e --- /dev/null +++ b/queries/re2c/folds.scm @@ -0,0 +1,4 @@ +[ + (body) + (action) +] @fold diff --git a/queries/re2c/highlights.scm b/queries/re2c/highlights.scm new file mode 100644 index 000000000..6d3a27f5a --- /dev/null +++ b/queries/re2c/highlights.scm @@ -0,0 +1,190 @@ +; Namespaces + +[ + "re2c" + "re2c" + "local" + "rules" +] @namespace + +; Includes + +[ + "!use" + "!include" +] @include + +; Keywords + +[ + "flags" + "define" + "cond" + "label" + "variable" + "yych" + "state" + "yybm" + "cgoto" + "api" + "tags" + "indent" + "yyfill" + "eof" + "sentinel" + "condprefix" + "condenumprefix" + "labelprefix" + "startlabel" + "posix-captures" + "max" + "maxnmatch" + "mtags" + "stags" + "header" + "getstate" +] @keyword + +[ + "*" + "+" + "?" +] @repeat + +; Constants + +[ + "ignore" + "substitute" + "fail" + "default" + "custom" + "match-empty" + "match-none" + "error" + "functions" + "free-form" + "format" + "separator" +] @constant.builtin + +(linedir) @constant.macro + +; Operators + +[ + "=" + "=>" + ":=>" + "/" + "|" + "\\" + "->" + "^" +] @operator + +[ + "." + (default) + (end_of_input) +] @constant.macro + +(field_expression + "." @operator) + +(condition + (any) @constant.macro) + + +; Names + +(name) @type + +(block_name) @constant + +(label) @label + +(option_name) @constant.builtin + +((option_name) @constant.macro + (#match? @constant.macro "^YY")) + +(field_expression + argument: (identifier) @variable) + +(field_identifier) @property + +; Literals + +(regex) @string.regex + +[ + (dstring) ; case sensitive + (sstring) ; case insensitive +] @string + +[ + (quote) + (ctrl_code) + (code_unit) +] @string.escape + +(number) @number + +[ + "on" + "off" +] @boolean + +[ + (stag) + (mtag) +] @property + +; Configurations + +(define + option: (option_name) @_yy + value: (dstring) @type + (#eq? @_yy "YYCTYPE") + (#offset! @type 0 1 0 -1)) + +(set_header + value: (dstring) @string.special @text.underline) + +(host_lang) @none + +; Punctuation + +[ + ":" + ";" + "," + "-" +] @punctuation.delimiter + +[ + "{" "}" + "[" "]" + "(" ")" + "<" ">" +] @punctuation.bracket + +(repetition + (limits + ["{" "}"] @punctuation.bracket)) + +[ + "!" + "@" + "#" +] @punctuation.special + +; Comments and error + +[ + (comment) + (ignore_block) +] @comment @spell + +(ERROR) @error diff --git a/queries/re2c/indents.scm b/queries/re2c/indents.scm new file mode 100644 index 000000000..72539143a --- /dev/null +++ b/queries/re2c/indents.scm @@ -0,0 +1,11 @@ +[ + (re2c) + (action) +] @indent.begin + +"}" @indent.branch @indent.end + +[ + (comment) + (linedir) +] @indent.ignore diff --git a/queries/re2c/injections.scm b/queries/re2c/injections.scm new file mode 100644 index 000000000..e5e40a09d --- /dev/null +++ b/queries/re2c/injections.scm @@ -0,0 +1,12 @@ +((host_lang) @injection.content + (#set! injection.parent)) + +((define + option: (option_name) @_yy + value: (dstring) @injection.content) + (#any-of? @_yy "YYPEEK" "YYSKIP" "YYBACKUP" "YYBACKUPCTX" "YYRESTORE" "YYRESTORECTX" "YYFILL" "YYSHIFT") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.parent)) + +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/queries/re2c/locals.scm b/queries/re2c/locals.scm new file mode 100644 index 000000000..0a77995d5 --- /dev/null +++ b/queries/re2c/locals.scm @@ -0,0 +1 @@ +(body) @scope |
