From 14dff71d381737f29df9a6e5335e16d3d9815309 Mon Sep 17 00:00:00 2001 From: Riley Bruins Date: Sun, 7 Jul 2024 09:52:43 -0700 Subject: [PATCH] feat(wit): add folds, missing highlights References: https://github.com/liamwh/tree-sitter-wit/blob/main/grammar.js https://github.com/zed-industries/zed/blob/79f364632535ef85c190fcf1be9834bbffc19c95/crates/extension_api/wit/since_v0.0.4/extension.wit https://github.com/fermyon/spin/blob/436ad589237c02f7aa4693e984132808fd80b863/wit/mqtt.wit https://github.com/bytecodealliance/wasmtime/blob/a068bfe06435a048502bf4afc426451dab5294af/crates/wasi-nn/wit/wasi-nn.wit --- queries/wit/folds.scm | 12 ++++++++++++ queries/wit/highlights.scm | 22 ++++++++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 queries/wit/folds.scm diff --git a/queries/wit/folds.scm b/queries/wit/folds.scm new file mode 100644 index 000000000..7f84ddd2e --- /dev/null +++ b/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/queries/wit/highlights.scm b/queries/wit/highlights.scm index bc9b59bb0..1f4b01cce 100644 --- a/queries/wit/highlights.scm +++ b/queries/wit/highlights.scm @@ -4,7 +4,7 @@ (id)) @type (package_decl - (id)) @module + (id) @module) (valid_semver) @string.special @@ -38,7 +38,7 @@ alias: (id) @type.definition) (func_item - name: (id) @function) + name: (id) @function.method) (handle (id) @type) @@ -62,7 +62,7 @@ name: (id) @type) (variant_case - name: (id) @type) + name: (id) @constant) (enum_items name: (id) @type) @@ -73,18 +73,27 @@ (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 [ @@ -105,6 +114,7 @@ "include" "import" "export" + "as" ] @keyword.import [ @@ -118,6 +128,8 @@ "s64" "f32" "f64" + "float32" ; deprecated + "float64" ; deprecated "char" "bool" "string" @@ -130,7 +142,7 @@ [ "@" - "->" + "_" ] @punctuation.special [ @@ -138,6 +150,8 @@ ";" ":" "," + "." + "->" ] @punctuation.delimiter [