aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/groovy
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/groovy
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/groovy')
-rw-r--r--runtime/queries/groovy/folds.scm6
-rw-r--r--runtime/queries/groovy/highlights.scm269
-rw-r--r--runtime/queries/groovy/indents.scm35
-rw-r--r--runtime/queries/groovy/injections.scm5
-rw-r--r--runtime/queries/groovy/locals.scm6
5 files changed, 321 insertions, 0 deletions
diff --git a/runtime/queries/groovy/folds.scm b/runtime/queries/groovy/folds.scm
new file mode 100644
index 000000000..354861a61
--- /dev/null
+++ b/runtime/queries/groovy/folds.scm
@@ -0,0 +1,6 @@
+[
+ (argument_list)
+ (closure)
+ (list)
+ (map)
+] @fold
diff --git a/runtime/queries/groovy/highlights.scm b/runtime/queries/groovy/highlights.scm
new file mode 100644
index 000000000..4504e16e2
--- /dev/null
+++ b/runtime/queries/groovy/highlights.scm
@@ -0,0 +1,269 @@
+[
+ "!instanceof"
+ "assert"
+ "extends"
+ "instanceof"
+ "package"
+] @keyword
+
+"class" @keyword.type
+
+[
+ "!in"
+ "as"
+ "in"
+] @keyword.operator
+
+[
+ "case"
+ "default"
+ "else"
+ "if"
+ "switch"
+] @keyword.conditional
+
+[
+ "catch"
+ "finally"
+ "try"
+] @keyword.exception
+
+"def" @keyword.function
+
+"import" @keyword.import
+
+[
+ "for"
+ "while"
+ (break)
+ (continue)
+] @keyword.repeat
+
+"return" @keyword.return
+
+[
+ "true"
+ "false"
+] @boolean
+
+(null) @constant.builtin
+
+"this" @variable.builtin
+
+[
+ "int"
+ "char"
+ "short"
+ "long"
+ "boolean"
+ "float"
+ "double"
+ "void"
+] @type.builtin
+
+[
+ "final"
+ "private"
+ "protected"
+ "public"
+ "static"
+ "synchronized"
+] @keyword.modifier
+
+(comment) @comment @spell
+
+(shebang) @keyword.directive
+
+(string) @string
+
+(string
+ (escape_sequence) @string.escape)
+
+(string
+ (interpolation
+ "$" @punctuation.special))
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+[
+ ":"
+ ","
+ "."
+] @punctuation.delimiter
+
+(number_literal) @number
+
+(identifier) @variable
+
+((identifier) @constant
+ (#match? @constant "^[A-Z][A-Z_]+"))
+
+[
+ "%"
+ "*"
+ "/"
+ "+"
+ "-"
+ "<<"
+ ">>"
+ ">>>"
+ ".."
+ "..<"
+ "<..<"
+ "<.."
+ "<"
+ "<="
+ ">"
+ ">="
+ "=="
+ "!="
+ "<=>"
+ "==="
+ "!=="
+ "=~"
+ "==~"
+ "&"
+ "^"
+ "|"
+ "&&"
+ "||"
+ "?:"
+ "+"
+ "*"
+ ".&"
+ ".@"
+ "?."
+ "*."
+ "*"
+ "*:"
+ "++"
+ "--"
+ "!"
+] @operator
+
+(wildcard_import) @character.special
+
+(string
+ "/" @string)
+
+(ternary_op
+ ([
+ "?"
+ ":"
+ ]) @keyword.conditional.ternary)
+
+(map
+ (map_item
+ key: (identifier) @variable.parameter))
+
+(parameter
+ type: (identifier) @type
+ name: (identifier) @variable.parameter)
+
+(generic_param
+ name: (identifier) @variable.parameter)
+
+(declaration
+ type: (identifier) @type)
+
+(function_definition
+ type: (identifier) @type)
+
+(function_declaration
+ type: (identifier) @type)
+
+(class_definition
+ name: (identifier) @type)
+
+(class_definition
+ superclass: (identifier) @type)
+
+(generic_param
+ superclass: (identifier) @type)
+
+(type_with_generics
+ (identifier) @type)
+
+(type_with_generics
+ (generics
+ (identifier) @type))
+
+(generics
+ [
+ "<"
+ ">"
+ ] @punctuation.bracket)
+
+(generic_parameters
+ [
+ "<"
+ ">"
+ ] @punctuation.bracket)
+
+; TODO: Class literals with PascalCase
+(declaration
+ "=" @operator)
+
+(assignment
+ "=" @operator)
+
+(function_call
+ function: (identifier) @function)
+
+(function_call
+ function: (dotted_identifier
+ (identifier) @function .))
+
+(function_call
+ (argument_list
+ (map_item
+ key: (identifier) @variable.parameter)))
+
+(juxt_function_call
+ function: (identifier) @function)
+
+(juxt_function_call
+ function: (dotted_identifier
+ (identifier) @function .))
+
+(juxt_function_call
+ (argument_list
+ (map_item
+ key: (identifier) @variable.parameter)))
+
+(function_definition
+ function: (identifier) @function)
+
+(function_declaration
+ function: (identifier) @function)
+
+(annotation) @function.macro
+
+(annotation
+ (identifier) @function.macro)
+
+"@interface" @function.macro
+
+(groovy_doc) @comment.documentation @spell
+
+(groovy_doc
+ [
+ (groovy_doc_param)
+ (groovy_doc_throws)
+ (groovy_doc_tag)
+ ] @string.special @nospell)
+
+(groovy_doc
+ (groovy_doc_param
+ (identifier) @variable.parameter) @nospell)
+
+(groovy_doc
+ (groovy_doc_throws
+ (identifier) @type @nospell))
diff --git a/runtime/queries/groovy/indents.scm b/runtime/queries/groovy/indents.scm
new file mode 100644
index 000000000..ba3a2e844
--- /dev/null
+++ b/runtime/queries/groovy/indents.scm
@@ -0,0 +1,35 @@
+[
+ (closure)
+ (map)
+ (list)
+ (argument_list)
+ (parameter_list)
+ (for_parameters)
+] @indent.begin
+
+; (function_definition "(" @indent.begin)
+(closure
+ "}" @indent.end)
+
+(argument_list
+ ")" @indent.end)
+
+(for_parameters
+ ")" @indent.end)
+
+((for_loop
+ body: (_) @_body) @indent.begin
+ (#not-kind-eq? @_body "closure"))
+
+; TODO: while, try
+(list
+ "]" @indent.end)
+
+(map
+ "]" @indent.end)
+
+[
+ "}"
+ ")"
+ "]"
+] @indent.branch
diff --git a/runtime/queries/groovy/injections.scm b/runtime/queries/groovy/injections.scm
new file mode 100644
index 000000000..1c04c65fb
--- /dev/null
+++ b/runtime/queries/groovy/injections.scm
@@ -0,0 +1,5 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+((groovy_doc) @injection.content
+ (#set! injection.language "comment"))
diff --git a/runtime/queries/groovy/locals.scm b/runtime/queries/groovy/locals.scm
new file mode 100644
index 000000000..23cb5f0cb
--- /dev/null
+++ b/runtime/queries/groovy/locals.scm
@@ -0,0 +1,6 @@
+(function_definition) @local.scope
+
+(parameter
+ name: (identifier) @local.definition.parameter)
+
+(identifier) @local.reference