aboutsummaryrefslogtreecommitdiffstats
path: root/queries
diff options
context:
space:
mode:
authorLiam Woodleigh-Hardinge <liam.woodleigh@gmail.com>2024-04-15 13:01:56 +0200
committerGitHub <noreply@github.com>2024-04-15 11:01:56 +0000
commit2a95ff14764af20d32ec1edb27e11c38a84b9478 (patch)
tree86866919963a36c9e23bd529409f2eb62290cb82 /queries
parentbot(lockfile): update cpp, cuda, glsl, hlsl, http, julia, norg, slang, unison, v (diff)
downloadnvim-treesitter-2a95ff14764af20d32ec1edb27e11c38a84b9478.tar
nvim-treesitter-2a95ff14764af20d32ec1edb27e11c38a84b9478.tar.gz
nvim-treesitter-2a95ff14764af20d32ec1edb27e11c38a84b9478.tar.bz2
nvim-treesitter-2a95ff14764af20d32ec1edb27e11c38a84b9478.tar.lz
nvim-treesitter-2a95ff14764af20d32ec1edb27e11c38a84b9478.tar.xz
nvim-treesitter-2a95ff14764af20d32ec1edb27e11c38a84b9478.tar.zst
nvim-treesitter-2a95ff14764af20d32ec1edb27e11c38a84b9478.zip
feat(wit): Add wit parser (#6428)
feat: Add injections.scm fix: reverse order of matching Co-authored-by: 再生花 <hoangtun0810@gmail.com> fix: lua match for functions doc: Resolve conflict fix: Amend incorrect alphabetical order
Diffstat (limited to 'queries')
-rw-r--r--queries/wit/highlights.scm81
-rw-r--r--queries/wit/injections.scm5
2 files changed, 86 insertions, 0 deletions
diff --git a/queries/wit/highlights.scm b/queries/wit/highlights.scm
new file mode 100644
index 000000000..237858ba2
--- /dev/null
+++ b/queries/wit/highlights.scm
@@ -0,0 +1,81 @@
+; Comments
+(line_comment) @comment
+
+(block_comment) @comment
+
+; Primitive Types
+[
+ "bool"
+ "s8"
+ "s16"
+ "s32"
+ "s64"
+ "u8"
+ "u16"
+ "u32"
+ "u64"
+ "float32"
+ "float64"
+ "char"
+ "string"
+ ; Container Types
+ "list"
+ "tuple"
+ "option"
+ "result"
+] @type.builtin
+
+"func" @keyword.function
+
+; Keywords for file structure and components
+[
+ "record"
+ "enum"
+ "variant"
+ "flags"
+ "resource"
+] @keyword.type
+
+; Keywords for importing and exporting
+[
+ "package"
+ "world"
+ "use"
+ "import"
+] @keyword.import
+
+; Resource Keywords
+"static" @keyword.modifier
+
+; Named Types (Capitalized identifiers)
+((identifier) @type
+ (#match? @type "^[A-Z]"))
+
+((identifier) @variable
+ (#match? @variable "^[a-z_][a-zA-Z0-9_]*$"))
+
+; Constants (UPPER_CASE names and Enums)
+((identifier) @constant
+ (#match? @constant "^[A-Z][A-Z0-9_]+$"))
+
+; Functions and Methods (lowercase names followed by parentheses)
+((identifier) @function
+ (#match? @function "^[a-z_][a-zA-Z0-9_]*%("))
+
+; Punctuation
+[
+ ";"
+ ":"
+ "->"
+] @punctuation.special
+
+; Delimiters
+"," @punctuation.delimiter
+
+; Brackets
+[
+ "{"
+ "}"
+ "("
+ ")"
+] @punctuation.bracket
diff --git a/queries/wit/injections.scm b/queries/wit/injections.scm
new file mode 100644
index 000000000..50b9b8fa9
--- /dev/null
+++ b/queries/wit/injections.scm
@@ -0,0 +1,5 @@
+((line_comment) @comment
+ (#set! injection.language "comment"))
+
+((block_comment) @comment
+ (#set! injection.language "comment"))