diff options
| -rw-r--r-- | lisp/progmodes/go-ts-mode.el | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lisp/progmodes/go-ts-mode.el b/lisp/progmodes/go-ts-mode.el index e6e8abd6445..fda6a36e42d 100644 --- a/lisp/progmodes/go-ts-mode.el +++ b/lisp/progmodes/go-ts-mode.el | |||
| @@ -255,9 +255,10 @@ | |||
| 255 | (if (treesit-ready-p 'go) | 255 | (if (treesit-ready-p 'go) |
| 256 | (add-to-list 'auto-mode-alist '("\\.go\\'" . go-ts-mode))) | 256 | (add-to-list 'auto-mode-alist '("\\.go\\'" . go-ts-mode))) |
| 257 | 257 | ||
| 258 | (defun go-ts-mode--defun-name (node) | 258 | (defun go-ts-mode--defun-name (node &optional skip-prefix) |
| 259 | "Return the defun name of NODE. | 259 | "Return the defun name of NODE. |
| 260 | Return nil if there is no name or if NODE is not a defun node." | 260 | Return nil if there is no name or if NODE is not a defun node. |
| 261 | Methods are prefixed with the receiver name, unless SKIP-PREFIX is t." | ||
| 261 | (pcase (treesit-node-type node) | 262 | (pcase (treesit-node-type node) |
| 262 | ("function_declaration" | 263 | ("function_declaration" |
| 263 | (treesit-node-text | 264 | (treesit-node-text |
| @@ -266,11 +267,10 @@ Return nil if there is no name or if NODE is not a defun node." | |||
| 266 | t)) | 267 | t)) |
| 267 | ("method_declaration" | 268 | ("method_declaration" |
| 268 | (let* ((receiver-node (treesit-node-child-by-field-name node "receiver")) | 269 | (let* ((receiver-node (treesit-node-child-by-field-name node "receiver")) |
| 269 | (type-node (treesit-search-subtree receiver-node "type_identifier")) | 270 | (receiver (treesit-node-text (treesit-search-subtree receiver-node "type_identifier"))) |
| 270 | (name-node (treesit-node-child-by-field-name node "name"))) | 271 | (method (treesit-node-text (treesit-node-child-by-field-name node "name")))) |
| 271 | (concat | 272 | (if skip-prefix method |
| 272 | "(" (treesit-node-text type-node) ")." | 273 | (concat "(" receiver ")." method)))) |
| 273 | (treesit-node-text name-node)))) | ||
| 274 | ("type_declaration" | 274 | ("type_declaration" |
| 275 | (treesit-node-text | 275 | (treesit-node-text |
| 276 | (treesit-node-child-by-field-name | 276 | (treesit-node-child-by-field-name |
| @@ -314,7 +314,7 @@ comment already exists, jump to it." | |||
| 314 | ;; go to top comment line | 314 | ;; go to top comment line |
| 315 | (while (go-ts-mode--comment-on-previous-line-p) | 315 | (while (go-ts-mode--comment-on-previous-line-p) |
| 316 | (forward-line -1)) | 316 | (forward-line -1)) |
| 317 | (insert "// " (treesit-defun-name defun-node)) | 317 | (insert "// " (go-ts-mode--defun-name defun-node t)) |
| 318 | (newline) | 318 | (newline) |
| 319 | (backward-char)))) | 319 | (backward-char)))) |
| 320 | 320 | ||