GNU bug report logs - #61368
[PATCH] Extend go-ts-mode with support for pre-filling return statements

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Evgeni Kolev <evgenysw@HIDDEN>; Keywords: patch; dated Wed, 8 Feb 2023 15:29:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 15 Jan 2024 11:41:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 15 06:41:05 2024
Received: from localhost ([127.0.0.1]:44818 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rPLKz-0003Mt-IN
	for submit <at> debbugs.gnu.org; Mon, 15 Jan 2024 06:41:05 -0500
Received: from mail-lj1-x235.google.com ([2a00:1450:4864:20::235]:60448)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1rPLKx-0003MF-8t
 for 61368 <at> debbugs.gnu.org; Mon, 15 Jan 2024 06:41:03 -0500
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-2ccec119587so105020141fa.0
 for <61368 <at> debbugs.gnu.org>; Mon, 15 Jan 2024 03:41:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1705318857; x=1705923657; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=p4VRGFP0iYG5v3/0Y7lTCdnDAjEbav7Z4k+X7jG1vGo=;
 b=N8sDjSeNmvc6/9SBCncAjk+uhQ7x0FgjGhBNo+zbTqdkSrvci3uz4Pkw9wqY2bchfg
 hcvUD6Ybpd4pZ6LCzE4wWquKIoNli/2mv4Py0EW/KnU3rVo1PSbsII2zSvDPODMujmP5
 s526Sx92ix2uB5waVIOBx64d/ZK4c/Sv3TSyyhk7CTCAvVauiBLg+Fnd2nLHKYz1HoN6
 +0qNvWChQd7vBV2/SO+m5/7TA1CtPWcK2cFs0zQWP71fZbMKPKkwzctBzn8O5gpyNA88
 kzTXGWOHz0GCskN7t9TuQ9x/Y/c9VNm0dkaeq7uZiMOlInrNTjKoefeCHeO/HudHY0Z3
 6eKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1705318857; x=1705923657;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=p4VRGFP0iYG5v3/0Y7lTCdnDAjEbav7Z4k+X7jG1vGo=;
 b=aK09zLT5tGPueJLlvld42+dsu6JUS9XaEh80UBIq1XxaXrSnKI50qY5q8F/IVqVGUX
 7prCvsF8pPpBdyDE7p115Gd7wveyGRsIvI4zCmvw1NIH3XJasWD1pPopOk4zI2rnC9YJ
 H/bh1MhFOphVtneJgauYTG9s3Ely4lbtNN5fflDw0nRIz3ghyppoRAyXb2iSsOATzfNC
 wtLHCmB/Yw2Nz61978hmbrg9Ix19WLyYj7nSHJ4kvjyMajFFjSbAyPIRwGCZ3CutG9qh
 BsL/JGz2/mrUpfpkzItvUjuUGLS6db8rMhM7bZFoYPDKKP8Crehd8wiehYUhtLhFFoc1
 Px2A==
X-Gm-Message-State: AOJu0YxZY+lPaDIxEPtSDFZJUqvGAyyqwzoAc5Hvc6UGdaanT2mInXvr
 6C1Die8Q6xHkU8ZeN9ISsoEdwQ4I7jhlNUIYdqs=
X-Google-Smtp-Source: AGHT+IEDpMEFU+rle/U74z+YLwI6bP/KwSxzEi8a6i6XAxVC04MN4nPXar4jAhWaom70aFAoHGjilY2LSP1HH18KKdo=
X-Received: by 2002:a05:651c:104d:b0:2cd:46c2:774 with SMTP id
 x13-20020a05651c104d00b002cd46c20774mr2610912ljm.97.1705318857211; Mon, 15
 Jan 2024 03:40:57 -0800 (PST)
MIME-Version: 1.0
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 <83357flzys.fsf@HIDDEN>
 <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
 <CALDnm53sBt-o8txJ7ToZsA3BaFzYUVtnMLzPKz8wf0jKUROQPA@HIDDEN>
 <CAMCrgaWnYpHby+Kn2khq3OX2b80hbwgqXKmKa-MmpLS3q1xhyQ@HIDDEN>
 <83o7pov6li.fsf@HIDDEN>
 <CAMCrgaXeCmPNpEDkuO_zM_sxrSnD1VsruWyQ=HHiw8JOyvVj_A@HIDDEN>
 <CADwFkmnWoW=YFd_vuQ3+0cxftr06XKrFVZA2FbfYgYv+cwe08g@HIDDEN>
 <CAMCrgaWoX9vu4tAU7rbO9QjLjnz30O7JK6kANWsAaUjAhTsdQw@HIDDEN>
 <87ttnfvvmi.fsf@HIDDEN>
In-Reply-To: <87ttnfvvmi.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Date: Mon, 15 Jan 2024 11:40:45 +0000
Message-ID: <CALDnm51EjBEJiRS1kfDgDs0xvwAj=q+YGTNjx62YhXzj71Vphw@HIDDEN>
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
To: Theodor Thornhill <theo@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61368
Cc: Evgeni Kolev <evgenysw@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 61368 <at> debbugs.gnu.org, Stefan Kangas <stefankangas@HIDDEN>, dev@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Mon, Jan 15, 2024 at 8:39=E2=80=AFAM Theodor Thornhill <theo@HIDDEN=
o> wrote:
>
> Evgeni Kolev <evgenysw@HIDDEN> writes:
>
> > On Thu, Jan 11, 2024 at 12:43=E2=80=AFAM Stefan Kangas <stefankangas@gm=
ail.com> wrote:
> >>
> >> Evgeni Kolev <evgenysw@HIDDEN> writes:
> >>
> >> > Thank you, makes sense. I'll think about the different options and
> >> > come up with a proposal.
> >>
> >> Did you make any progress here?
> >
> > I have since come across tempo.el and reviewed its use in org-tempo.el.
> >
> > While tempo.el is a valid option, I still think yasnippet is a better a=
pproach.
> > However, yasnippet is still not used throughout emacs' core (other
> > than "light" uses
> > in eglot.el and python.el, and some faces in the themes).
> >
> > Please let me know in case a generic mechanism for adding snippets to m=
ajor
> > modes has been added - I might have missed it.
>
> Perhaps it's time to revisit the snippet.el that Joao has mentioned?

I've cleaned it up very minimally and put the most recent version here

https://github.com/joaotavora/snippet

It has unit tests which you can run with

/path/to/emacs -Q --batch -l snippet-tests.el -f ert-run-tests-batch-and-ex=
it

Not many docs docs, some docstrings, many TODOs.  Have a look.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 15 Jan 2024 08:39:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 15 03:39:11 2024
Received: from localhost ([127.0.0.1]:44660 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rPIUw-0000Ev-NZ
	for submit <at> debbugs.gnu.org; Mon, 15 Jan 2024 03:39:10 -0500
Received: from out-173.mta0.migadu.com ([91.218.175.173]:12192)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <theo@HIDDEN>) id 1rPIUu-0000Ek-HP
 for 61368 <at> debbugs.gnu.org; Mon, 15 Jan 2024 03:39:09 -0500
X-Report-Abuse: Please report any abuse attempt to abuse@HIDDEN and
 include these headers.
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thornhill.no;
 s=key1; t=1705307945;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references;
 bh=MhGo9RM/tj7NDEhZI0VxnTyVHsLyoh3VH2eXcqe2qfo=;
 b=ZP1XRvBVJ95r14kVAIJNzYsCGgwmid1celSP9I9JfXpwBXpXr65udZ3MLoIuD6Vah4ytCi
 TkIdMDq8+tbQfAzwm0VFDY0KT627ts3URHnsa9Hq3vVf6DejLrF4gIgng3N+hyHmHKC/3J
 9wpsLQF9uMk+0PPD0xXHi+pGpE8HJ6waNlTECcXD5QPkMxRCMLdxgyQ1ycpKediwKMpfwq
 rvsSz+CXd4MKBvhjlEtAxhoGTOnHlLusqbAa2m0uPQH/T3ir5YWvZwGUHxES6m3Joxwc0q
 9AyscYTvvgd/xYC0i8+exG+EdudB3eNEVzwp0y0lBsiullB28a/6Nd+HU/n6kQ==
From: Theodor Thornhill <theo@HIDDEN>
To: Evgeni Kolev <evgenysw@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for
 pre-filling return statements
In-Reply-To: <CAMCrgaWoX9vu4tAU7rbO9QjLjnz30O7JK6kANWsAaUjAhTsdQw@HIDDEN>
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 <83357flzys.fsf@HIDDEN>
 <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
 <CALDnm53sBt-o8txJ7ToZsA3BaFzYUVtnMLzPKz8wf0jKUROQPA@HIDDEN>
 <CAMCrgaWnYpHby+Kn2khq3OX2b80hbwgqXKmKa-MmpLS3q1xhyQ@HIDDEN>
 <83o7pov6li.fsf@HIDDEN>
 <CAMCrgaXeCmPNpEDkuO_zM_sxrSnD1VsruWyQ=HHiw8JOyvVj_A@HIDDEN>
 <CADwFkmnWoW=YFd_vuQ3+0cxftr06XKrFVZA2FbfYgYv+cwe08g@HIDDEN>
 <CAMCrgaWoX9vu4tAU7rbO9QjLjnz30O7JK6kANWsAaUjAhTsdQw@HIDDEN>
Date: Mon, 15 Jan 2024 09:39:01 +0100
Message-ID: <87ttnfvvmi.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Migadu-Flow: FLOW_OUT
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61368
Cc: dev@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, joaotavora@HIDDEN,
 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Evgeni Kolev <evgenysw@HIDDEN> writes:

> On Thu, Jan 11, 2024 at 12:43=E2=80=AFAM Stefan Kangas <stefankangas@gmai=
l.com> wrote:
>>
>> Evgeni Kolev <evgenysw@HIDDEN> writes:
>>
>> > Thank you, makes sense. I'll think about the different options and
>> > come up with a proposal.
>>
>> Did you make any progress here?
>
> I have since come across tempo.el and reviewed its use in org-tempo.el.
>
> While tempo.el is a valid option, I still think yasnippet is a better app=
roach.
> However, yasnippet is still not used throughout emacs' core (other
> than "light" uses
> in eglot.el and python.el, and some faces in the themes).
>
> Please let me know in case a generic mechanism for adding snippets to maj=
or
> modes has been added - I might have missed it.

Perhaps it's time to revisit the snippet.el that Joao has mentioned?

Theo




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 15 Jan 2024 08:22:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 15 03:22:22 2024
Received: from localhost ([127.0.0.1]:44651 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rPIEg-0005aS-2d
	for submit <at> debbugs.gnu.org; Mon, 15 Jan 2024 03:22:22 -0500
Received: from mail-qt1-x82c.google.com ([2607:f8b0:4864:20::82c]:47584)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <evgenysw@HIDDEN>) id 1rPIEe-0005aC-Dt
 for 61368 <at> debbugs.gnu.org; Mon, 15 Jan 2024 03:22:20 -0500
Received: by mail-qt1-x82c.google.com with SMTP id
 d75a77b69052e-427a3887483so56040401cf.3
 for <61368 <at> debbugs.gnu.org>; Mon, 15 Jan 2024 00:22:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1705306935; x=1705911735; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=mhZyo4wvk/wY9WBX3mDTetYKzyHElbGztjoL68jdixM=;
 b=dxgPiB/p34lmxS018+6QlJkOWqKQBf8gjez+8nbzhgTzZaTJjSPlkd/18/+QJbshkC
 cASG29aczb08v5B0R8PuF3NJoIRaqKLXXlifHxsaX9pN6PGSrb6z+wmLSrwra0qTUibl
 7KBRPnPYjUNpaWEnwA0gnwFBC3wQ7QR+qdYC54UXiHOhlBnyen9EGnMxyGrdnd4XOzEl
 9D9yYE0ujs059wF8zK9CiBQOGgN/Bi1n/Ao45cgXd+3ZB6692By4Jtwpp5mwwnks9XBL
 mpf15zlAn9Ok/b06z8xIAiQ3nruGL3kMzbxaGd8YIsths4B/e7vuPkYs9LHZtgJScwAh
 fLrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1705306935; x=1705911735;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=mhZyo4wvk/wY9WBX3mDTetYKzyHElbGztjoL68jdixM=;
 b=T2ZKjZIA9/2mevfaNIvSMsik4ANeKaM9Rpv5VzoOmV4kl1DBh5m01bmhufPPWBMd1/
 2//3fUT6wOImff4TMXUErqpGfpizstO398V0pp9gE0Oo210ZudpYeAwWTwcQq/DNtT7C
 p7F2vpkgi0W5G+3wLlFnQUI8CAIur5zuIQ0E87MXlDf+CEdA7G5uf76tGGI27Ie9Lyny
 7Szut3MIlp6ZuCqGgHnZjZ5SxK3nuirAsAXqAIW/twIg6Pl0lmEcq9iT9fH8dxR7IB/T
 6E2JH4MBI7KE6JgY5c46Lz/xYZJtXokrFSsqhQp1uPj6SKIxFs6li+x9ql9O/+Vwsi00
 HyXA==
X-Gm-Message-State: AOJu0YyDyxOd/cUXwkYgIYDVo2slfQe3mJm5Muz9QnHZepX+Sl+WRdFS
 0iiFjm2MeDlIGOjQ/YFcnX9dM3SYy7L8lK9GojA=
X-Google-Smtp-Source: AGHT+IE3cBeZzpvChErnVmK+/0R8/9r3FGlQ6r7Fi84h1R7CQcOCUVw18gbgji5KgyFvQiXxiU1Vdw5i8gRb89RPgSk=
X-Received: by 2002:ac8:5bd2:0:b0:429:bb77:39a6 with SMTP id
 b18-20020ac85bd2000000b00429bb7739a6mr7590875qtb.94.1705306935158; Mon, 15
 Jan 2024 00:22:15 -0800 (PST)
