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)

Documentation

Return the defun name of NODE.

Return nil if there is no name or if NODE is not a defun node.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/go-ts-mode.el.gz
(defun go-ts-mode--defun-name (node)
  "Return the defun name of NODE.
Return nil if there is no name or if NODE is not a defun node."
  (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"))
            (type-node (treesit-search-subtree receiver-node "type_identifier"))
            (name-node (treesit-node-child-by-field-name node "name")))
       (concat
        "(" (treesit-node-text type-node) ")."
        (treesit-node-text name-node))))
    ("type_declaration"
     (treesit-node-text
      (treesit-node-child-by-field-name
       (treesit-node-child node 0 t) "name")
      t))))