Update go-ts-mode to support latest tree-sitter-go grammar
tree-sitter-go changed method_spec to method_elem in
b82ab803d8
* lisp/progmodes/go-ts-mode.el:
(go-ts-mode--method-elem-supported-p): New function.
(go-ts-mode--font-lock-settings): Conditionally use method_elem or
method_spec in the query.
This commit is contained in:
parent
407e85ce13
commit
859b4227e3
1 changed files with 11 additions and 2 deletions
|
@ -112,6 +112,13 @@
|
|||
(ignore-errors
|
||||
(or (treesit-query-string "" '((iota) @font-lock-constant-face) 'go) t)))
|
||||
|
||||
;; tree-sitter-go changed method_spec to method_elem in
|
||||
;; https://github.com/tree-sitter/tree-sitter-go/commit/b82ab803d887002a0af11f6ce63d72884580bf33
|
||||
(defun go-ts-mode--method-elem-supported-p ()
|
||||
"Return t if Go grammar uses `method_elem' instead of `method_spec'."
|
||||
(ignore-errors
|
||||
(or (treesit-query-string "" '((method_elem) @cap) 'go) t)))
|
||||
|
||||
(defvar go-ts-mode--font-lock-settings
|
||||
(treesit-font-lock-rules
|
||||
:language 'go
|
||||
|
@ -136,11 +143,13 @@
|
|||
|
||||
:language 'go
|
||||
:feature 'definition
|
||||
'((function_declaration
|
||||
`((function_declaration
|
||||
name: (identifier) @font-lock-function-name-face)
|
||||
(method_declaration
|
||||
name: (field_identifier) @font-lock-function-name-face)
|
||||
(method_spec
|
||||
(,(if (go-ts-mode--method-elem-supported-p)
|
||||
'method_elem
|
||||
'method_spec)
|
||||
name: (field_identifier) @font-lock-function-name-face)
|
||||
(field_declaration
|
||||
name: (field_identifier) @font-lock-property-name-face)
|
||||
|
|
Loading…
Add table
Reference in a new issue