MIME-Version: 1.0
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 <83357flzys.fsf@HIDDEN>
 <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
 <CALDnm53sBt-o8txJ7ToZsA3BaFzYUVtnMLzPKz8wf0jKUROQPA@HIDDEN>
 <CAMCrgaWnYpHby+Kn2khq3OX2b80hbwgqXKmKa-MmpLS3q1xhyQ@HIDDEN>
 <83o7pov6li.fsf@HIDDEN>
 <CAMCrgaXeCmPNpEDkuO_zM_sxrSnD1VsruWyQ=HHiw8JOyvVj_A@HIDDEN>
 <CADwFkmnWoW=YFd_vuQ3+0cxftr06XKrFVZA2FbfYgYv+cwe08g@HIDDEN>
In-Reply-To: <CADwFkmnWoW=YFd_vuQ3+0cxftr06XKrFVZA2FbfYgYv+cwe08g@HIDDEN>
From: Evgeni Kolev <evgenysw@HIDDEN>
Date: Mon, 15 Jan 2024 10:21:49 +0200
Message-ID: <CAMCrgaWoX9vu4tAU7rbO9QjLjnz30O7JK6kANWsAaUjAhTsdQw@HIDDEN>
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
To: Stefan Kangas <stefankangas@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61368
Cc: dev@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, theo@HIDDEN,
 joaotavora@HIDDEN, 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Thu, Jan 11, 2024 at 12:43=E2=80=AFAM Stefan Kangas <stefankangas@gmail.=
com> wrote:
>
> Evgeni Kolev <evgenysw@HIDDEN> writes:
>
> > Thank you, makes sense. I'll think about the different options and
> > come up with a proposal.
>
> Did you make any progress here?

I have since come across tempo.el and reviewed its use in org-tempo.el.

While tempo.el is a valid option, I still think yasnippet is a better appro=
ach.
However, yasnippet is still not used throughout emacs' core (other
than "light" uses
in eglot.el and python.el, and some faces in the themes).

Please let me know in case a generic mechanism for adding snippets to major
modes has been added - I might have missed it.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 10 Jan 2024 22:43:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 10 17:43:23 2024
Received: from localhost ([127.0.0.1]:43508 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rNhIB-0002eA-8W
	for submit <at> debbugs.gnu.org; Wed, 10 Jan 2024 17:43:23 -0500
Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]:49202)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1rNhI9-0002dv-EK
 for 61368 <at> debbugs.gnu.org; Wed, 10 Jan 2024 17:43:21 -0500
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-2cd053d5683so57016351fa.2
 for <61368 <at> debbugs.gnu.org>; Wed, 10 Jan 2024 14:43:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1704926596; x=1705531396; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=syewRTeg/xulWC3rHLQgSwSUc12DL6iKxNU/O6sy9Sk=;
 b=Qun/g6l+ul4yc2/e0PqHDkGMF4O/xzfLFNxY00sHN5ilP8b14rwnlG4xM0ocvl3z8F
 M66WeQ1R81evPvOwVifFr+VhvyyzV1Fz513SHuV1HQvnsQSMDhxAGT9lz5i6zRWbSclz
 900S/fDdyyj4mSp/q4ObbgM9p+PgKVv8UhPtRByR+MbwqeBPcgC71f8B7m3+eDWaiusI
 VmZdfURtNl1b7CcOsxFhkSIEZizwdjz9wBC+/WC6ORvoofeRq/kClmWbNH4yhoBjnKhI
 R574T1+zrivdaJUrop3EVsJFqlt62/66kxQWwNOU3hkjfgUCBZFzw8vRgKg7bhnhYp4u
 cGsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1704926596; x=1705531396;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=syewRTeg/xulWC3rHLQgSwSUc12DL6iKxNU/O6sy9Sk=;
 b=mlQPvH/ss/7ehuHklwuyoREu81qv70bA/G8FEWwwenjkNVrVoqdl8LTV7PnZs26CFR
 ZJlL9XU+8KYDMZGlOs8vFPZjJBw4JRvTc7Dx2zbC1JfkXfI+BPnzmXfUqpu5Z+Yqjunz
 gO8R8RnQfkSVdd9DurQafCWyIYsrABNndapBD8BdIugowjqfiJxtYhAhoW8JkGMFusGQ
 mqJ+89jyyY7RJPUL2cYTOGDg2cZ7sG2lA83ia5JhST9fAGDfw5azTBvws3dwgyid4BvU
 35iTr5/X3ei8rcrccsj5/K43meEeOrBKa6lsn46iF9zsF/ZFEtdVwL7Dfiqy7k60f4vH
 vQQg==
X-Gm-Message-State: AOJu0YyKgTP+r39j7vEJZXCGbkqARURuh4kERQWw+OBIMlvEmxv+2OmN
 30rM5KJsirKWfTRIUkNgOOrZoVQd5hytiNTgB5c=
