aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/wit
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/wit
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/wit')
-rw-r--r--runtime/queries/wit/folds.scm12
-rw-r--r--runtime/queries/wit/highlights.scm166
-rw-r--r--runtime/queries/wit/injections.scm2
3 files changed, 180 insertions, 0 deletions
diff --git a/runtime/queries/wit/folds.scm b/runtime/queries/wit/folds.scm
new file mode 100644
index 000000000..7f84ddd2e
--- /dev/null
+++ b/runtime/queries/wit/folds.scm
@@ -0,0 +1,12 @@
+[
+ (world_items)
+ (world_body)
+ (interface_items)
+ (interface_body)
+] @fold
+
+(world_items
+ [
+ (use_item)
+ (import_item)
+ ])+ @fold
diff --git a/runtime/queries/wit/highlights.scm b/runtime/queries/wit/highlights.scm
new file mode 100644
index 000000000..1f4b01cce
--- /dev/null
+++ b/runtime/queries/wit/highlights.scm
@@ -0,0 +1,166 @@
+(comment) @comment @spell
+
+(ty
+ (id)) @type
+
+(package_decl
+ (id) @module)
+
+(valid_semver) @string.special
+
+(world_item
+ name: (id) @module)
+
+(interface_item
+ name: (id) @module)
+
+(import_item
+ name: (id) @module
+ (extern_type
+ (interface_body)))
+
+(import_item
+ name: (id) @function
+ (extern_type
+ (func_type)))
+
+(export_item
+ name: (id) @module
+ (extern_type
+ (interface_body)))
+
+(export_item
+ name: (id) @function
+ (extern_type
+ (func_type)))
+
+(type_item
+ alias: (id) @type.definition)
+
+(func_item
+ name: (id) @function.method)
+
+(handle
+ (id) @type)
+
+(named_type
+ name: (id) @variable.parameter)
+
+(record_item
+ name: (id) @type)
+
+(record_field
+ name: (id) @variable.member)
+
+(flags_items
+ name: (id) @type)
+
+(flags_body
+ (id) @variable.member)
+
+(variant_items
+ name: (id) @type)
+
+(variant_case
+ name: (id) @constant)
+
+(enum_items
+ name: (id) @type)
+
+(enum_case
+ name: (id) @constant)
+
+(resource_item
+ name: (id) @type)
+
+(resource_method
+ (id) @function.method)
+
+(resource_method
+ "constructor" @constructor)
+
+(toplevel_use_item
+ "use" @keyword.import)
+
+(toplevel_use_item
+ alias: (id) @module)
+
+(use_item
+ "use" @keyword.import)
+
+(use_path
+ (id) @module)
+
+(use_names_item
+ (id) @module)
+
+"func" @keyword.function
+
+[
+ "type"
+ "interface"
+ "world"
+ "package"
+ "resource"
+ "record"
+ "enum"
+ "flags"
+ "variant"
+] @keyword.type
+
+"static" @keyword.modifier
+
+[
+ "include"
+ "import"
+ "export"
+ "as"
+] @keyword.import
+
+[
+ "u8"
+ "u16"
+ "u32"
+ "u64"
+ "s8"
+ "s16"
+ "s32"
+ "s64"
+ "f32"
+ "f64"
+ "float32" ; deprecated
+ "float64" ; deprecated
+ "char"
+ "bool"
+ "string"
+ "tuple"
+ "list"
+ "option"
+ "result"
+ "borrow"
+] @type.builtin
+
+[
+ "@"
+ "_"
+] @punctuation.special
+
+[
+ "/"
+ ";"
+ ":"
+ ","
+ "."
+ "->"
+] @punctuation.delimiter
+
+[
+ "{"
+ "}"
+ "("
+ ")"
+ ">"
+ "<"
+] @punctuation.bracket
+
+"=" @operator
diff --git a/runtime/queries/wit/injections.scm b/runtime/queries/wit/injections.scm
new file mode 100644
index 000000000..2f0e58eb6
--- /dev/null
+++ b/runtime/queries/wit/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))