Function: go-ts-mode--defun-name
go-ts-mode--defun-name is a byte-compiled function defined in
go-ts-mode.el.gz.
Signature
(go-ts-mode--defun-name NODE &optional SKIP-PREFIX)
Documentation
Return the defun name of NODE.
Return nil if there is no name or if NODE is not a defun node. Methods are prefixed with the receiver name, unless SKIP-PREFIX is t.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/go-ts-mode.el.gz
(defun go-ts-mode--defun-name (node &optional skip-prefix)
"Return the defun name of NODE.
Return nil if there is no name or if NODE is not a defun node.
Methods are prefixed with the receiver name, unless SKIP-PREFIX is t."
(pcase (treesit-node-type node)
("function_declaration"
(treesit-node-text
(treesit-node-child-by-field-name
node "name")
t))
("method_declaration"
(let* ((receiver-node (treesit-node-child-by-field-name node "receiver"))
(receiver (treesit-node-text (treesit-search-subtree receiver-node "type_identifier")))
(method (treesit-node-text (treesit-node-child-by-field-name node "name"))))
(if skip-prefix method
(concat "(" receiver ")." method))))
("type_declaration"
(treesit-node-text
(treesit-node-child-by-field-name
(treesit-node-child node 0 t) "name")
t))))