X-Google-Smtp-Source: AGHT+IEpzpqEbN+AN+fJTJ3hAUwrj6P3gW/6lPo2O/LJBoLSE30bq0sIYZW9CPoSK1FEpwwXcaadtEaieRIIBASis6U=
X-Received: by 2002:a2e:87c6:0:b0:2cd:52a5:88ec with SMTP id
 v6-20020a2e87c6000000b002cd52a588ecmr132189ljj.9.1704926596376; Wed, 10 Jan
 2024 14:43:16 -0800 (PST)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Wed, 10 Jan 2024 14:43:16 -0800
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <CAMCrgaXeCmPNpEDkuO_zM_sxrSnD1VsruWyQ=HHiw8JOyvVj_A@HIDDEN>
 (Evgeni Kolev's message of "Wed, 22 Feb 2023 16:36:43 +0200")
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 <83357flzys.fsf@HIDDEN>
 <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
 <CALDnm53sBt-o8txJ7ToZsA3BaFzYUVtnMLzPKz8wf0jKUROQPA@HIDDEN>
 <CAMCrgaWnYpHby+Kn2khq3OX2b80hbwgqXKmKa-MmpLS3q1xhyQ@HIDDEN>
 <83o7pov6li.fsf@HIDDEN>
 <CAMCrgaXeCmPNpEDkuO_zM_sxrSnD1VsruWyQ=HHiw8JOyvVj_A@HIDDEN>
MIME-Version: 1.0
Date: Wed, 10 Jan 2024 14:43:16 -0800
Message-ID: <CADwFkmnWoW=YFd_vuQ3+0cxftr06XKrFVZA2FbfYgYv+cwe08g@HIDDEN>
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
To: Evgeni Kolev <evgenysw@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 61368
Cc: dev@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, theo@HIDDEN,
 joaotavora@HIDDEN, 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Evgeni Kolev <evgenysw@HIDDEN> writes:

> Thank you, makes sense. I'll think about the different options and
> come up with a proposal.

Did you make any progress here?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 22 Feb 2023 14:37:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 22 09:37:18 2023
Received: from localhost ([127.0.0.1]:58438 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pUqFB-0004Iu-Tn
	for submit <at> debbugs.gnu.org; Wed, 22 Feb 2023 09:37:18 -0500
Received: from mail-qv1-f41.google.com ([209.85.219.41]:36462)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <evgenysw@HIDDEN>) id 1pUqF9-0004Ie-9I
 for 61368 <at> debbugs.gnu.org; Wed, 22 Feb 2023 09:37:16 -0500
Received: by mail-qv1-f41.google.com with SMTP id m4so9468934qvq.3
 for <61368 <at> debbugs.gnu.org>; Wed, 22 Feb 2023 06:37:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1677076629;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=2uaNHW4vrxgnbWOtIpAcvz+ktLU/Rcz7dNwIFNP0cVo=;
 b=RLiwzNM3wAgtuKpTzQv4BlIWUZgtjlhFanAaxZlchvocGob+ZbE7fqSKCAim2xkOFn
 iBXQftDJ+ufSUVobsCbD+g9B4/PaNCdzYtZ84C4sEINW2h+sTagLrqM8bXCKRDW4Xiv3
 FsRZ0CefVdlKnvLPrFDmPTpjXr3rdK32iNxZtczCJ+ppWIX9u2Px3Q12fuhy8L0DVkzS
 czwEmDN/H4+XCzpurIbTbGIiKSdVSjD0BhvO/LzOETFg8+UaD37aXwESO4YekzK9LigD
 +t5a+A9ReajuqyQD1tJZy4p+MCwozapGwO9VRXehGQ/flQFzwwUh+unFs1tzKdsJceHK
 KRIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1677076629;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=2uaNHW4vrxgnbWOtIpAcvz+ktLU/Rcz7dNwIFNP0cVo=;
 b=sXCaRooBYGh+LBtdkjENOZLGv/tfScKcpZamqLcMypfRDIJ5OjLV/CYA15yBKhsegz
 8NvI2TlAx7EGM4wjkXSUmofJiQ8cdinI3WcoGI6MbtMPXgQOx0fuj0ZsCxVPc7mCL/+d
 VakdOu+8E5h/px+OjHA/+gpmdcQzNV+O4FIZ8Or4kpxYRbP4E1O7mEiwVWs521Amr9hY
 tFW1FfFS3a6ExtfmKEICJsFXqyVeWzT8Iwrag2a5tZ09y67LF4HNpmSfA4QOueCAMhED
 7xCnqIg0HzfoJktIvDxTB7zsV9NQYiEK20cUZgs50b+d47TsBmRF2V0rgUoauZp0Bza1
 jcIQ==
X-Gm-Message-State: AO0yUKVK+NV/f2nyN2AX6zxI2jzxsdFizVr+4etScqDCrmrRKmpohnEL
 adeMPLC6EU+gjBO+KcWKouK0eHHI1/uFgiWgdqw=
X-Google-Smtp-Source: AK7set+PhiYpcDKzZ0tPfd11m5sepm77/UtWpGo7NblxS9s8flAg1HzT32j6qitERBd1rIr5xuDG2QLWrufSH0XRIrM=
X-Received: by 2002:a0c:ac48:0:b0:572:1d8b:aa42 with SMTP id
 m8-20020a0cac48000000b005721d8baa42mr77822qvb.61.1677076629641; Wed, 22 Feb
 2023 06:37:09 -0800 (PST)
MIME-Version: 1.0
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 <83357flzys.fsf@HIDDEN>
 <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
 <CALDnm53sBt-o8txJ7ToZsA3BaFzYUVtnMLzPKz8wf0jKUROQPA@HIDDEN>
 <CAMCrgaWnYpHby+Kn2khq3OX2b80hbwgqXKmKa-MmpLS3q1xhyQ@HIDDEN>
 <83o7pov6li.fsf@HIDDEN>
In-Reply-To: <83o7pov6li.fsf@HIDDEN>
From: Evgeni Kolev <evgenysw@HIDDEN>
Date: Wed, 22 Feb 2023 16:36:43 +0200
Message-ID: <CAMCrgaXeCmPNpEDkuO_zM_sxrSnD1VsruWyQ=HHiw8JOyvVj_A@HIDDEN>
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 61368
Cc: dev@HIDDEN, theo@HIDDEN, joaotavora@HIDDEN, 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Thank you, makes sense. I'll think about the different options and
come up with a proposal.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 20 Feb 2023 12:55:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 20 07:55:53 2023
Received: from localhost ([127.0.0.1]:50872 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pU5hw-0001pL-SV
	for submit <at> debbugs.gnu.org; Mon, 20 Feb 2023 07:55:53 -0500
Received: from eggs.gnu.org ([209.51.188.92]:56480)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pU5hv-0001p9-Cw
 for 61368 <at> debbugs.gnu.org; Mon, 20 Feb 2023 07:55:51 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pU5hp-0001QV-Mu; Mon, 20 Feb 2023 07:55:45 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=uX67UP7vFtikb7tMGZRpvdHqGfwCkstpsmY5cLxHGEE=; b=He2osKUy+UCKwAzIPl+q
 EqT5fDM+e1DB2WFym+bKzNmttlVaZ2E2dUzJJQLbUFvX4kZOPmjcJuTFtY2qXHFyGl0/KiPykwpjK
 L4gRz451kUxwS1DfEral35JtPzDUjXM/GVSRgOIpYTKV+SwWURW/DFKtBP1CAZ3GLC2QI3vWHPoab
 rhEN47O0J4IUysHVvbGHNXGTTB835Sao4nM+hG0xFQZRgGbXWyNZdasU34LG8+xK9Pcmg0NM3WzKF
 QQZZLAa2YSh/XETTW7nbNuDdt+Uzi3WwYLS9zmAsD39/OsIPxBZKiAICoZK5YTsZf2GqmvWa4/ktS
 AzYVGdfJVfxW6A==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pU5hp-0007pX-9L; Mon, 20 Feb 2023 07:55:45 -0500
Date: Mon, 20 Feb 2023 14:55:53 +0200
Message-Id: <83o7pov6li.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Evgeni Kolev <evgenysw@HIDDEN>
In-Reply-To: <CAMCrgaWnYpHby+Kn2khq3OX2b80hbwgqXKmKa-MmpLS3q1xhyQ@HIDDEN>
 (message from Evgeni Kolev on Mon, 20 Feb 2023 10:54:06 +0200)
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 <83357flzys.fsf@HIDDEN>
 <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
 <CALDnm53sBt-o8txJ7ToZsA3BaFzYUVtnMLzPKz8wf0jKUROQPA@HIDDEN>
 <CAMCrgaWnYpHby+Kn2khq3OX2b80hbwgqXKmKa-MmpLS3q1xhyQ@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 61368
Cc: dev@HIDDEN, theo@HIDDEN, joaotavora@HIDDEN, 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Evgeni Kolev <evgenysw@HIDDEN>
> Date: Mon, 20 Feb 2023 10:54:06 +0200
> Cc: 61368 <at> debbugs.gnu.org, Randy Taylor <dev@HIDDEN>, 
> 	Theodor Thornhill <theo@HIDDEN>
> 
> Thank you João for the input! I think something like this would make
> sense in go-ts-mode.el:
> ```
> (with-eval-after-load 'yasnippet
>   (yas-define-snippets 'go-ts-mode
>                        '(("return" (yas-expand-snippet
>                                     (go-ts-mode-return)))
>                          ("iferr" (yas-expand-snippet
>                                    (format "if err != nil {\n%s\n}"
>                                            (go-ts-mode-return)))))))
> ```
> 
> A custom variable go-ts-mode-want-yasnippet could be added to
> optionally prevent adding the snippets.
> 
> Eli, would you consider something like the code above acceptable as an
> alternative to an electric "return" mode?
> 
> Having optional yasnippet integration was also brought up by Theo in
> this message[1] and this one [2].
> 
> [1]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60805#11
> [2]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60805#17

IMO, if we are going to support yasnippet, we should do it in more
than just one mode.  So a short addition to just the go-ts-mode will
not do, and if we want to include stuff like that, it should be part
of a larger patch for Emacs 30.  Whether this is a good alternative
for some electricity is also a good topic for discussion: electric is
part of Emacs whereas yasnippet isn't, so there are advantages and
disadvantages to this proposal.

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 20 Feb 2023 08:54:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 20 03:54:40 2023
Received: from localhost ([127.0.0.1]:50472 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pU1wV-00014w-S8
	for submit <at> debbugs.gnu.org; Mon, 20 Feb 2023 03:54:40 -0500
Received: from mail-qv1-f53.google.com ([209.85.219.53]:44663)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <evgenysw@HIDDEN>) id 1pU1wU-00014k-Fn
 for 61368 <at> debbugs.gnu.org; Mon, 20 Feb 2023 03:54:38 -0500
Received: by mail-qv1-f53.google.com with SMTP id op8so908868qvb.11
 for <61368 <at> debbugs.gnu.org>; Mon, 20 Feb 2023 00:54:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=iUXc0cYiyraJ9KfL7jcP70rcTCjg6jHWhKlYC7YViWo=;
 b=piUPNe5SLiSfbGPeug+kyGYlcG94OJJzCDkdFv05iwZlIiq2uwAOBHca0MrYMxturQ
 LqfcBkQCQhuH98XRgTlMxL4seAseYMrJJCh4AqMAKd89KRUErJoX9PxE/jHCs+P8goiQ
 S0zWCuLUMgzLhq8Aj56gmS6gbv8eCDX9gox/23Ouxu10Dz0o951uzgsy3wsynK3scwe9
 YV1+BVdsPUFmXx/VjeRLKLP6ZcCCKdOeg0PSx1XyD0RH8eXesDbc4bwGw1nJbJlT1Swe
 lRsOe6VYW52QsqdeXdbQBHCmWEPUI07JP051t0qUY918dyd2tjo/TwM/g7Rz7EwoSiNs
 jH/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=iUXc0cYiyraJ9KfL7jcP70rcTCjg6jHWhKlYC7YViWo=;
 b=rko63ExtQhndXnM6hz3BjelVqrTkJVNmg+mH8RGsl5vExbn6NI7voMWQHqO6Z2kNjj
 c/azBtrbGVq5XzTCXaVgKlcG4X7tFGxxvHJSnKB4F0FS7Z6y+DGEV8Dtd2HEGZy7X+3D
 kjiDCW+UMkD5RqlJ6chg3YHPJuymGiHYbbp45O3NrnrFm6lneZIQlKL1N1NFIClk3mxF
 tCUntFOWx/u9hT18wT+5RYwa1QHGMDTvi9CTxzDAT2WhEDH0ZYiIEBQtbQYfR4XIVsy4
 8rmCrz3JYdB93fmEavr2HMdcVSxCp7rHmkklNZcWKshJpL7mxOtjKHezacOkaHsBVEDO
 WtsA==
X-Gm-Message-State: AO0yUKU275IfszsdX6Y5K6fUG7K23igW5JnJIWez2Yg50v0qv4EQ5oMz
 ySjm/xuq/PsL1R9qEiJfMjbfsKS5ICTbn71lipc=
X-Google-Smtp-Source: AK7set8i8AwW3sXGiW3N3qRrFrgFJOabMX6YePJsgDO7/A9rbFolFg/nAs+5UeuyzfplLbG04DgInv2X66ZWf3cZDtA=
X-Received: by 2002:ad4:4e88:0:b0:56e:9c1c:c64 with SMTP id
 dy8-20020ad44e88000000b0056e9c1c0c64mr33007qvb.6.1676883272966; Mon, 20 Feb
 2023 00:54:32 -0800 (PST)
MIME-Version: 1.0
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 <83357flzys.fsf@HIDDEN>
 <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
 <CALDnm53sBt-o8txJ7ToZsA3BaFzYUVtnMLzPKz8wf0jKUROQPA@HIDDEN>
In-Reply-To: <CALDnm53sBt-o8txJ7ToZsA3BaFzYUVtnMLzPKz8wf0jKUROQPA@HIDDEN>
From: Evgeni Kolev <evgenysw@HIDDEN>
Date: Mon, 20 Feb 2023 10:54:06 +0200
Message-ID: <CAMCrgaWnYpHby+Kn2khq3OX2b80hbwgqXKmKa-MmpLS3q1xhyQ@HIDDEN>
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, 
 Eli Zaretskii <eliz@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 61368
Cc: Randy Taylor <dev@HIDDEN>, Theodor Thornhill <theo@HIDDEN>,
 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Thank you Jo=C3=A3o for the input! I think something like this would make
sense in go-ts-mode.el:
```
(with-eval-after-load 'yasnippet
  (yas-define-snippets 'go-ts-mode
                       '(("return" (yas-expand-snippet
                                    (go-ts-mode-return)))
                         ("iferr" (yas-expand-snippet
                                   (format "if err !=3D nil {\n%s\n}"
                                           (go-ts-mode-return)))))))
```

A custom variable go-ts-mode-want-yasnippet could be added to
optionally prevent adding the snippets.

Eli, would you consider something like the code above acceptable as an
alternative to an electric "return" mode?

Having optional yasnippet integration was also brought up by Theo in
this message[1] and this one [2].

[1]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D60805#11
[2]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D60805#17




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 18 Feb 2023 12:15:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 18 07:15:06 2023
Received: from localhost ([127.0.0.1]:42722 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pTM7O-00027X-8e
	for submit <at> debbugs.gnu.org; Sat, 18 Feb 2023 07:15:06 -0500
Received: from mail-oi1-f174.google.com ([209.85.167.174]:35579)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pTM7M-00026l-PQ
 for 61368 <at> debbugs.gnu.org; Sat, 18 Feb 2023 07:15:05 -0500
Received: by mail-oi1-f174.google.com with SMTP id bp9so1349733oib.2
 for <61368 <at> debbugs.gnu.org>; Sat, 18 Feb 2023 04:15:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=w5EJA5zRniAjz5Wyb1cPrSgJCoM5U413AjH5fAql5Tc=;
 b=dqMEZzyS2LH+RK+oREuM0NSNeJ0sMX3/wrsOVinlCoGK77nKqCzS14zG5Bbg5gjV3v
 NkpD8aHmfaU4l68Y+YIbjDLiV3k4mPkE1gMkBDrBAZ/nByFAMSwypXo5fhlptc9o0vfI
 ylWfE9nvg/DI1xsFh8yJv0VpNoERonTNNCtkEcbprHB1WERWyDN2yU2Z4UWRMtXVXZXM
 +n80kuvStURAMqaenCj/SviRSMOT9w/JSH5aFaPiDZysPpIfO6f6rURrihs1ILCQROMS
 TFiUBssQoOksxgNui1ps3vkqLFojdXR7xcTMWWELY5SCLwx5ME6yBuVKC6eegSnHpP3/
 fz6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=w5EJA5zRniAjz5Wyb1cPrSgJCoM5U413AjH5fAql5Tc=;
 b=Hll+2COSTIZknaG9X3gt4WoxLKEI/5uWWYLQpr7srmJPJ3xWDR2SWfvkxMPHOw38Sq
 Lh9FUVyiKCzbJSyrqhiAMJocd/m0cwk4ANHJJ+bJl4u7mmQHdY0N1s+apPe93kxrQg87
 Msy8SIL5s6x7bcxxNSbH9q+jtRnCSt3z6nzZVN5/XePPhqs3RxgwiPhVr4ct8hEkEfFY
 K96KZ4L/STCQKWibo51onqdNdc5aTu4RN5RWgxpcCm8jHG2V1Mq2ujJAT5RciOa32wyQ
 2PzUR4YkZj3BByf0oFxmxqgrbornjdz/f+rCg6sB2DlLanGjLhe26v+EdSCwLsZZVd2C
 aaeA==
X-Gm-Message-State: AO0yUKUUAUYEuowgLZwT/F1VNP7+6uKiv0MtxPkyE0ilxVXldoxYLttu
 G8X5TmQJFediVdgzaotuWPwsqgWS515Puegy2+M=
X-Google-Smtp-Source: AK7set9hnKBJABGKy5s+KYhWPUu4yjjyvYTJxFH82g5+yyLAQaVgFh5qkosh5PKFVaWOmtMGPr0Sep5XSO/NhqfYyJw=
X-Received: by 2002:a05:6808:128b:b0:37b:9a3:136f with SMTP id
 a11-20020a056808128b00b0037b09a3136fmr11801oiw.6.1676722499126; Sat, 18 Feb
 2023 04:14:59 -0800 (PST)
MIME-Version: 1.0
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 <83357flzys.fsf@HIDDEN>
 <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
In-Reply-To: <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Date: Sat, 18 Feb 2023 12:14:49 +0000
Message-ID: <CALDnm53sBt-o8txJ7ToZsA3BaFzYUVtnMLzPKz8wf0jKUROQPA@HIDDEN>
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
To: Evgeni Kolev <evgenysw@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000f28c7d05f4f860df"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 61368
Cc: Randy Taylor <dev@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 Theodor Thornhill <theo@HIDDEN>, 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000f28c7d05f4f860df
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Feb 18, 2023, 11:46 Evgeni Kolev <evgenysw@HIDDEN> wrote:

> + Jo=C3=A3o, author of yasnippet.
>
> Hi, Jo=C3=A3o, I'd appreciate any suggestions you might have. I'm aiming =
to
> extend go-ts-mode with a snippet-like feature. go-ts-mode would be
> able to insert a "smart / context-aware" return statement. My question
> is - is there a way for major modes to provide yasnippet snippets? My
> understanding is the snippets are either created by each user
> individually, or distributed as a collection of snippets (e.g.
> yasnippet-snippets).


Snippets can be distributed as files, but that's not a very good way as I
see it today. One of the  reasons might be too leverage the TAB and menu
expansion of the yasnippet system. But probably you don't want this, and
snippets can also be defined programmatically, albeit not with a beautiful
language.

Are there any major modes which provide snippets
> (I wasn't able to find any in emacs' repo)?
>

That's because yasnippet is not part of the Emacs repo proper, i.e. the
"core". So adding snippets to major modes in the core would introduce into
the core a dependency on an non-core ELPA package.

Nevertheless, there are ways to conditionally provide functionality based
on whether the non-core package is detected.  A soft dependency. In my
opinion it makes sense for popular non-core packages: company,
markdown-mode, yasnippet, etc. Look at Eglot, for example.

Jo=C3=A3o

Jo=C3=A3o

--000000000000f28c7d05f4f860df
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D=
"gmail_attr">On Sat, Feb 18, 2023, 11:46 Evgeni Kolev &lt;<a href=3D"mailto=
:evgenysw@HIDDEN">evgenysw@HIDDEN</a>&gt; wrote:<br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">+ Jo=C3=A3o, author of yasnippet.<br>
<br>
Hi, Jo=C3=A3o, I&#39;d appreciate any suggestions you might have. I&#39;m a=
iming to<br>
extend go-ts-mode with a snippet-like feature. go-ts-mode would be<br>
able to insert a &quot;smart / context-aware&quot; return statement. My que=
stion<br>
is - is there a way for major modes to provide yasnippet snippets? My<br>
understanding is the snippets are either created by each user<br>
individually, or distributed as a collection of snippets (e.g.<br>
yasnippet-snippets).</blockquote></div></div><div dir=3D"auto"><br></div><d=
iv dir=3D"auto">Snippets can be distributed as files, but that&#39;s not a =
very good way as I see it today. One of the=C2=A0 reasons might be too leve=
rage the TAB and menu expansion of the yasnippet system. But probably you d=
on&#39;t want this, and snippets can also be defined programmatically, albe=
it not with a beautiful language.=C2=A0</div><div dir=3D"auto"><br></div><d=
iv dir=3D"auto"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote=
" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">A=
re there any major modes which provide snippets<br>
(I wasn&#39;t able to find any in emacs&#39; repo)?<br></blockquote></div><=
/div><div dir=3D"auto"><br></div><div dir=3D"auto">That&#39;s because yasni=
ppet is not part of the Emacs repo proper, i.e. the &quot;core&quot;. So ad=
ding snippets to major modes in the core would introduce into the core a de=
pendency on an non-core ELPA package.</div><div dir=3D"auto"><br></div><div=
 dir=3D"auto">Nevertheless, there are ways to conditionally provide functio=
nality based on whether the non-core package is detected.=C2=A0 A soft depe=
ndency. In my opinion it makes sense for popular non-core packages: company=
, markdown-mode, yasnippet, etc. Look at Eglot, for example.</div><div dir=
=3D"auto"><br></div><div dir=3D"auto">Jo=C3=A3o</div><div dir=3D"auto"><br>=
</div><div dir=3D"auto">Jo=C3=A3o</div></div>

--000000000000f28c7d05f4f860df--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 18 Feb 2023 11:46:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 18 06:46:39 2023
Received: from localhost ([127.0.0.1]:42670 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pTLfq-0001GD-VC
	for submit <at> debbugs.gnu.org; Sat, 18 Feb 2023 06:46:39 -0500
Received: from mail-qv1-f45.google.com ([209.85.219.45]:36595)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <evgenysw@HIDDEN>) id 1pTLfp-0001G1-QD
 for 61368 <at> debbugs.gnu.org; Sat, 18 Feb 2023 06:46:38 -0500
Received: by mail-qv1-f45.google.com with SMTP id jy21so1993817qvb.3
 for <61368 <at> debbugs.gnu.org>; Sat, 18 Feb 2023 03:46:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1676720792;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=5XmL9JNabLr/rnvO2UC0Uf6R15gxZ6H/9f5EnuQfLD0=;
 b=ickWjYOUICsBIdoykQGjP5cGV1jsqzwHK/NoUZyZzl0YoQl9agY+f58iLA1dNqZX1p
 9b47LVinjq/YAfY9hy0vIrb9EoxThbQH07KUHjnL1NR7ihx8iUz1+jVgSkwlpevTK3hC
 /hgNJPFuykzkJlTAf6nB/8sYSLiK8aMcCI61iZkXiPRLWEsPXGSTeBRWyMw71bCRoHiI
 c+lOq6c6ThaP4RBrcFWZ4yC8SlQLa9l3quzXXMOcyxJb/yJ7gdlHND0OPbVcEPFKlW1/
 SCzpJWtH6kXn4Kd8UtSneXUAb8vUfOupUgMX5q3MM8ClLwc7bcqatX3UsztDEqDaz9Fc
 WkbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1676720792;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=5XmL9JNabLr/rnvO2UC0Uf6R15gxZ6H/9f5EnuQfLD0=;
 b=3TOkmaAOW0KhZ/G5tijJNJ3r4HL1VO6DYGJB7a4lRW4V68Cui90Ok6eapI15TESKJL
 H5b9nDtoVauCQJtT92mmtwYvMZkBs2hu1571C9kTArA1l9iyeCWQvefVHCmA8QLSUmhJ
 nUml6k8qpIWESqhCUvbKIYGs47hIOearAphZfpgmQ87bALajzz9Vat6dl29K1wlPuRXe
 IskM05orAE2iQAp+rq/tKx2vfsPechEWQzHsgbTu8pGae+NMFftOb81/E50+pZR7eLzI
 KsOjGPnM/zSWGkn5UdwBgaL5m/RG9SEimqlgEhHd0/wzDDXWDuV9Elt0jJBHCTeKZb7L
 bm4Q==
X-Gm-Message-State: AO0yUKVhBXLzXHhWiFzbNo8B+JZb96AY9uhC8OcayYyxoSdSxZFyNWTk
 uFu0ZimAOtRZj55KEBNbP2tFCQMHjW8lzdsAjgLoAMIJ0rdEngKl
X-Google-Smtp-Source: AK7set/IYJK6bLCmuQszbvxkI3viWxSa6PwzsqF8HJ6PHD3ETZZj96X9YK9v/ItVtHTZcCQcDs/TMdlL6cg84JC4rEg=
X-Received: by 2002:a0c:dd8d:0:b0:56e:bb64:9907 with SMTP id
 v13-20020a0cdd8d000000b0056ebb649907mr66221qvk.61.1676720792161; Sat, 18 Feb
 2023 03:46:32 -0800 (PST)
MIME-Version: 1.0
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 <83357flzys.fsf@HIDDEN>
In-Reply-To: <83357flzys.fsf@HIDDEN>
From: Evgeni Kolev <evgenysw@HIDDEN>
Date: Sat, 18 Feb 2023 13:46:05 +0200
Message-ID: <CAMCrgaVHtNZ6vAyTfxdfXQYmE8TKQHJK-wKoc78YcF=eCygyTQ@HIDDEN>
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
To: Eli Zaretskii <eliz@HIDDEN>,
 =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000003611f805f4f7fb5f"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 61368
Cc: dev@HIDDEN, theo@HIDDEN, 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000003611f805f4f7fb5f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

+ Jo=C3=A3o, author of yasnippet.

Hi, Jo=C3=A3o, I'd appreciate any suggestions you might have. I'm aiming to
extend go-ts-mode with a snippet-like feature. go-ts-mode would be
able to insert a "smart / context-aware" return statement. My question
is - is there a way for major modes to provide yasnippet snippets? My
understanding is the snippets are either created by each user
individually, or distributed as a collection of snippets (e.g.
yasnippet-snippets). Are there any major modes which provide snippets
(I wasn't able to find any in emacs' repo)?

On Thu, Feb 9, 2023 at 3:40 PM Eli Zaretskii <eliz@HIDDEN> wrote:
> > Makes sense. I am familiar with electric-pair-mode. I see that it adds
> > a hook in post-self-insert-hook. Is your suggestion to do something
> > like this:
> > - add hook in post-self-insert-hook
> > - in the hook check if RET is typed after an "return"
> > - if yes, replace the "return" with the "context-aware return
> > statement", possibly using (yas-expand-snippet)
>
> Yes, something like that.  See electric.el for more examples.
>
> Electric modes are usually minor modes that let major modes customize
> them by setting variables.  Again, I think you will find examples in
> electric.el.

The attached patch now adds a (go-ts-electric-return-mode) which, when
enabled, replaces "return RET" with a context-aware return statement.
I used sh-script.el's (sh-electric-here-document-mode) as an example.

I'm concerned this electric mode can turn out to be too
aggressive/surprising for the user - "return RET" is a common text to
be entered, I'm not sure the user would always want it to be replaced.
For example, when debugging I might insert return statements all over
the place.

Put differently, I would be more comfortable if there's a distinct
mechanism to trigger the context-aware return, for example with a
trigger key like when a snippet is inserted.

--0000000000003611f805f4f7fb5f
Content-Type: application/octet-stream; 
	name="0001-Extend-go-ts-mode-with-support-for-pre-filling-retur.patch"
Content-Disposition: attachment; 
	filename="0001-Extend-go-ts-mode-with-support-for-pre-filling-retur.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_le9vhjq30>
X-Attachment-Id: f_le9vhjq30

RnJvbSAzZWZhYTcxM2FjOWZkY2I0NTA3ZTk0NWMyZGI3NzFmN2JiM2ExYmU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFdmdlbmkgS29sZXYgPGV2Z2VueXN3QGdtYWlsLmNvbT4KRGF0
ZTogTW9uLCA2IEZlYiAyMDIzIDA5OjQ5OjUyICswMjAwClN1YmplY3Q6IFtQQVRDSF0gRXh0ZW5k
IGdvLXRzLW1vZGUgd2l0aCBzdXBwb3J0IGZvciBwcmUtZmlsbGluZyByZXR1cm4KIHN0YXRlbWVu
dHMKCkV4dGVuZCBnby10cy1tb2RlIHRvIGluc2VydCBjb250ZXh0LWF3YXJlIHJldHVybiBzdGF0
ZW1lbnQgZm9yIHRoZQpjdXJyZW50IGZ1bmN0aW9uLiBUaGUgcmV0dXJuIHN0YXRlbWVudCBpcyBw
cmUtZmlsbGVkIHdpdGggdGhlIHplcm8KdmFsdWVzIG9mIHRoZSBmdW5jdGlvbidzIG91dHB1dCBw
YXJhbWV0ZXJzLgoKRm9yIGV4YW1wbGUsIHRoaXMgcmV0dXJuIHN0YXRlbWVudCBpcyBhZGRlZCBi
eSBFbWFjczoKYGBgCmZ1bmMgZigpIChib29sLCBpbnQsIG15U3RydWN0LCAqaW50LCBjaGFuIGJv
b2wsIGVycm9yKSB7CiAgICByZXR1cm4gZmFsc2UsIDAsIG15U3RydWN0e30sIG5pbCwgbmlsLCBl
cnIKfQpgYGAKCiogbGlzcC9wcm9nbW9kZXMvZ28tdHMtbW9kZS5lbCAoZ28tdHMtbW9kZS1lcnJv
ci16ZXJvLXZhbHVlKTogTmV3CmRlZmN1c3RvbS4gKGdvLXRzLW1vZGUtaW5zZXJ0LXJldHVybiwg
Z28tdHMtbW9kZS1yZXR1cm4sCmdvLXRzLW1vZGUtLWZ1bmN0aW9uLXJldHVybi10eXBlcywgZ28t
dHMtbW9kZS0tZnVuY3Rpb24tYXQtcG9pbnQsCmdvLXRzLW1vZGUtLXR5cGVzLWZyb20tcGFyYW0t
ZGVjbGFyYXRpb24sIGdvLXRzLW1vZGUtLXplcm8tdmFsdWUpIE5ldwpmdW5jdGlvbnMuCi0tLQog
bGlzcC9wcm9nbW9kZXMvZ28tdHMtbW9kZS5lbCB8IDEwMyArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspCgpkaWZmIC0t
Z2l0IGEvbGlzcC9wcm9nbW9kZXMvZ28tdHMtbW9kZS5lbCBiL2xpc3AvcHJvZ21vZGVzL2dvLXRz
LW1vZGUuZWwKaW5kZXggMmEyNzgzZjQ1ZjYuLjBhMTYzNzUzZjI5IDEwMDY0NAotLS0gYS9saXNw
L3Byb2dtb2Rlcy9nby10cy1tb2RlLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL2dvLXRzLW1vZGUu
ZWwKQEAgLTQ2LDYgKzQ2LDE1IEBAIGdvLXRzLW1vZGUtaW5kZW50LW9mZnNldAogICA6c2FmZSAn
aW50ZWdlcnAKICAgOmdyb3VwICdnbykKIAorKGRlZmN1c3RvbSBnby10cy1tb2RlLWVycm9yLXpl
cm8tdmFsdWUgICJlcnIiCisgICJUaGUgemVybyB2YWx1ZSBmb3IgdHlwZSBcImVycm9yXCIuCitU
aGUgZGVmYXVsdCBpcyBcImVyclwiLCBhc3N1bWluZyB0aGVyZSdzIGEgdmFyaWFsYmUgbmFtZWQg
XCJlcnJcIiBpbgordGhlIGN1cnJlbnQgc2NvcGUuIgorICA6dmVyc2lvbiAiMzAiCisgIDp0eXBl
ICdzdHJpbmcKKyAgOm9wdGlvbnMgJygiZXJyIiwgImZtdC5FcnJvcmYoXCJmb3JtYXQ6ICV3XCIs
IGVycikiLCAiZXJyb3JzLldyYXAoZXJyLCBcImZvcm1hdFwiKSIpCisgIDpncm91cCAnZ28pCisK
IChkZWZ2YXIgZ28tdHMtbW9kZS0tc3ludGF4LXRhYmxlCiAgIChsZXQgKCh0YWJsZSAobWFrZS1z
eW50YXgtdGFibGUpKSkKICAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/KyAgICIuIiAgICAgIHRh
YmxlKQpAQCAtMzI4LDYgKzMzNywxMDAgQEAgZ28tdHMtbW9kZS0tY29tbWVudC1vbi1wcmV2aW91
cy1saW5lLXAKICAgICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgcG9pbnQgKHRyZWVz
aXQtbm9kZS1lbmQgbm9kZSkpCiAgICAgIChzdHJpbmctZXF1YWwgImNvbW1lbnQiICh0cmVlc2l0
LW5vZGUtdHlwZSBub2RlKSkpKSkKIAorKGRlZmluZS1taW5vci1tb2RlIGdvLXRzLWVsZWN0cmlj
LXJldHVybi1tb2RlCisgICJNYWtlIGByZXR1cm4gUkVUJyBpbnNlcnQgYSByZXR1cm4gc3RhdGVt
ZW50IHdpdGggemVybyB2YWx1ZXMuIgorICA6bGlnaHRlciBuaWwKKyAgKGlmIGdvLXRzLWVsZWN0
cmljLXJldHVybi1tb2RlCisgICAgICAoYWRkLWhvb2sgJ3Bvc3Qtc2VsZi1pbnNlcnQtaG9vayAj
J2dvLXRzLW1vZGUtLW1heWJlLWluc2VydC1yZXR1cm4gbmlsIHQpCisgICAgKHJlbW92ZS1ob29r
ICdwb3N0LXNlbGYtaW5zZXJ0LWhvb2sgIydnby10cy1tb2RlLS1tYXliZS1pbnNlcnQtcmV0dXJu
IHQpKSkKKworKGRlZnVuIGdvLXRzLW1vZGUtLW1heWJlLWluc2VydC1yZXR1cm4gKCkKKyAgIklm
IFJFVCBpcyBlbnRlcmVkIGFmdGVyIGByZXR1cm4nLCBhZGQgemVybyB2YWx1ZXMuIgorICAod2hl
biAoYW5kIChlcXVhbCAodGhpcy1jb21tYW5kLWtleXMpIChrYmQgIlJFVCIpKQorICAgICAgICAg
ICAgIChsb29raW5nLWJhY2sgKHJ4IHdvcmQtYm91bmRhcnkgInJldHVybiIgIlxuIiAoKiBzcGFj
ZSkpIChwb3MtYm9sIDApKSkKKyAgICAoZGVsZXRlLXJlZ2lvbiAocG9pbnQpIChwb3MtZW9sIDAp
KSA7OyBkZWxldGUgdGhlIGxpbmUgYWRkZWQgYnkgUkVUCisgICAgKGRlbGV0ZS1jaGFyICgtIChs
ZW5ndGggInJldHVybiIpKSkKKyAgICAoaW5zZXJ0IChnby10cy1tb2RlLXJldHVybikpKSkKKwor
KGRlZnVuIGdvLXRzLW1vZGUtcmV0dXJuKCkKKyAgIlJldHVybiBhIHJldHVybiBzdGF0ZW1lbnQg
d2l0aCB6ZXJvIHZhbHVlcyBmb3IgZnVuY3Rpb24gYXQgcG9pbnQuCitJdCdzIGFuIGVycm9yIHRv
IGNhbGwgdGhpcyBmdW5jdGlvbiBvdXRzaWRlIG9mIGEgZnVuY3Rpb24gYm9keS4iCisgIChpbnRl
cmFjdGl2ZSkKKyAgKGxldCogKChmdW5jLW5vZGUgKGdvLXRzLW1vZGUtLWZ1bmN0aW9uLWF0LXBv
aW50KSkKKyAgICAgICAgIChib2R5LW5vZGUgKHRyZWVzaXQtbm9kZS1jaGlsZC1ieS1maWVsZC1u
YW1lIGZ1bmMtbm9kZSAiYm9keSIpKSkKKworICAgICh1bmxlc3MgKGFuZCBib2R5LW5vZGUgKDwg
KHRyZWVzaXQtbm9kZS1zdGFydCBib2R5LW5vZGUpIChwb2ludCkgKHRyZWVzaXQtbm9kZS1lbmQg
Ym9keS1ub2RlKSkpCisgICAgICAodXNlci1lcnJvciAiUG9pbnQgbXVzdCBiZSBpbnNpZGUgYSBH
byBmdW5jdGlvbiBib2R5IikpCisKKyAgICAobGV0KiAoKHR5cGVzIChnby10cy1tb2RlLS1mdW5j
dGlvbi1yZXR1cm4tdHlwZXMgZnVuYy1ub2RlKSkKKyAgICAgICAgICAgKHplcm8tdmFsdWVzICht
YXBjYXIgJ2dvLXRzLW1vZGUtLXplcm8tdmFsdWUgdHlwZXMpKQorICAgICAgICAgICAocmV0dXJu
LXN0YXRlbWVudCAoZm9ybWF0ICJyZXR1cm4gJXMiIChzdHJpbmctam9pbiB6ZXJvLXZhbHVlcyAi
LCAiKSkpKQorICAgICAgKHN0cmluZy10cmltLXJpZ2h0IHJldHVybi1zdGF0ZW1lbnQpKSkpCisK
KyhkZWZ1biBnby10cy1tb2RlLS1mdW5jdGlvbi1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSB0
cmVlc2l0IGZ1bmN0aW9uIG5vZGUgYXQgcG9pbnQuCitGdW5jdGlvbiwgbWV0aG9kcyBhbmQgY2xv
c3VyZXMgKGFub255bW91cyBmdW5jdGlvbnMpIGFyZSByZWNvZ25pemVkLgorSWYgcG9pbnQgaXMg
bm90IGluIGEgcmVjb2duaXplZCBmdW5jdGlvbiwgbmlsIGlzIHJldHVybmVkLiIKKyAgKGludGVy
YWN0aXZlKQorICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICh0cmVlc2l0LW5vZGUtYXQgKHBv
aW50KSkKKyAgIChsYW1iZGEgKHgpCisgICAgIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIHgp
CisgICAgICAgICAgICAgJygiZnVuY19saXRlcmFsIiAiZnVuY3Rpb25fZGVjbGFyYXRpb24iICJt
ZXRob2RfZGVjbGFyYXRpb24iKSkpIHQpKQorCisoZGVmdW4gZ28tdHMtbW9kZS0tZnVuY3Rpb24t
cmV0dXJuLXR5cGVzIChmdW5jLW5vZGUpCisgICJSZXR1cm4gdGhlIHR5cGVzIG9mIHRoZSBvdXRw
dXQgdmFyaWFibGVzIG9mIEZVTkMtTk9ERS4KK1RoZSByZXN1bHQgaXMgYSBsaXN0IHdoaWNoIGNv
dWxkIGNvbnRhaW4gYSBzaW5nbGUgZWxlbWVudCAodGhlIEdvCitmdW5jdGlvbiBoYXMgb25lIHJl
dHVybiBhcmd1bWVudCksIG11bHRpcGxlIGVsZW1lbnRzIChtdWx0aXBsZSByZXR1cm4KK2FyZ3Vt
ZW50cyksIG9yIG5vIGVsZW1lbnRzIChubyByZXR1cm4gYXJndW1lbnRzKS4iCisgIChsZXQgKChy
ZXN1bHQtbm9kZSAodHJlZXNpdC1ub2RlLWNoaWxkLWJ5LWZpZWxkLW5hbWUgZnVuYy1ub2RlICJy
ZXN1bHQiKSkpCisgICAgKHBjYXNlICh0cmVlc2l0LW5vZGUtdHlwZSByZXN1bHQtbm9kZSkKKyAg
ICAgICgicGFyYW1ldGVyX2xpc3QiIDs7IG11bHRpcGxlIHJldHVybiB2YWx1ZXMKKyAgICAgICAo
bGV0ICgodHlwZXMtbmVzdGVkICh0cmVlc2l0LWluZHVjZS1zcGFyc2UtdHJlZSByZXN1bHQtbm9k
ZSAicGFyYW1ldGVyX2RlY2xhcmF0aW9uIiAjJ2dvLXRzLW1vZGUtLXR5cGVzLWZyb20tcGFyYW0t
ZGVjbGFyYXRpb24pKSkKKyAgICAgICAgIChhcHBseSAjJ2FwcGVuZCAobWFwY2FyICdjYXIgKGNk
ciB0eXBlcy1uZXN0ZWQpKSkpKQorICAgICAgKChwcmVkIG51bGwpIDs7IG5vIHJldHVybiB2YWx1
ZQorICAgICAgIG5pbCkKKyAgICAgIChfIDs7IHNpbmdsZSByZXR1cm4gdmFsdWUKKyAgICAgICAo
bGlzdCAodHJlZXNpdC1ub2RlLXRleHQgcmVzdWx0LW5vZGUgdCkpKSkpKQorCisoZGVmdW4gZ28t
dHMtbW9kZS0tdHlwZXMtZnJvbS1wYXJhbS1kZWNsYXJhdGlvbiAobm9kZSkKKyAiRXh0cmFjdCB0
aGUgR28gdHlwZShzKSBmcm9tIE5PREUuICBJdCBtdXN0IGhhdmUgdHlwZSBwYXJhbWV0ZXJfZGVj
bGFyYXRpb24uCisKK0EgcGFyYW1ldGVyX2RlY2xhcmF0aW9uIG5vZGUgY2FuIGNvbnRhaW4gc2lu
Z2xlIHZhbHVlIGAoaW50KScsIG5hbWVkCitzaW5nbGUgdmFsdWUgYChzdW0gaW50KScsIG11bHRp
cGxlcyB2YWx1ZXMgYChpbnQsIGludCknLCBvciBtdWx0aXBsZQorbmFtZWQgdmFsdWVzIGAoeCwg
eSBpbnQpJy4KKworQWxsIHRoZSBhYm92ZSBjYXNlcyBhcmUgcmVjb2duaXplZC4gIE9ubHkgdGhl
IHR5cGVzIGFyZSByZXR1cm5lZCwgZm9yCitleGFtcGxlLCB3aXRoIHBhcmFtZXRlcl9kZWNsYXJh
dGlvbiBgKHgsIHkgaW50KScsIHRoZSByZXN1bHQgaXMKK1woXCJpbnRcIiwgXCJpbnRcIikuIgor
ICAobGV0ICgodHlwZSAodHJlZXNpdC1ub2RlLWNoaWxkLWJ5LWZpZWxkLW5hbWUgbm9kZSAidHlw
ZSIpKQorICAgICAgICAoY291bnQgKGxlbmd0aCAodHJlZXNpdC1xdWVyeS1jYXB0dXJlIG5vZGUg
IihwYXJhbWV0ZXJfZGVjbGFyYXRpb24gbmFtZTooXykgQG5hbWUpIiBuaWwgbmlsIHQpKSkpCisg
ICAgKG1ha2UtbGlzdCAoaWYgKHplcm9wIGNvdW50KSAxIGNvdW50KSAodHJlZXNpdC1ub2RlLXRl
eHQgdHlwZSB0KSkpKQorCisoZGVmdW4gZ28tdHMtbW9kZS0temVyby12YWx1ZSAoZ28tdHlwZSkK
KyAgIlJldHVybiB0aGUgR28gemVybyB2YWx1ZSBmb3IgR08tVFlQRS4KK0ZvciB0eXBlIFwiZXJy
b3JcIiwgdGhlIHplcm8gdmFsdWUgaXMgZGV0ZXJtaW5lZCBieSB2YXJpYWJsZQorYGdvLXRzLW1v
ZGUtZXJyb3ItemVyby12YWx1ZScuCisKK1RoaXMgZnVuY3Rpb24gYXNzdW1lcyBhcmJpdHJhcnkg
dHlwZXMgYXJlIEdvIHN0cnVjdHMsIGZvciBleGFtcGxlIGZvcgorR08tVFlQRSBcInBlcnNvblwi
LCB0aGUgcmV0dW4gdmFsdWUgaXMgXCJwZXJzb257fVwiLiIKKyAgKHBjYXNlIGdvLXR5cGUKKyAg
ICAoKG9yICJpbnQiICAiaW50OCIgICJpbnQxNiIgICJpbnQzMiIgICJpbnQ2NCIpICIwIikKKyAg
ICAoKG9yICJ1aW50IiAidWludDgiICJ1aW50MTYiICJ1aW50MzIiICJ1aW50NjQiKSAiMCIpCisg
ICAgKCJib29sIiAiZmFsc2UiKQorICAgICgic3RyaW5nIiAiXCJcIiIpCisgICAgKChvciAidWlu
dHB0ciIgImJ5dGUiICJydW5lIikgIjAiKQorICAgICgob3IgImZsb2F0MzIiICJmbG9hdDY0Iikg
IjAuMCIpCisgICAgKChvciAiY29tcGxleDY0IiAiY29tcGxleDEyOCIpICJjb21wbGV4KDAsIDAp
IikKKyAgICAoKHByZWQgKHN0cmluZy1wcmVmaXgtcCAibWFwIikpICJuaWwiKQorICAgICgocHJl
ZCAoc3RyaW5nLXByZWZpeC1wICIqIikpICJuaWwiKQorICAgICgocHJlZCAoc3RyaW5nLXByZWZp
eC1wICJbXSIpKSAibmlsIikKKyAgICAoKHByZWQgKHN0cmluZy1wcmVmaXgtcCAiY2hhbiIpKSAi
bmlsIikKKyAgICAoKHByZWQgKHN0cmluZy1wcmVmaXgtcCAiZnVuYyIpKSAibmlsIikKKyAgICAo
ImVycm9yIiBnby10cy1tb2RlLWVycm9yLXplcm8tdmFsdWUpCisgICAgKChyeCBib2wgKDErIChv
ciBhbHBoYW51bWVyaWMgIl8iICIuIikpIGVvbCkgKGNvbmNhdCBnby10eXBlICJ7fSIpKQorICAg
IChfICh1c2VyLWVycm9yICJVbmtub3duIEdvIHR5cGUgXCIlc1wiIiBnby10eXBlKSkpKQorCiA7
OyBnby5tb2Qgc3VwcG9ydC4KIAogKGRlZnZhciBnby1tb2QtdHMtbW9kZS0tc3ludGF4LXRhYmxl
Ci0tIAoyLjM5LjEKCg==
--0000000000003611f805f4f7fb5f--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 9 Feb 2023 13:40:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 09 08:40:35 2023
Received: from localhost ([127.0.0.1]:57938 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pQ7AA-0004Zx-S0
	for submit <at> debbugs.gnu.org; Thu, 09 Feb 2023 08:40:35 -0500
Received: from eggs.gnu.org ([209.51.188.92]:39630)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pQ7A8-0004Zb-KA
 for 61368 <at> debbugs.gnu.org; Thu, 09 Feb 2023 08:40:33 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pQ7A0-0003d5-6W; Thu, 09 Feb 2023 08:40:26 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=wPbpxefi8evV2B+m6L+EqIsMK9GlyUb9s770kYvV+0g=; b=pLeaweVTTLdt
 bo2tQLugi6yXGHFfB89VKtjqVXHTuMAuSlySygNttYJa3Clu/hDuOHQmWcLQ5RAELEaDs81E/bbPU
 5edQWeWtQcDkYsXSDV5vCbu/zAkb1d9wuKkyaeyxEv8O3FOcon4gM1k//7ohMD0olHHAtLanBbjMZ
 x/vuRrNDXSr3TZz1gk5v82+rX4sDQRXAHBL3Fp2lpufB1cH8pPPM5ctT7y2aZLOl+MGFO0zAjZ9di
 n9/zuA2nky3rxMqtp29J3kU/TMM64cLaiLXjIGodAclZGfizsN4oBqynOMPB/p8OY4Qc1foTQksCI
 d0l9TUPDHVVWbaHegcoK2w==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pQ79h-0003XN-HF; Thu, 09 Feb 2023 08:40:23 -0500
Date: Thu, 09 Feb 2023 15:39:55 +0200
Message-Id: <83357flzys.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Evgeni Kolev <evgenysw@HIDDEN>
In-Reply-To: <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
 (message from Evgeni Kolev on Thu, 9 Feb 2023 13:47:01 +0200)
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
 <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 61368
Cc: dev@HIDDEN, theo@HIDDEN, 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Evgeni Kolev <evgenysw@HIDDEN>
> Date: Thu, 9 Feb 2023 13:47:01 +0200
> Cc: 61368 <at> debbugs.gnu.org, dev@HIDDEN, theo@HIDDEN
> 
> > Instead of a command bound to a special key sequences, would it
> > perhaps make more sense to add some kind of "electric" behavior to
> > "normal" keys?  Like perhaps typing RET after inserting "return" would
> > add the "context-aware return statement"?  Then the user could turn on
> > the electric behavior with some minor mode, and get this behavior,
> > while avoiding the need to dedicate a key sequence.
> >
> > WDYT?
> 
> Makes sense. I am familiar with electric-pair-mode. I see that it adds
> a hook in post-self-insert-hook. Is your suggestion to do something
> like this:
> - add hook in post-self-insert-hook
> - in the hook check if RET is typed after an "return"
> - if yes, replace the "return" with the "context-aware return
> statement", possibly using (yas-expand-snippet)

Yes, something like that.  See electric.el for more examples.

> I'm wondering what customization options would make sense for users -
> changing the electric trigger from "return" RET to "ret" RET for
> example.
> 
> Is there another major mode which can be used as an example for such
> electric behavior?

Electric modes are usually minor modes that let major modes customize
them by setting variables.  Again, I think you will find examples in
electric.el.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 9 Feb 2023 11:47:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 09 06:47:36 2023
Received: from localhost ([127.0.0.1]:57728 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pQ5Op-0005EE-Js
	for submit <at> debbugs.gnu.org; Thu, 09 Feb 2023 06:47:36 -0500
Received: from mail-qt1-f174.google.com ([209.85.160.174]:39639)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <evgenysw@HIDDEN>) id 1pQ5On-0005DX-Ar
 for 61368 <at> debbugs.gnu.org; Thu, 09 Feb 2023 06:47:33 -0500
Received: by mail-qt1-f174.google.com with SMTP id g18so1503590qtb.6
 for <61368 <at> debbugs.gnu.org>; Thu, 09 Feb 2023 03:47:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=xabf3RZYrrJ64Lb5TAyVS9s/yGdReZQfPJmmo2NHjSU=;
 b=i7X7DOfV+1x3t0pLmd7+du8tPv0Y+56iTr35zuo+2ZALQemzuo6JWotM9xrEhnITpC
 qBDImXbtNm4ZcYQof8GXa2s1NM/k/Wz9QzsAx1iOK8PhKmA3bvY/U/cDaHkytXgzs38F
 AD7SFF43wya9vkVzSAfEc/qKrpkRzW194SXVEe+I/qAVZ6z/98l8PKAJJRHI6V6wjc1G
 DPqd96vH6XkbwbItKpARI5SvF1nhZK7JJgINvsYExRU+WD4TZ4NV9F97/YEyh6LMqim+
 3Gelg99I1iy3/K6qFrW0Tjg0WruVjtDPtVUJgJtZNZ7CG43y706qGvJFN9BhRMk2h7rs
 w3dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=xabf3RZYrrJ64Lb5TAyVS9s/yGdReZQfPJmmo2NHjSU=;
 b=lOrgZ7px9yzpg0kxTeMCXf5Kq7/iMFgiUtR/NMv/q6Y5HcWvudv+RSybONjECVXDv/
 2dVw/ZaXR6jxk4y0EV20NIDWqvpCU1w6b4wfmzMHDGSCYzG4Phy9IVUPUBL1Hh8EdmCR
 KE/grqbjoIueepOV1p0m5ybAp96DlbD7MHAqVQmt+3Kmac8RAuva+tPars/PAUI1QqZt
 HOWVs8juevgYcHXMFxscgq72lanKHR/RCuY0k338jDrr9DcTxORjaqctOfWtmwwQmTum
 y/EwHVdHO/sURLr7utCSXgLneP1lBmu/YAQek98ASnE46Q620Xpr3mwgKLs5GfTDZY7S
 RCOw==
X-Gm-Message-State: AO0yUKVvyEBB5AkIS6NCL1UfzIfNnHfApdJ61Y4jGbUaD24175Z7zYU1
 RFiD27BzWDAEyUPiFZnZn6sQCZpYzjHoYFRaCOE=
X-Google-Smtp-Source: AK7set+BQeSDvVgVlPieSrYKk+JqbwoDrcGq4LOivWypT44Sosa5SkVDbQ4jvV9GssbjL+kAwDhMYJKYY3RW5CbNH5g=
X-Received: by 2002:a05:622a:1007:b0:3ac:c2b8:13 with SMTP id
 d7-20020a05622a100700b003acc2b80013mr1868008qte.332.1675943247646; Thu, 09
 Feb 2023 03:47:27 -0800 (PST)
MIME-Version: 1.0
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 <83edr0nmq6.fsf@HIDDEN>
In-Reply-To: <83edr0nmq6.fsf@HIDDEN>
From: Evgeni Kolev <evgenysw@HIDDEN>
Date: Thu, 9 Feb 2023 13:47:01 +0200
Message-ID: <CAMCrgaUa26s2BM8EskKt5FTEyFqyioqx13abOFSMjcyShgG=Pg@HIDDEN>
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 61368
Cc: dev@HIDDEN, theo@HIDDEN, 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Wed, Feb 8, 2023 at 9:20 PM Theodor Thornhill <theo@HIDDEN> wrote:
>
> Evgeni Kolev <evgenysw@HIDDEN> writes:
>
> >
> > I'm open to suggestions about how to best expose this functionality to
> > the user. I think a snippet makes the most sense, but there's no
> > standard way for major modes to expose snippets as far as I'm aware.
> > It's possible to tweak C-c C-r to call (yas-expand-snippet) if
> > available, otherwise call (insert). In general, I don't feel strong
> > about the C-c C-r key binding, but I didn't have a better idea.
> >
>
> How about using tempo or skeleton as fallbacks when yasnippet isn't
> installed?

I've never used either of these packages. Is there a consensus which
one is preferred for major modes to use?

>
> Personally I think this should be a contrib to gopls as a code action so
> that others can benefit from it.  Is upstreaming it to gopls too hard?
>

Great suggestion! I did a quick research and this seems to already be
implemented in gopls here:
https://github.com/golang/tools/blob/master/gopls/internal/lsp/source/completion/statements.go#L179

To use it you have to enable "usePlaceholders", reference:
https://github.com/golang/tools/blob/master/gopls/doc/settings.md

Do you think it makes sense go-ts-mode to also have its own
implementation? I think it does - similar to how both gopls (eglot)
and tree sitter provide Imenu candidates. I personally use tree
sitter's Imenu (setq eglot-stay-out-of '(imenu)) because I find it
advantageous to avoid the RPC call to an external process.

Also having a tree sitter implementation is more flexible. For
example, I'm planning to have multiple yasnippet snippets for
different scenarios (wrap the error, don't wrap, return a new error,
etc.). The gopls implementation is ridgid - it only works if there's
an "err" variable in scope, and the trigger is one of these three "if
e", "if er" and "if err".

On Wed, Feb 8, 2023 at 6:30 PM Eli Zaretskii <eliz@HIDDEN> wrote:
> > The command go-ts-mode-insert-return is experimentally bound to a key
> > C-c C-r ("r" as return statement). It's a user error to run C-c C-r
> > outside of a function body.
>
> Instead of a command bound to a special key sequences, would it
> perhaps make more sense to add some kind of "electric" behavior to
> "normal" keys?  Like perhaps typing RET after inserting "return" would
> add the "context-aware return statement"?  Then the user could turn on
> the electric behavior with some minor mode, and get this behavior,
> while avoiding the need to dedicate a key sequence.
>
> WDYT?

Makes sense. I am familiar with electric-pair-mode. I see that it adds
a hook in post-self-insert-hook. Is your suggestion to do something
like this:
- add hook in post-self-insert-hook
- in the hook check if RET is typed after an "return"
- if yes, replace the "return" with the "context-aware return
statement", possibly using (yas-expand-snippet)

I'm wondering what customization options would make sense for users -
changing the electric trigger from "return" RET to "ret" RET for
example.

Is there another major mode which can be used as an example for such
electric behavior?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 8 Feb 2023 19:20:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 08 14:20:38 2023
Received: from localhost ([127.0.0.1]:56701 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pPpzi-0001A1-Bv
	for submit <at> debbugs.gnu.org; Wed, 08 Feb 2023 14:20:38 -0500
Received: from lists.gnu.org ([209.51.188.17]:48136)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <theo@HIDDEN>) id 1pPpze-00019q-Ak
 for submit <at> debbugs.gnu.org; Wed, 08 Feb 2023 14:20:36 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <theo@HIDDEN>) id 1pPpze-0003Ve-4M
 for bug-gnu-emacs@HIDDEN; Wed, 08 Feb 2023 14:20:34 -0500
Received: from out-165.mta1.migadu.com ([2001:41d0:203:375::a5])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <theo@HIDDEN>) id 1pPpza-0004yW-Hm
 for bug-gnu-emacs@HIDDEN; Wed, 08 Feb 2023 14:20:33 -0500
X-Report-Abuse: Please report any abuse attempt to abuse@HIDDEN and
 include these headers.
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thornhill.no;
 s=key1; t=1675884028;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=5Xnl/zb6YScx0+0e9VRnmchqHJz5WXBIyKXkUrMgR2c=;
 b=PgQsIUoy+zSeX5IXGr4T5Tq3Uokj8w2x85qsN/3KmKukkFhxcP3Nu6MH8u59EAEPFoqqUp
 RsOVckDwYxw0d2UuffvQrZnMGlFhicJDj3wlHNYY9gipyRz7MvQgCaDEvKUSAuvVxhRghz
 iHfaY04I9Eq4w9GO3fCifXnobpypM6nBxui77US4Mxd0ItQ++CcbC+LAbghu65UYhrojMS
 gh0Ci8dHmdcm67Ak8RnUS4Ug015H0UGLKBF19g6urWS3JfkpAyfWcbCI9d59SUXQfdssDb
 KXb5KLIeD6BhK7Ml/ZDMNFDzLeGAL9iqlAmYYejEoz6cm9RYNit/TH4M4tzBYg==
From: Theodor Thornhill <theo@HIDDEN>
To: Evgeni Kolev <evgenysw@HIDDEN>, bug-gnu-emacs@HIDDEN
Subject: Re: [PATCH] Extend go-ts-mode with support for pre-filling return
 statements
In-Reply-To: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
Date: Wed, 08 Feb 2023 20:20:27 +0100
Message-ID: <87o7q46k1w.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Migadu-Flow: FLOW_OUT
Received-SPF: pass client-ip=2001:41d0:203:375::a5;
 envelope-from=theo@HIDDEN; helo=out-165.mta1.migadu.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: submit
Cc: Randy Taylor <dev@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

Evgeni Kolev <evgenysw@HIDDEN> writes:

> [CC Randy, author of go-ts-mode, Theo, who asked to keep the patches coming :)]
>

:-)

