aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Vigouroux <39092278+vigoux@users.noreply.github.com>2020-06-15 20:26:09 +0200
committerGitHub <noreply@github.com>2020-06-15 20:26:09 +0200
commit79556b4155d84d22bc1c4a3b56c6407bdc9e2eff (patch)
treed43c68c417af0589875cda01e5b29091bd9be91c
parentMerge pull request #79 from steelsojka/feat/typescript-queries (diff)
parentFix types (diff)
downloadnvim-treesitter-79556b4155d84d22bc1c4a3b56c6407bdc9e2eff.tar
nvim-treesitter-79556b4155d84d22bc1c4a3b56c6407bdc9e2eff.tar.gz
nvim-treesitter-79556b4155d84d22bc1c4a3b56c6407bdc9e2eff.tar.bz2
nvim-treesitter-79556b4155d84d22bc1c4a3b56c6407bdc9e2eff.tar.lz
nvim-treesitter-79556b4155d84d22bc1c4a3b56c6407bdc9e2eff.tar.xz
nvim-treesitter-79556b4155d84d22bc1c4a3b56c6407bdc9e2eff.tar.zst
nvim-treesitter-79556b4155d84d22bc1c4a3b56c6407bdc9e2eff.zip
Merge pull request #85 from PitcherTear22/master
Add java support
-rw-r--r--README.md2
-rw-r--r--queries/java/highlights.scm172
-rw-r--r--queries/java/locals.scm8
3 files changed, 181 insertions, 1 deletions
diff --git a/README.md b/README.md
index 6a45ebee9..988af28bb 100644
--- a/README.md
+++ b/README.md
@@ -166,7 +166,7 @@ List of currently supported languages:
- [x] html (maintained by @TravonteD)
- [ ] csharp
- [ ] swift
-- [ ] java
+- [x] java
- [ ] ocaml
- [x] css (maintained by @TravonteD)
- [ ] julia
diff --git a/queries/java/highlights.scm b/queries/java/highlights.scm
new file mode 100644
index 000000000..9b4a9555b
--- /dev/null
+++ b/queries/java/highlights.scm
@@ -0,0 +1,172 @@
+; Methods
+
+(method_declaration
+ name: (identifier) @method)
+(method_invocation
+ name: (identifier) @method)
+(super) @function.builtin
+
+; Annotations
+
+(annotation
+ name: (identifier) @attribute)
+(marker_annotation
+ name: (identifier) @attribute)
+
+; Operators
+[
+"@"
+"+"
+"++"
+"-"
+"--"
+"&"
+"&&"
+"|"
+"||"
+"!="
+"=="
+"*"
+"/"
+"%"
+"<"
+"<="
+">"
+">="
+"="
+"-="
+"+="
+"*="
+"/="
+"%="
+] @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) @float
+(hex_floating_point_literal) @float
+(character_literal) @character
+(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