summaryrefslogtreecommitdiff
path: root/queries
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2020-05-31 23:32:08 +0200
committerStephan Seitz <stephan.seitz@fau.de>2020-06-07 12:39:58 +0200
commit04040c61c7c0c6da77dd87426c68f0afb8344b97 (patch)
tree42f9e53d35367d32217523f5428056620ba03712 /queries
parentcdc92965d65231e3034d1546f4e2fdddcbc9eaa0 (diff)
Add highlights.scm for Go
Diffstat (limited to 'queries')
-rw-r--r--queries/go/highlights.scm136
1 files changed, 136 insertions, 0 deletions
diff --git a/queries/go/highlights.scm b/queries/go/highlights.scm
new file mode 100644
index 00000000..ed046e6d
--- /dev/null
+++ b/queries/go/highlights.scm
@@ -0,0 +1,136 @@
+;; Forked from tree-sitter-go
+;; Copyright (c) 2014 Max Brunsfeld (The MIT License)
+
+;;
+; Function calls
+
+(call_expression
+ function: (identifier) @function)
+
+(call_expression
+ function: (selector_expression
+ field: (field_identifier) @method))
+
+; Function definitions
+
+(function_declaration
+ name: (identifier) @function)
+
+(method_declaration
+ name: (field_identifier) @method)
+
+; Identifiers
+
+(type_identifier) @type
+(field_identifier) @property
+(identifier) @variable
+
+(parameter_declaration (identifier) @parameter)
+(variadic_parameter_declaration (identifier) @parameter)
+
+((identifier) @constant
+ (#eq? @constant "_"))
+
+((identifier) @constant
+ (#match? @constant "^[A-Z][A-Z\\d_]+$"))
+
+; Operators
+
+"--" @operator
+"-" @operator
+"-=" @operator
+":=" @operator
+"!" @operator
+"!=" @operator
+"..." @operator
+"*" @operator
+"*" @operator
+"*=" @operator
+"/" @operator
+"/=" @operator
+"&" @operator
+"&&" @operator
+"&=" @operator
+"%" @operator
+"%=" @operator
+"^" @operator
+"^=" @operator
+"+" @operator
+"++" @operator
+"+=" @operator
+"<-" @operator
+"<" @operator
+"<<" @operator
+"<<=" @operator
+"<=" @operator
+"=" @operator
+"==" @operator
+">" @operator
+">=" @operator
+">>" @operator
+">>=" @operator
+"|" @operator
+"|=" @operator
+"||" @operator
+
+; Keywords
+
+"break" @keyword
+"case" @conditional
+"chan" @keyword
+"const" @keyword
+"continue" @keyword
+"default" @keyword
+"defer" @keyword
+"else" @conditional
+"fallthrough" @keyword
+"for" @repeat
+"func" @keyword
+"go" @keyword
+"goto" @keyword
+"if" @conditional
+"import" @include
+"interface" @keyword
+"map" @keyword
+"package" @include
+"range" @keyword
+"return" @keyword
+"select" @keyword
+"struct" @keyword
+"switch" @conditional
+"type" @keyword
+"var" @keyword
+
+; Delimiters
+
+"." @punctuation.delimiter
+"," @punctuation.delimiter
+":" @punctuation.delimiter
+";" @punctuation.delimiter
+
+"(" @punctuation.bracket
+")" @punctuation.bracket
+"{" @punctuation.bracket
+"}" @punctuation.bracket
+"[" @punctuation.bracket
+"]" @punctuation.bracket
+
+
+; Literals
+
+(interpreted_string_literal) @string
+(raw_string_literal) @string
+(rune_literal) @string
+(escape_sequence) @escape
+
+(int_literal) @number
+(float_literal) @float
+(imaginary_literal) @number
+
+(true) @boolean
+(false) @boolean
+(nil) @constant.builtin
+
+(comment) @comment
+
+(ERROR) @error