> This is a patch which adds support to go-ts-mode to insert
> context-aware return statements for the current function. The return
> statements are pre-filled with the Go zero values of the output
> parameters.
>
> For example, all these return statements are inserted by M-x
> go-ts-mode-insert-return:
>
> ```
> func f() (x, y, z int) {
>     return 0, 0, 0
> }
>
> func exotic() (bool, int, myStruct, *int, chan bool, error) {
>     return false, 0, myStruct{}, nil, nil, err
> }
>
> func closure(numbers []int) {
>     sort.Slice(numbers, func(i, j int) bool {
>         return false
>     })
> }
> ```

Cool!

>
> The command go-ts-mode-insert-return is experimentally bound to a key
> C-c C-r ("r" as return statement). It's a user error to run C-c C-r
> outside of a function body.
>
> Customization: when the output params contain "error" the pre-filled
> text is "err". A customization variable is added to allow the user to
> pick a different value, for example they might pick `fmt.Errorf("...:
> %w", err)` which will result in error wrapping:
> ```
> func f() (int, error) {
>     return 0, fmt.Errorf("...: %w", err)
> }
> ```
>
> Personally, I'll use yasnippet instead of C-c C-r. Something like this:
> ```
>  # -*- mode: snippet -*-
>  # name: ret
>  # key: ret
>  # type: command
>  # --
>
>  (let ((go-ts-mode-error-zero-value "${1:fmt.Errorf(\"${2:format}:
> %w\", err)}"))
>    (yas-expand-snippet (go-ts-mode-return)))
> ```
>
> I'm open to suggestions about how to best expose this functionality to
> the user. I think a snippet makes the most sense, but there's no
> standard way for major modes to expose snippets as far as I'm aware.
> It's possible to tweak C-c C-r to call (yas-expand-snippet) if
> available, otherwise call (insert). In general, I don't feel strong
> about the C-c C-r key binding, but I didn't have a better idea.
>

