aboutsummaryrefslogtreecommitdiffstats
path: root/queries/java
diff options
context:
space:
mode:
Diffstat (limited to 'queries/java')
-rw-r--r--queries/java/highlights.scm146
-rw-r--r--queries/java/locals.scm8
2 files changed, 154 insertions, 0 deletions
diff --git a/queries/java/highlights.scm b/queries/java/highlights.scm
new file mode 100644
index 000000000..398cfe13f
--- /dev/null
+++ b/queries/java/highlights.scm
@@ -0,0 +1,146 @@
+; Methods
+
+(method_declaration
+ name: (identifier) @function.method)
+(method_invocation
+ name: (identifier) @function.method)
+(super) @function.builtin
+
+; Annotations
+
+(annotation
+ name: (identifier) @attribute)
+(marker_annotation
+ name: (identifier) @attribute)
+
+"@" @operator
+
+; Types
+
+(interface_declaration
+ name: (identifier) @type)
+(class_declaration
+ name: (identifier) @type)
+(enum_declaration
+ name: (identifier) @type)
+
+((field_access
+ object: (identifier) @type)
+ (#match? @type "^[A-Z]"))
+((scoped_identifier
+ scope: (identifier) @type)
+ (#match? @type "^[A-Z]"))
+
+(constructor_declaration
+ name: (identifier) @type)
+
+(type_identifier) @type
+(boolean_type) @type.builtin
+(integral_type) @type.builtin
+(floating_point_type) @type.builtin
+(floating_point_type) @type.builtin
+(void_type) @type.builtin
+
+; Variables
+
+((identifier) @constant
+ (#match? @constant "^_*[A-Z][A-Z\d_]+"))
+
+(identifier) @variable
+
+(this) @variable.builtin
+
+; Literals
+
+(hex_integer_literal) @number
+(decimal_integer_literal) @number
+(octal_integer_literal) @number
+(decimal_floating_point_literal) @number
+(hex_floating_point_literal) @number
+(character_literal) @string
+(string_literal) @string
+(null_literal) @constant.builtin
+
+(comment) @comment
+
+[
+(true)
+(false)
+] @boolean
+
+; Keywords
+
+[
+"abstract"
+"assert"
+"break"
+"catch"
+"class"
+"continue"
+"default"
+"do"
+"enum"
+"exports"
+"extends"
+"final"
+"finally"
+"implements"
+"instanceof"
+"interface"
+"module"
+"native"
+"new"
+"open"
+"opens"
+"package"
+"private"
+"protected"
+"provides"
+"public"
+"requires"
+"return"
+"static"
+"strictfp"
+"synchronized"
+"throw"
+"throws"
+"to"
+"transient"
+"transitive"
+"try"
+"uses"
+"volatile"
+"with"
+] @keyword
+
+; Conditionals
+
+[
+"if"
+"else"
+"switch"
+"case"
+] @conditional
+
+;
+
+[
+"for"
+"while"
+] @repeat
+
+;
+
+"import" @include
+
+; Punctuation
+
+";" @punctuation.delimiter
+"." @punctuation.delimiter
+"," @punctuation.delimiter
+"[" @punctuation.bracket
+"]" @punctuation.bracket
+"{" @punctuation.bracket
+"}" @punctuation.bracket
+"(" @punctuation.bracket
+")" @punctuation.bracket
diff --git a/queries/java/locals.scm b/queries/java/locals.scm
new file mode 100644
index 000000000..9044c98d7
--- /dev/null
+++ b/queries/java/locals.scm
@@ -0,0 +1,8 @@
+(class_declaration
+ name: (identifier) @name) @class
+
+(method_declaration
+ name: (identifier) @name) @method
+
+(method_invocation
+ name: (identifier) @name) @call