aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaan Qureshi <amaanq12@gmail.com>2023-02-21 02:13:55 -0500
committerObserverOfTime <chronobserver@disroot.org>2023-02-23 08:35:27 +0200
commit454876fc6d25a699178cb66aeda4014dedb765f3 (patch)
treecdb13470b93aa001c6dd5a445200c816dd386514
parentci: add release workflow for luarocks upload (#4109) (diff)
downloadnvim-treesitter-454876fc6d25a699178cb66aeda4014dedb765f3.tar
nvim-treesitter-454876fc6d25a699178cb66aeda4014dedb765f3.tar.gz
nvim-treesitter-454876fc6d25a699178cb66aeda4014dedb765f3.tar.bz2
nvim-treesitter-454876fc6d25a699178cb66aeda4014dedb765f3.tar.lz
nvim-treesitter-454876fc6d25a699178cb66aeda4014dedb765f3.tar.xz
nvim-treesitter-454876fc6d25a699178cb66aeda4014dedb765f3.tar.zst
nvim-treesitter-454876fc6d25a699178cb66aeda4014dedb765f3.zip
feat(capnp): improve queries
-rw-r--r--lockfile.json2
-rw-r--r--queries/capnp/highlights.scm44
-rw-r--r--queries/capnp/indents.scm34
-rw-r--r--queries/capnp/injections.scm1
-rw-r--r--queries/capnp/locals.scm90
5 files changed, 150 insertions, 21 deletions
diff --git a/lockfile.json b/lockfile.json
index 6e35a7187..87af984c8 100644
--- a/lockfile.json
+++ b/lockfile.json
@@ -33,7 +33,7 @@
"revision": "5b6c4d0d19d79b05c69ad752e11829910e3b4610"
},
"capnp": {
- "revision": "cb85cddfdf398530110c807ba046822dbaee6afb"
+ "revision": "9ed3aa8c212cddc94dca087cfe2c30d43234c867"
},
"chatito": {
"revision": "3baf22e7e507cedf15d1dbc03df8afa50a625586"
diff --git a/queries/capnp/highlights.scm b/queries/capnp/highlights.scm
index 1fe814b50..8dfb2ba91 100644
--- a/queries/capnp/highlights.scm
+++ b/queries/capnp/highlights.scm
@@ -1,4 +1,4 @@
-; Preproc (?)
+; Preproc
(unique_id) @preproc
(top_level_annotation_body) @preproc
@@ -13,18 +13,12 @@
(import_path) @string
-; Types
-
-(primitive_type) @type.builtin
+; Builtins
[
- "annotation"
- "enum"
- "group"
- "interface"
- "struct"
- "union"
-] @keyword
+ (primitive_type)
+ "List"
+] @type.builtin
; Typedefs
@@ -52,10 +46,6 @@
(param_identifier) @parameter
(return_identifier) @parameter
-; Variables
-
-(identifier) @variable
-
; Constants
(const_identifier) @constant
@@ -68,8 +58,6 @@
(enum_identifier) @type
(extend_type) @type
-(field_type) @type
-(generic_identifier) @type
(type_identifier) @type
; Attributes
@@ -86,6 +74,16 @@
; Keywords
+
+[
+ "annotation"
+ "enum"
+ "group"
+ "interface"
+ "struct"
+ "union"
+] @keyword
+
[
"extends"
"namespace"
@@ -95,11 +93,16 @@
; Literals
-(string_literal) @string
-(block_text) @string
+[
+ (string)
+ (concatenated_string)
+ (block_text)
+ (namespace)
+] @string
+
+(escape_sequence) @string.escape
(data_string) @string.special
-(namespace) @string.special
(number) @number
@@ -116,6 +119,7 @@
[
"*"
"$"
+ ":"
] @punctuation.special
["{" "}"] @punctuation.bracket
diff --git a/queries/capnp/indents.scm b/queries/capnp/indents.scm
new file mode 100644
index 000000000..362cc7da0
--- /dev/null
+++ b/queries/capnp/indents.scm
@@ -0,0 +1,34 @@
+[
+ (annotation_targets)
+ (const_list)
+ (enum)
+ (interface)
+ (implicit_generics)
+ (generics)
+ (group)
+ (method_parameters)
+ (named_return_types)
+ (struct)
+ (struct_shorthand)
+ (union)
+] @indent
+
+((struct_shorthand (property)) @aligned_indent
+ (#set! "delimiter" "()"))
+
+((const_list (const_value)) @aligned_indent
+ (#set! "delimiter" "[]"))
+
+[
+ "}"
+ ")"
+] @indent_end
+
+[ "{" "}" ] @branch
+
+[ "(" ")" ] @branch
+
+[
+ (ERROR)
+ (comment)
+] @auto
diff --git a/queries/capnp/injections.scm b/queries/capnp/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/capnp/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/capnp/locals.scm b/queries/capnp/locals.scm
new file mode 100644
index 000000000..fb436bf06
--- /dev/null
+++ b/queries/capnp/locals.scm
@@ -0,0 +1,90 @@
+[
+ (message)
+ (annotation_targets)
+ (const_list)
+ (enum)
+ (interface)
+ (implicit_generics)
+ (generics)
+ (group)
+ (method_parameters)
+ (named_return_types)
+ (struct)
+ (struct_shorthand)
+ (union)
+] @scope
+
+[
+ (extend_type)
+ (field_type)
+] @reference
+(custom_type (type_identifier) @reference)
+(custom_type
+ (generics
+ (generic_parameters
+ (generic_identifier) @reference)))
+
+(annotation_definition_identifier) @definition
+
+(const_identifier) @definition.constant
+
+(enum (enum_identifier) @definition.enum)
+
+[
+ (enum_member)
+ (field_identifier)
+] @definition.field
+
+(method_identifier) @definition.method
+
+(namespace) @definition.namespace
+
+[
+ (param_identifier)
+ (return_identifier)
+] @definition.parameter
+
+(group (type_identifier) @definition.type)
+
+(struct (type_identifier) @definition.type)
+
+(union (type_identifier) @definition.type)
+
+(interface (type_identifier) @definition.type)
+
+; Generics Related (don't know how to combine these)
+
+(struct
+ (generics
+ (generic_parameters
+ (generic_identifier) @definition.parameter)))
+
+(interface
+ (generics
+ (generic_parameters
+ (generic_identifier) @definition.parameter)))
+
+(method
+ (implicit_generics
+ (implicit_generic_parameters
+ (generic_identifier) @definition.parameter)))
+
+(method
+ (generics
+ (generic_parameters
+ (generic_identifier) @definition.parameter)))
+
+(annotation
+ (generics
+ (generic_parameters
+ (generic_identifier) @definition.type)))
+
+(replace_using
+ (generics
+ (generic_parameters
+ (generic_identifier) @definition.type)))
+
+(return_type
+ (generics
+ (generic_parameters
+ (generic_identifier) @definition.type)))