aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/re2c
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2023-06-12 09:54:30 -0600
committerChristian Clason <c.clason@uni-graz.at>2025-05-12 18:43:40 +0200
commit692b051b09935653befdb8f7ba8afdb640adf17b (patch)
tree167162b6b129ae04f68c5735078521a72917c742 /runtime/queries/re2c
parentfeat(c-family): inherit injections (diff)
downloadnvim-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.scm4
-rw-r--r--runtime/queries/re2c/highlights.scm183
-rw-r--r--runtime/queries/re2c/indents.scm11
-rw-r--r--runtime/queries/re2c/injections.scm13
-rw-r--r--runtime/queries/re2c/locals.scm1
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