diff --git a/languages.toml b/languages.toml index c34135244c46b..41a57d68f28ae 100644 --- a/languages.toml +++ b/languages.toml @@ -324,7 +324,7 @@ args = { mode = "local", processId = "{0}" } [[grammar]] name = "go" -source = { git = "https://github.com/tree-sitter/tree-sitter-go", rev = "05900faa3cdb5d2d8c8bd5e77ee698487e0a8611" } +source = { git = "https://github.com/tree-sitter/tree-sitter-go", rev = "64457ea6b73ef5422ed1687178d4545c3e91334a" } [[language]] name = "gomod" diff --git a/runtime/queries/go/highlights.scm b/runtime/queries/go/highlights.scm index 927bd95b06a7d..3a1a20a124f5d 100644 --- a/runtime/queries/go/highlights.scm +++ b/runtime/queries/go/highlights.scm @@ -19,6 +19,9 @@ (method_declaration name: (field_identifier) @function.method) +(method_spec + name: (field_identifier) @function.method) + ; Identifiers ((identifier) @constant (match? @constant "^[A-Z][A-Z\\d_]+$")) @@ -32,10 +35,19 @@ (match? @type.builtin "^(any|bool|byte|comparable|complex128|complex64|error|float32|float64|int|int16|int32|int64|int8|rune|string|uint|uint16|uint32|uint64|uint8|uintptr)$")) (type_identifier) @type +(type_spec + name: (type_identifier) @constructor) (field_identifier) @variable.other.member (identifier) @variable -(package_identifier) @variable +(package_identifier) @namespace + +(parameter_declaration (identifier) @variable.parameter) +(variadic_parameter_declaration (identifier) @variable.parameter) +(label_name) @label + +(const_spec + name: (identifier) @constant) ; Operators @@ -82,36 +94,57 @@ ; Keywords [ - "break" - "case" - "chan" - "const" - "continue" "default" - "defer" + "type" +] @keyword + +[ + "if" "else" - "fallthrough" + "switch" + "select" + "case" +] @keyword.control.conditional + +[ "for" - "func" - "go" - "goto" - "if" - "interface" - "map" "range" - "return" - "select" - "struct" - "switch" - "type" - "var" -] @keyword +] @keyword.control.repeat [ "import" "package" ] @keyword.control.import +[ + "return" + "continue" + "break" + "fallthrough" +] @keyword.control.return + +[ + "func" +] @keyword.function + +[ + "var" + "chan" + "interface" + "map" + "struct" +] @keyword.storage.type + +[ + "const" +] @keyword.storage.modifier + +[ + "defer" + "goto" + "go" +] @function.macro + ; Delimiters [ @@ -157,3 +190,7 @@ ] @constant.builtin (comment) @comment + +; Error + +(ERROR) @error