aboutsummaryrefslogtreecommitdiffstats
path: root/queries
diff options
context:
space:
mode:
authorAmaan Qureshi <amaanq12@gmail.com>2023-03-04 04:31:11 -0500
committerAmaan Qureshi <amaanq12@gmail.com>2023-03-04 05:08:18 -0500
commit376d74006fd8fff91431639136416ffca4458bfd (patch)
tree7793dc6be04b70cd73ec2507271023f393f4b7ff /queries
parentfeat(ecma): add tests for constants (diff)
downloadnvim-treesitter-376d74006fd8fff91431639136416ffca4458bfd.tar
nvim-treesitter-376d74006fd8fff91431639136416ffca4458bfd.tar.gz
nvim-treesitter-376d74006fd8fff91431639136416ffca4458bfd.tar.bz2
nvim-treesitter-376d74006fd8fff91431639136416ffca4458bfd.tar.lz
nvim-treesitter-376d74006fd8fff91431639136416ffca4458bfd.tar.xz
nvim-treesitter-376d74006fd8fff91431639136416ffca4458bfd.tar.zst
nvim-treesitter-376d74006fd8fff91431639136416ffca4458bfd.zip
feat: add cue
Diffstat (limited to 'queries')
-rw-r--r--queries/cue/folds.scm5
-rw-r--r--queries/cue/highlights.scm164
-rw-r--r--queries/cue/indents.scm21
-rw-r--r--queries/cue/injections.scm1
-rw-r--r--queries/cue/locals.scm34
5 files changed, 225 insertions, 0 deletions
diff --git a/queries/cue/folds.scm b/queries/cue/folds.scm
new file mode 100644
index 000000000..934b59e6f
--- /dev/null
+++ b/queries/cue/folds.scm
@@ -0,0 +1,5 @@
+[
+ (import_spec_list)
+ (field)
+ (string)
+] @fold
diff --git a/queries/cue/highlights.scm b/queries/cue/highlights.scm
new file mode 100644
index 000000000..c1f27fb8f
--- /dev/null
+++ b/queries/cue/highlights.scm
@@ -0,0 +1,164 @@
+; Includes
+
+[
+ "package"
+ "import"
+] @include
+
+; Namespaces
+
+(package_identifier) @namespace
+
+(import_spec ["." "_"] @punctuation.special)
+
+[
+ (attr_path)
+ (package_path)
+] @text.uri ;; In attributes
+
+; Attributes
+
+(attribute) @attribute
+
+; Conditionals
+
+"if" @conditional
+
+; Repeats
+
+[
+ "for"
+] @repeat
+
+(for_clause "_" @punctuation.special)
+
+; Keywords
+
+[
+ "let"
+] @keyword
+
+[
+ "in"
+] @keyword.operator
+
+; Operators
+
+[
+ "+"
+ "-"
+ "*"
+ "/"
+ "|"
+ "&"
+ "||"
+ "&&"
+ "=="
+ "!="
+ "<"
+ "<="
+ ">"
+ ">="
+ "=~"
+ "!~"
+ "!"
+ "="
+] @operator
+
+; Fields & Properties
+
+(field
+ (label
+ (identifier) @field))
+
+(selector_expression
+ (_)
+ (identifier) @property)
+
+; Functions
+
+(call_expression
+ function: (identifier) @function.call)
+(call_expression
+ function: (selector_expression
+ (_)
+ (identifier) @function.call))
+(call_expression
+ function: (builtin_function) @function.call)
+
+(builtin_function) @function.builtin
+
+; Variables
+
+(identifier) @variable
+
+; Types
+
+(primitive_type) @type.builtin
+
+((identifier) @type
+ (#match? @type "^(#|_#)"))
+
+[
+ (slice_type)
+ (pointer_type)
+] @type ;; In attributes
+
+; Punctuation
+
+[
+ ","
+ ":"
+] @punctuation.delimiter
+
+[ "{" "}" ] @punctuation.bracket
+
+[ "[" "]" ] @punctuation.bracket
+
+[ "(" ")" ] @punctuation.bracket
+
+[ "<" ">" ] @punctuation.bracket
+
+[
+ (ellipsis)
+ "?"
+] @punctuation.special
+
+; Literals
+
+(string) @string
+
+[
+ (escape_char)
+ (escape_unicode)
+] @string.escape
+
+(number) @number
+
+(float) @float
+
+(si_unit
+ (float)
+ (_) @symbol)
+
+(boolean) @boolean
+
+[
+ (null)
+ (top)
+ (bottom)
+] @constant.builtin
+
+; Interpolations
+
+(interpolation "\\(" @punctuation.special (_) ")" @punctuation.special) @none
+
+(interpolation "\\(" (identifier) @variable ")")
+
+; Commments
+
+(comment) @comment @spell
+
+; Errors
+
+(ERROR) @error
diff --git a/queries/cue/indents.scm b/queries/cue/indents.scm
new file mode 100644
index 000000000..731e69b79
--- /dev/null
+++ b/queries/cue/indents.scm
@@ -0,0 +1,21 @@
+[
+ (import_spec_list)
+ (field)
+] @indent
+
+[
+ "}"
+ "]"
+ ")"
+] @indent_end
+
+[ "{" "}" ] @branch
+
+[ "[" "]" ] @branch
+
+[ "(" ")" ] @branch
+
+[
+ (ERROR)
+ (comment)
+] @auto
diff --git a/queries/cue/injections.scm b/queries/cue/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/cue/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/cue/locals.scm b/queries/cue/locals.scm
new file mode 100644
index 000000000..b99a4fca8
--- /dev/null
+++ b/queries/cue/locals.scm
@@ -0,0 +1,34 @@
+; Scopes
+
+[
+ (source_file)
+ (field)
+ (for_clause)
+] @scope
+
+; References
+
+(identifier) @reference
+
+; Definitions
+
+(import_spec
+ path: (string) @definition.import)
+
+(field
+ (label
+ (identifier) @definition.field))
+
+(package_identifier) @definition.namespace
+
+(for_clause
+ (identifier) @definition.variable
+ (expression))
+
+(for_clause
+ (identifier)
+ (identifier) @definition.variable
+ (expression))
+
+(let_clause
+ (identifier) @definition.variable)