How about using tempo or skeleton as fallbacks when yasnippet isn't
installed? 

> Known bug: this example does not work, fails with error "Unknown Go
> type "[int]int"":
> ```
> func notOk() (int, map[int]int) {
> }
> ```
> The root cause is an issue with the tree-sitter-go parser. The bug has
> been reported here
> https://github.com/tree-sitter/tree-sitter-go/issues/107
>
> Known limitation: unfamiliar types are assumed to be structs. This
> assumption does not work for aliased types. For example:
> ```
> type MyInt = int
>
> func alias() MyInt {
>     return MyInt{}
> }
> ```
> Above the correct return statement is "return MyInt(0)". My assumption
> is that type aliases of primitive types are rare in Go codebases. In
> these rare cases, the user is expected to replace "MyInt{}" with
> "MyInt(0)", or not use C-c C-r at all.
>
> Inspired by: this emacs conf talk "08:21 Intelligent templates"
> https://emacsconf.org/2022/talks/treesitter/
>
> Feedback is more than welcome! In particular:
> - how to best expose the functionality - key binding, snippet (how
> exactly?), something else?
>

Personally I think this should be a contrib to gopls as a code action so
that others can benefit from it.  Is upstreaming it to gopls too hard?


Theo




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at 61368 <at> debbugs.gnu.org:


