The docstring inserted with go-ts-mode's C-c C-d was incorrectly prefixed with the receiver "(myStruct).": // (myStruct).act func (m *myStruct) act () {...} The above docstring is not correct because the receiver "myStruct" should not be in the docstring. The issue is caused by imenu and go-ts-mode--defun-name using the same code to determine the defun name. Instead, they should produce different results - imenu should show the "myStruct" prefix, but the docstring should not. This commit fixes the incorrect behavior by introducing an optional SKIP-PREFIX parameter to (go-ts-mode--defun-name). Pressing C-c C-d now inserts just the method name: // act func (m *myStruct) act () {...} * lisp/progmodes/go-ts-mode.el (go-ts-mode--defun-name): New optional parameter SKIP-PREFIX. (go-ts-mode-docstring): Call (go-ts-mode--defun-name t) instead of (treesit-defun-name).