Subject: bug#62371: [PATCH] Fix go-ts-mode incorrect docstring inserted for methods

From: Eli Zaretskii <[email-masked]>
Date: Sun, 26 Mar 2023 07:34:00 +0300

> Date: Sat, 25 Mar 2023 19:37:17 +0000
> From: Randy Taylor <[email-masked]>
> Cc: Evgeni Kolev <[email-masked]>, Dmitry Gutov <[email-masked]>, Yuan Fu <[email-masked]>, [email-masked]
> 
> On Saturday, March 25th, 2023 at 08:17, Eli Zaretskii <[email-masked]> wrote:
> > 
> > > From: Evgeni Kolev [email-masked]
> > 
> > > Date: Wed, 22 Mar 2023 10:05:56 +0200
> > > 
> > > 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).
> > 
> > 
> > Thanks.
> > 
> > Dmitry, Yuan, Randy: any comments?
> 
> I guess my email yesterday didn't make it through or got missed?

It didn't.  But gnu.org had severe DNS problems all day yesterday, so
many email messages were delivered with a long delay.  I wrote the
above before I saw your response.

> It looks good to me, feel free to install.

I tried, but it failed to apply.  Evgeni, could you please resubmit,
relative to the emacs-29 branch?