Received: (at 61368) by debbugs.gnu.org; 8 Feb 2023 16:30:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 08 11:30:33 2023
Received: from localhost ([127.0.0.1]:56481 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pPnL7-00053h-Ip
	for submit <at> debbugs.gnu.org; Wed, 08 Feb 2023 11:30:33 -0500
Received: from eggs.gnu.org ([209.51.188.92]:37030)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pPnL3-00053O-Nn
 for 61368 <at> debbugs.gnu.org; Wed, 08 Feb 2023 11:30:32 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pPnKx-0001Tl-OP; Wed, 08 Feb 2023 11:30:23 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=1fIsDX8gvJyxcR8Pdhg95blb4yEHM0Geu7LqdkYiyD8=; b=ppni7rf5ADHP
 GVdizalj0Baaq8SoKOryD/kjnEOp9Yzd/zFN3siwPp4yHZgcpJVnxK3sWv58moyJ0C3cXDOt+8YwT
 4ayoIU3KcmVfD11j4VeuF8J9E2g+1WkcqUKwOxt1YyFM7RB6Ey51ktNMdvjMV3PgNvbdv9GFY0Afx
 kk4pKtJit0rlB3QtmQGBI3Noqj2f4SRX0ozD9awjwCQEbhlWcxOSNcVBkzZz1fuKKw0my82OvN4/2
 eXjIfbcbisyP1g96zw4zYd3HkXc3+dTEf/9Mjw1Fd+dPTRteM9iCrLCiyuUdmXswJbkMuGPkat/C5
 qHq8PgaiCOsTuJM/2XBRCg==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pPnKx-0007fX-7y; Wed, 08 Feb 2023 11:30:23 -0500
Date: Wed, 08 Feb 2023 18:30:41 +0200
Message-Id: <83edr0nmq6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Evgeni Kolev <evgenysw@HIDDEN>
In-Reply-To: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
 (message from Evgeni Kolev on Wed, 8 Feb 2023 17:27:58 +0200)
Subject: Re: bug#61368: [PATCH] Extend go-ts-mode with support for pre-filling
 return statements
References: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 61368
Cc: dev@HIDDEN, theo@HIDDEN, 61368 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: Randy Taylor <dev@HIDDEN>, Theodor Thornhill <theo@HIDDEN>
> From: Evgeni Kolev <evgenysw@HIDDEN>
> Date: Wed, 8 Feb 2023 17:27:58 +0200
> 
> This is a patch which adds support to go-ts-mode to insert
> context-aware return statements for the current function. The return
> statements are pre-filled with the Go zero values of the output
> parameters.
> 
> For example, all these return statements are inserted by M-x
> go-ts-mode-insert-return:
> 
> ```
> func f() (x, y, z int) {
>     return 0, 0, 0
> }
> 
> func exotic() (bool, int, myStruct, *int, chan bool, error) {
>     return false, 0, myStruct{}, nil, nil, err
> }
> 
> func closure(numbers []int) {
>     sort.Slice(numbers, func(i, j int) bool {
>         return false
>     })
> }
> ```
> 
> The command go-ts-mode-insert-return is experimentally bound to a key
> C-c C-r ("r" as return statement). It's a user error to run C-c C-r
> outside of a function body.

Instead of a command bound to a special key sequences, would it
perhaps make more sense to add some kind of "electric" behavior to
"normal" keys?  Like perhaps typing RET after inserting "return" would
add the "context-aware return statement"?  Then the user could turn on
the electric behavior with some minor mode, and get this behavior,
while avoiding the need to dedicate a key sequence.

WDYT?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 8 Feb 2023 15:28:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 08 10:28:39 2023
Received: from localhost ([127.0.0.1]:56344 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pPmNC-0003Cg-JC
	for submit <at> debbugs.gnu.org; Wed, 08 Feb 2023 10:28:38 -0500
Received: from lists.gnu.org ([209.51.188.17]:39906)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <evgenysw@HIDDEN>) id 1pPmN9-0003CX-K2
 for submit <at> debbugs.gnu.org; Wed, 08 Feb 2023 10:28:36 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <evgenysw@HIDDEN>)
 id 1pPmN4-0000FZ-3V
 for bug-gnu-emacs@HIDDEN; Wed, 08 Feb 2023 10:28:33 -0500
