diff options
| author | Christian Clason <c.clason@uni-graz.at> | 2023-06-12 09:54:30 -0600 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2025-05-12 18:43:40 +0200 |
| commit | 692b051b09935653befdb8f7ba8afdb640adf17b (patch) | |
| tree | 167162b6b129ae04f68c5735078521a72917c742 /runtime/queries/re2c | |
| parent | feat(c-family): inherit injections (diff) | |
| download | nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.gz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.bz2 nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.lz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.xz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.zst nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.zip | |
feat!: drop modules, general refactor and cleanup
Diffstat (limited to 'runtime/queries/re2c')
| -rw-r--r-- | runtime/queries/re2c/folds.scm | 4 | ||||
| -rw-r--r-- | runtime/queries/re2c/highlights.scm | 183 | ||||
| -rw-r--r-- | runtime/queries/re2c/indents.scm | 11 | ||||
| -rw-r--r-- | runtime/queries/re2c/injections.scm | 13 | ||||
| -rw-r--r-- | runtime/queries/re2c/locals.scm | 1 |
5 files changed, 212 insertions, 0 deletions
diff --git a/runtime/queries/re2c/folds.scm b/runtime/queries/re2c/folds.scm new file mode 100644 index 000000000..b4cf5f24e --- /dev/null +++ b/runtime/queries/re2c/folds.scm @@ -0,0 +1,4 @@ +[ + (body) + (action) +] @fold diff --git a/runtime/queries/re2c/highlights.scm b/runtime/queries/re2c/highlights.scm new file mode 100644 index 000000000..c89c30745 --- /dev/null +++ b/runtime/queries/re2c/highlights.scm @@ -0,0 +1,183 @@ +; Namespaces +[ + "re2c" + "re2c" + "local" + "rules" +] @module + +; Includes +[ + "!use" + "!include" +] @keyword.import + +; Keywords +[ + "flags" + "define" + "cond" + "label" + "variable" + "yych" + "state" + "yybm" + "cgoto" + "api" + "tags" + "indent" + "yyfill" + "eof" + "sentinel" + "condprefix" + "condenumprefix" + "startlabel" + "posix-captures" + "max" + "maxnmatch" + "mtags" + "stags" + "header" + "getstate" +] @keyword + +[ + "*" + "+" + "?" +] @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.regexp + +[ + (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) + +(host_lang) @none + +; Punctuation +[ + ":" + ";" + "," + "-" +] @punctuation.delimiter + +[ + "{" + "}" + "[" + "]" + "(" + ")" + "<" + ">" +] @punctuation.bracket + +(repetition + (limits + [ + "{" + "}" + ] @punctuation.bracket)) + +[ + "!" + "@" + "#" +] @punctuation.special + +; Comments and error +[ + (comment) + (ignore_block) +] @comment @spell diff --git a/runtime/queries/re2c/indents.scm b/runtime/queries/re2c/indents.scm new file mode 100644 index 000000000..31ccf2a0f --- /dev/null +++ b/runtime/queries/re2c/indents.scm @@ -0,0 +1,11 @@ +[ + (re2c) + (action) +] @indent.begin + +"}" @indent.branch @indent.end + +[ + (comment) + (linedir) +] @indent.ignore diff --git a/runtime/queries/re2c/injections.scm b/runtime/queries/re2c/injections.scm new file mode 100644 index 000000000..f0cb1a989 --- /dev/null +++ b/runtime/queries/re2c/injections.scm @@ -0,0 +1,13 @@ +((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/runtime/queries/re2c/locals.scm b/runtime/queries/re2c/locals.scm new file mode 100644 index 000000000..eea1ede89 --- /dev/null +++ b/runtime/queries/re2c/locals.scm @@ -0,0 +1 @@ +(body) @local.scope |