Received: from mail-qt1-x829.google.com ([2607:f8b0:4864:20::829])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <evgenysw@HIDDEN>)
 id 1pPmN1-0004GK-Ea
 for bug-gnu-emacs@HIDDEN; Wed, 08 Feb 2023 10:28:29 -0500
Received: by mail-qt1-x829.google.com with SMTP id q13so2706423qtx.2
 for <bug-gnu-emacs@HIDDEN>; Wed, 08 Feb 2023 07:28:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=znGEijb3n5b8BZkPQMvx6xxjW917Px/eqPIvdWTyIkI=;
 b=UPbe/+c9vihICLEGVko/teBzjWl5s9XJKKjUb7C80R0X+ntggbYCharNMmIr8+I34J
 C6zzQYIprIlF1emmcRzwsha77WXw84lteyfAQzx+ozDWJfzIUhzA3S88HCEVZF+WOhLd
 8H3bk7mcvb4Wu6k5ydD9xcydp+TIjBGtCEmAoNc85DuyXWvPW8Oq6HLxmE9d41+ZDzOr
 iZdEP8BA3d2r9t8GP8B0JAGg3ybR2qP914zW3E9U2cwZcv0bDOxcsBu5+ZTsvmtt+flT
 CiQNv1xcEvq4XsB2n6V7iPy56h62YReW+OJDTwlHKa1oAU4DAeLEPl+0mv0Ibs8GhniF
 O4PA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=znGEijb3n5b8BZkPQMvx6xxjW917Px/eqPIvdWTyIkI=;
 b=ZffZp/B4ZSM9oSDWVPl1LK3mNpsiGguLQdB92qFRH4t3bRQBMAAKMKIy6sCPSD+1hk
 GLUf/qt8s8wJg8TKE4wi3TmEcsgKkCMGOW5a+GHeBmzieV12jrdEgscbbjpm3kv1wdJu
 BadF4m5+s/OuM0qZ8AlnUEmowjd2Rg3VZPIsAnqFUYt/3oY/OvG9x1gugIg+wwGBCEGH
 bBFwE1GVFr5Acs3vexTzAA9eLzpvTzRL/x/MifKhK98cLY2ijWyqB9yqaFAyR8hiaeyk
 8IDKwz8w15/0oYw4jisSOLrj87pscWZYAYZ4bvdJRGb1gYKJXuyEEdvpVgHtLcs0MBRb
 GEPA==
X-Gm-Message-State: AO0yUKU+vXKYKgYXcZGaqpoAWfgllEFSAeqUncEcfp7TYfrHFgH8gCyg
 PrtZIRq4B2BBi6Qr+6Apd8ibdaNYYuFy81Gp90VYg8JB0n5uBw==
X-Google-Smtp-Source: AK7set8Q5ZZuxREwxjnzGdWIvHyOSqkmmgykNibVSOLXVK3EfKi6zdMrzacUQhq4XHD3RXvd2hB6cFZ8CCCwaE3p3R4=
X-Received: by 2002:a05:622a:b:b0:3b9:bd60:2679 with SMTP id
 x11-20020a05622a000b00b003b9bd602679mr1589425qtw.381.1675870104544; Wed, 08
 Feb 2023 07:28:24 -0800 (PST)
MIME-Version: 1.0
From: Evgeni Kolev <evgenysw@HIDDEN>
Date: Wed, 8 Feb 2023 17:27:58 +0200
Message-ID: <CAMCrgaUgMx9+0Q8f_cezZ0TW_-u=mdeHf=TL=qw9wbhiS-nJ9w@HIDDEN>
Subject: [PATCH] Extend go-ts-mode with support for pre-filling return
 statements
To: bug-gnu-emacs@HIDDEN
Content-Type: multipart/mixed; boundary="00000000000045bbbd05f431ead0"
Received-SPF: pass client-ip=2607:f8b0:4864:20::829;
 envelope-from=evgenysw@HIDDEN; helo=mail-qt1-x829.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
Cc: Randy Taylor <dev@HIDDEN>, Theodor Thornhill <theo@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--00000000000045bbbd05f431ead0
Content-Type: text/plain; charset="UTF-8"

[CC Randy, author of go-ts-mode, Theo, who asked to keep the patches coming :)]

This is a patch which adds support to go-ts-mode to insert
context-aware return statements for the current function. The return
statements are pre-filled with the Go zero values of the output
parameters.

For example, all these return statements are inserted by M-x
go-ts-mode-insert-return:

```
func f() (x, y, z int) {
    return 0, 0, 0
}

func exotic() (bool, int, myStruct, *int, chan bool, error) {
    return false, 0, myStruct{}, nil, nil, err
}

func closure(numbers []int) {
    sort.Slice(numbers, func(i, j int) bool {
        return false
    })
}
```

The command go-ts-mode-insert-return is experimentally bound to a key
C-c C-r ("r" as return statement). It's a user error to run C-c C-r
outside of a function body.

Customization: when the output params contain "error" the pre-filled
text is "err". A customization variable is added to allow the user to
pick a different value, for example they might pick `fmt.Errorf("...:
%w", err)` which will result in error wrapping:
```
func f() (int, error) {
    return 0, fmt.Errorf("...: %w", err)
}
```

Personally, I'll use yasnippet instead of C-c C-r. Something like this:
```
 # -*- mode: snippet -*-
 # name: ret
 # key: ret
 # type: command
 # --

 (let ((go-ts-mode-error-zero-value "${1:fmt.Errorf(\"${2:format}:
%w\", err)}"))
   (yas-expand-snippet (go-ts-mode-return)))
```

I'm open to suggestions about how to best expose this functionality to
the user. I think a snippet makes the most sense, but there's no
standard way for major modes to expose snippets as far as I'm aware.
It's possible to tweak C-c C-r to call (yas-expand-snippet) if
available, otherwise call (insert). In general, I don't feel strong
about the C-c C-r key binding, but I didn't have a better idea.

Known bug: this example does not work, fails with error "Unknown Go
type "[int]int"":
```
func notOk() (int, map[int]int) {
}
```
The root cause is an issue with the tree-sitter-go parser. The bug has
been reported here
https://github.com/tree-sitter/tree-sitter-go/issues/107

Known limitation: unfamiliar types are assumed to be structs. This
assumption does not work for aliased types. For example:
```
type MyInt = int

func alias() MyInt {
    return MyInt{}
}
```
Above the correct return statement is "return MyInt(0)". My assumption
is that type aliases of primitive types are rare in Go codebases. In
these rare cases, the user is expected to replace "MyInt{}" with
"MyInt(0)", or not use C-c C-r at all.

Inspired by: this emacs conf talk "08:21 Intelligent templates"
https://emacsconf.org/2022/talks/treesitter/

Feedback is more than welcome! In particular:
- how to best expose the functionality - key binding, snippet (how
exactly?), something else?

Evgeni

--00000000000045bbbd05f431ead0
Content-Type: application/x-patch; 
	name="0001-Extend-go-ts-mode-with-support-for-pre-filling-retur.patch"
Content-Disposition: attachment; 
	filename="0001-Extend-go-ts-mode-with-support-for-pre-filling-retur.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_ldvr1ev90>
X-Attachment-Id: f_ldvr1ev90

RnJvbSBjNTIxMjJjOTgzNzU5OWQ2MzFhODdiNjI1NWNkZjE4OTQ2NTI5MDc4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFdmdlbmkgS29sZXYgPGV2Z2VueXN3QGdtYWlsLmNvbT4KRGF0
ZTogTW9uLCA2IEZlYiAyMDIzIDA5OjQ5OjUyICswMjAwClN1YmplY3Q6IFtQQVRDSF0gRXh0ZW5k
IGdvLXRzLW1vZGUgd2l0aCBzdXBwb3J0IGZvciBwcmUtZmlsbGluZyByZXR1cm4KIHN0YXRlbWVu
dHMKCkV4dGVuZCBnby10cy1tb2RlIHRvIGluc2VydCBjb250ZXh0LWF3YXJlIHJldHVybiBzdGF0
ZW1lbnQgZm9yIHRoZQpjdXJyZW50IGZ1bmN0aW9uLiBUaGUgcmV0dXJuIHN0YXRlbWVudCBpcyBw
cmUtZmlsbGVkIHdpdGggdGhlIHplcm8KdmFsdWVzIG9mIHRoZSBmdW5jdGlvbidzIG91dHB1dCBw
YXJhbWV0ZXJzLgoKRm9yIGV4YW1wbGUsIHRoaXMgcmV0dXJuIHN0YXRlbWVudCBpcyBhZGRlZCBi
eSBFbWFjczoKYGBgCmZ1bmMgZigpIChib29sLCBpbnQsIG15U3RydWN0LCAqaW50LCBjaGFuIGJv
b2wsIGVycm9yKSB7CiAgICByZXR1cm4gZmFsc2UsIDAsIG15U3RydWN0e30sIG5pbCwgbmlsLCBl
cnIKfQpgYGAKCiogbGlzcC9wcm9nbW9kZXMvZ28tdHMtbW9kZS5lbCAoZ28tdHMtbW9kZS1lcnJv
ci16ZXJvLXZhbHVlKTogTmV3CmRlZmN1c3RvbS4gKGdvLXRzLW1vZGUtaW5zZXJ0LXJldHVybiwg
Z28tdHMtbW9kZS1yZXR1cm4sCmdvLXRzLW1vZGUtLWZ1bmN0aW9uLXJldHVybi10eXBlcywgZ28t
dHMtbW9kZS0tZnVuY3Rpb24tYXQtcG9pbnQsCmdvLXRzLW1vZGUtLXR5cGVzLWZyb20tcGFyYW0t
ZGVjbGFyYXRpb24sIGdvLXRzLW1vZGUtLXplcm8tdmFsdWUpIE5ldwpmdW5jdGlvbnMuCi0tLQog
bGlzcC9wcm9nbW9kZXMvZ28tdHMtbW9kZS5lbCB8IDEwMiArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0
aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvZ28tdHMtbW9kZS5lbCBiL2xpc3Av
cHJvZ21vZGVzL2dvLXRzLW1vZGUuZWwKaW5kZXggMmEyNzgzZjQ1ZjYuLjdmZmRjYTE2MDI5IDEw
MDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9nby10cy1tb2RlLmVsCisrKyBiL2xpc3AvcHJvZ21v
ZGVzL2dvLXRzLW1vZGUuZWwKQEAgLTQ2LDYgKzQ2LDE1IEBAIGdvLXRzLW1vZGUtaW5kZW50LW9m
ZnNldAogICA6c2FmZSAnaW50ZWdlcnAKICAgOmdyb3VwICdnbykKIAorKGRlZmN1c3RvbSBnby10
cy1tb2RlLWVycm9yLXplcm8tdmFsdWUgICJlcnIiCisgICJUaGUgemVybyB2YWx1ZSBmb3IgdHlw
ZSBcImVycm9yXCIuCitUaGUgZGVmYXVsdCBpcyBcImVyclwiLCBhc3N1bWluZyB0aGVyZSdzIGEg
dmFyaWFsYmUgbmFtZWQgXCJlcnJcIiBpbgordGhlIGN1cnJlbnQgc2NvcGUuIgorICA6dmVyc2lv
biAiMzAiCisgIDp0eXBlICdzdHJpbmcKKyAgOm9wdGlvbnMgJygiZXJyIiwgImZtdC5FcnJvcmYo
XCJmb3JtYXQ6ICV3XCIsIGVycikiLCAiZXJyb3JzLldyYXAoZXJyLCBcImZvcm1hdFwiKSIpCisg
IDpncm91cCAnZ28pCisKIChkZWZ2YXIgZ28tdHMtbW9kZS0tc3ludGF4LXRhYmxlCiAgIChsZXQg
KCh0YWJsZSAobWFrZS1zeW50YXgtdGFibGUpKSkKICAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/
KyAgICIuIiAgICAgIHRhYmxlKQpAQCAtMTk5LDcgKzIwOCw4IEBAIGdvLXRzLW1vZGUtLWZvbnQt
bG9jay1zZXR0aW5ncwogKGRlZnZhci1rZXltYXAgZ28tdHMtbW9kZS1tYXAKICAgOmRvYyAiS2V5
bWFwIHVzZWQgaW4gR28gbW9kZSwgcG93ZXJlZCBieSB0cmVlLXNpdHRlciIKICAgOnBhcmVudCBw
cm9nLW1vZGUtbWFwCi0gICJDLWMgQy1kIiAjJ2dvLXRzLW1vZGUtZG9jc3RyaW5nKQorICAiQy1j
IEMtZCIgIydnby10cy1tb2RlLWRvY3N0cmluZworICAiQy1jIEMtciIgIydnby10cy1tb2RlLWlu
c2VydC1yZXR1cm4pCiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVmaW5lLWRlcml2ZWQtbW9kZSBnby10
cy1tb2RlIHByb2ctbW9kZSAiR28iCkBAIC0zMjgsNiArMzM4LDk2IEBAIGdvLXRzLW1vZGUtLWNv
bW1lbnQtb24tcHJldmlvdXMtbGluZS1wCiAgICAgICg8PSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5v
ZGUpIHBvaW50ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQogICAgICAoc3RyaW5nLWVxdWFsICJj
b21tZW50IiAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkpKSkpCiAKKyhkZWZ1biBnby10cy1tb2Rl
LWluc2VydC1yZXR1cm4oKQorICAiSW5zZXJ0IGEgcmV0dXJuIHN0YXRlbWVudCB3aXRoIHplcm8g
dmFsdWVzIGZvciBmdW5jdGlvbiBhdCBwb2ludC4KK0l0J3MgYW4gZXJyb3IgdG8gY2FsbCB0aGlz
IGZ1bmN0aW9uIG91dHNpZGUgb2YgYSBmdW5jdGlvbiBib2R5LiIKKyAgKGludGVyYWN0aXZlKQor
ICAobGV0ICgocmV0dXJuLXN0YXRlbWVudCAoZ28tdHMtbW9kZS1yZXR1cm4pKSkKKyAgICAobGV0
ICgoc3RhcnQgKHBvaW50KSkpCisgICAgICAoYmFjay10by1pbmRlbnRhdGlvbikKKyAgICAgIChp
bnNlcnQgcmV0dXJuLXN0YXRlbWVudCkKKyAgICAgIChuZXdsaW5lLWFuZC1pbmRlbnQpCisgICAg
ICAoaW5kZW50LXJlZ2lvbiBzdGFydCAocG9pbnQpKSkpKQorCisoZGVmdW4gZ28tdHMtbW9kZS1y
ZXR1cm4oKQorICAiUmV0dXJuIGEgcmV0dXJuIHN0YXRlbWVudCB3aXRoIHplcm8gdmFsdWVzIGZv
ciBmdW5jdGlvbiBhdCBwb2ludC4KK0l0J3MgYW4gZXJyb3IgdG8gY2FsbCB0aGlzIGZ1bmN0aW9u
IG91dHNpZGUgb2YgYSBmdW5jdGlvbiBib2R5LiIKKyAgKGludGVyYWN0aXZlKQorICAobGV0KiAo
KGZ1bmMtbm9kZSAoZ28tdHMtbW9kZS0tZnVuY3Rpb24tYXQtcG9pbnQpKQorICAgICAgICAgKGJv
ZHktbm9kZSAodHJlZXNpdC1ub2RlLWNoaWxkLWJ5LWZpZWxkLW5hbWUgZnVuYy1ub2RlICJib2R5
IikpKQorCisgICAgKHVubGVzcyAoYW5kIGJvZHktbm9kZSAoPCAodHJlZXNpdC1ub2RlLXN0YXJ0
IGJvZHktbm9kZSkgKHBvaW50KSAodHJlZXNpdC1ub2RlLWVuZCBib2R5LW5vZGUpKSkKKyAgICAg
ICh1c2VyLWVycm9yICJQb2ludCBtdXN0IGJlIGluc2lkZSBhIEdvIGZ1bmN0aW9uIGJvZHkiKSkK
KworICAgIChsZXQqICgodHlwZXMgKGdvLXRzLW1vZGUtLWZ1bmN0aW9uLXJldHVybi10eXBlcyBm
dW5jLW5vZGUpKQorICAgICAgICAgICAoemVyby12YWx1ZXMgKG1hcGNhciAnZ28tdHMtbW9kZS0t
emVyby12YWx1ZSB0eXBlcykpCisgICAgICAgICAgIChyZXR1cm4tc3RhdGVtZW50IChmb3JtYXQg
InJldHVybiAlcyIgKHN0cmluZy1qb2luIHplcm8tdmFsdWVzICIsICIpKSkpCisgICAgICAoc3Ry
aW5nLXRyaW0tcmlnaHQgcmV0dXJuLXN0YXRlbWVudCkpKSkKKworKGRlZnVuIGdvLXRzLW1vZGUt
LWZ1bmN0aW9uLWF0LXBvaW50ICgpCisgICJSZXR1cm4gdGhlIHRyZWVzaXQgZnVuY3Rpb24gbm9k
ZSBhdCBwb2ludC4KK0Z1bmN0aW9uLCBtZXRob2RzIGFuZCBjbG9zdXJlcyAoYW5vbnltb3VzIGZ1
bmN0aW9ucykgYXJlIHJlY29nbml6ZWQuCitJZiBwb2ludCBpcyBub3QgaW4gYSByZWNvZ25pemVk
IGZ1bmN0aW9uLCBuaWwgaXMgcmV0dXJuZWQuIgorICAoaW50ZXJhY3RpdmUpCisgICh0cmVlc2l0
LXBhcmVudC11bnRpbAorICAgKHRyZWVzaXQtbm9kZS1hdCAocG9pbnQpKQorICAgKGxhbWJkYSAo
eCkKKyAgICAgKG1lbWJlciAodHJlZXNpdC1ub2RlLXR5cGUgeCkKKyAgICAgICAgICAgICAnKCJm
dW5jX2xpdGVyYWwiICJmdW5jdGlvbl9kZWNsYXJhdGlvbiIgIm1ldGhvZF9kZWNsYXJhdGlvbiIp
KSkgdCkpCisKKyhkZWZ1biBnby10cy1tb2RlLS1mdW5jdGlvbi1yZXR1cm4tdHlwZXMgKGZ1bmMt
bm9kZSkKKyAgIlJldHVybiB0aGUgdHlwZXMgb2YgdGhlIG91dHB1dCB2YXJpYWJsZXMgb2YgRlVO
Qy1OT0RFLgorVGhlIHJlc3VsdCBpcyBhIGxpc3Qgd2hpY2ggY291bGQgY29udGFpbiBhIHNpbmds
ZSBlbGVtZW50ICh0aGUgR28KK2Z1bmN0aW9uIGhhcyBvbmUgcmV0dXJuIGFyZ3VtZW50KSwgbXVs
dGlwbGUgZWxlbWVudHMgKG11bHRpcGxlIHJldHVybgorYXJndW1lbnRzKSwgb3Igbm8gZWxlbWVu
dHMgKG5vIHJldHVybiBhcmd1bWVudHMpLiIKKyAgKGxldCAoKHJlc3VsdC1ub2RlICh0cmVlc2l0
LW5vZGUtY2hpbGQtYnktZmllbGQtbmFtZSBmdW5jLW5vZGUgInJlc3VsdCIpKSkKKyAgICAocGNh
c2UgKHRyZWVzaXQtbm9kZS10eXBlIHJlc3VsdC1ub2RlKQorICAgICAgKCJwYXJhbWV0ZXJfbGlz
dCIgOzsgbXVsdGlwbGUgcmV0dXJuIHZhbHVlcworICAgICAgIChsZXQgKCh0eXBlcy1uZXN0ZWQg
KHRyZWVzaXQtaW5kdWNlLXNwYXJzZS10cmVlIHJlc3VsdC1ub2RlICJwYXJhbWV0ZXJfZGVjbGFy
YXRpb24iICMnZ28tdHMtbW9kZS0tdHlwZXMtZnJvbS1wYXJhbS1kZWNsYXJhdGlvbikpKQorICAg
ICAgICAgKGFwcGx5ICMnYXBwZW5kIChtYXBjYXIgJ2NhciAoY2RyIHR5cGVzLW5lc3RlZCkpKSkp
CisgICAgICAoKHByZWQgbnVsbCkgOzsgbm8gcmV0dXJuIHZhbHVlCisgICAgICAgbmlsKQorICAg
ICAgKF8gOzsgc2luZ2xlIHJldHVybiB2YWx1ZQorICAgICAgIChsaXN0ICh0cmVlc2l0LW5vZGUt
dGV4dCByZXN1bHQtbm9kZSB0KSkpKSkpCisKKyhkZWZ1biBnby10cy1tb2RlLS10eXBlcy1mcm9t
LXBhcmFtLWRlY2xhcmF0aW9uIChub2RlKQorICJFeHRyYWN0IHRoZSBHbyB0eXBlKHMpIGZyb20g
Tk9ERS4gIEl0IG11c3QgaGF2ZSB0eXBlIHBhcmFtZXRlcl9kZWNsYXJhdGlvbi4KKworQSBwYXJh
bWV0ZXJfZGVjbGFyYXRpb24gbm9kZSBjYW4gY29udGFpbiBzaW5nbGUgdmFsdWUgYChpbnQpJywg
bmFtZWQKK3NpbmdsZSB2YWx1ZSBgKHN1bSBpbnQpJywgbXVsdGlwbGVzIHZhbHVlcyBgKGludCwg
aW50KScsIG9yIG11bHRpcGxlCituYW1lZCB2YWx1ZXMgYCh4LCB5IGludCknLgorCitBbGwgdGhl
IGFib3ZlIGNhc2VzIGFyZSByZWNvZ25pemVkLiAgT25seSB0aGUgdHlwZXMgYXJlIHJldHVybmVk
LCBmb3IKK2V4YW1wbGUsIHdpdGggcGFyYW1ldGVyX2RlY2xhcmF0aW9uIGAoeCwgeSBpbnQpJywg
dGhlIHJlc3VsdCBpcworXChcImludFwiLCBcImludFwiKS4iCisgIChsZXQgKCh0eXBlICh0cmVl
c2l0LW5vZGUtY2hpbGQtYnktZmllbGQtbmFtZSBub2RlICJ0eXBlIikpCisgICAgICAgIChjb3Vu
dCAobGVuZ3RoICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUgbm9kZSAiKHBhcmFtZXRlcl9kZWNsYXJh
dGlvbiBuYW1lOihfKSBAbmFtZSkiIG5pbCBuaWwgdCkpKSkKKyAgICAobWFrZS1saXN0IChpZiAo
emVyb3AgY291bnQpIDEgY291bnQpICh0cmVlc2l0LW5vZGUtdGV4dCB0eXBlIHQpKSkpCisKKyhk
ZWZ1biBnby10cy1tb2RlLS16ZXJvLXZhbHVlIChnby10eXBlKQorICAiUmV0dXJuIHRoZSBHbyB6
ZXJvIHZhbHVlIGZvciBHTy1UWVBFLgorRm9yIHR5cGUgXCJlcnJvclwiLCB0aGUgemVybyB2YWx1
ZSBpcyBkZXRlcm1pbmVkIGJ5IHZhcmlhYmxlCitgZ28tdHMtbW9kZS1lcnJvci16ZXJvLXZhbHVl
Jy4KKworVGhpcyBmdW5jdGlvbiBhc3N1bWVzIGFyYml0cmFyeSB0eXBlcyBhcmUgR28gc3RydWN0
cywgZm9yIGV4YW1wbGUgZm9yCitHTy1UWVBFIFwicGVyc29uXCIsIHRoZSByZXR1biB2YWx1ZSBp
cyBcInBlcnNvbnt9XCIuIgorICAocGNhc2UgZ28tdHlwZQorICAgICgob3IgImludCIgICJpbnQ4
IiAgImludDE2IiAgImludDMyIiAgImludDY0IikgIjAiKQorICAgICgob3IgInVpbnQiICJ1aW50
OCIgInVpbnQxNiIgInVpbnQzMiIgInVpbnQ2NCIpICIwIikKKyAgICAoImJvb2wiICJmYWxzZSIp
CisgICAgKCJzdHJpbmciICJcIlwiIikKKyAgICAoKG9yICJ1aW50cHRyIiAiYnl0ZSIgInJ1bmUi
KSAiMCIpCisgICAgKChvciAiZmxvYXQzMiIgImZsb2F0NjQiKSAiMC4wIikKKyAgICAoKG9yICJj
b21wbGV4NjQiICJjb21wbGV4MTI4IikgImNvbXBsZXgoMCwgMCkiKQorICAgICgocHJlZCAoc3Ry
aW5nLXByZWZpeC1wICJtYXAiKSkgIm5pbCIpCisgICAgKChwcmVkIChzdHJpbmctcHJlZml4LXAg
IioiKSkgIm5pbCIpCisgICAgKChwcmVkIChzdHJpbmctcHJlZml4LXAgIltdIikpICJuaWwiKQor
ICAgICgocHJlZCAoc3RyaW5nLXByZWZpeC1wICJjaGFuIikpICJuaWwiKQorICAgICgocHJlZCAo
c3RyaW5nLXByZWZpeC1wICJmdW5jIikpICJuaWwiKQorICAgICgiZXJyb3IiIGdvLXRzLW1vZGUt
ZXJyb3ItemVyby12YWx1ZSkKKyAgICAoKHJ4IGJvbCAoMSsgKG9yIGFscGhhbnVtZXJpYyAiXyIg
Ii4iKSkgZW9sKSAoY29uY2F0IGdvLXR5cGUgInt9IikpCisgICAgKF8gKHVzZXItZXJyb3IgIlVu
a25vd24gR28gdHlwZSBcIiVzXCIiIGdvLXR5cGUpKSkpCisKIDs7IGdvLm1vZCBzdXBwb3J0Lgog
CiAoZGVmdmFyIGdvLW1vZC10cy1tb2RlLS1zeW50YXgtdGFibGUKLS0gCjIuMzkuMQoK
--00000000000045bbbd05f431ead0--




Acknowledgement sent to Evgeni Kolev <evgenysw@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#61368; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 20 Jan 2024 12:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.