GNU bug report logs - #70968
29.2.50; choose-completion on an emacs22-style completion deletes text after point

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: Spencer Baugh <sbaugh@HIDDEN>; dated Wed, 15 May 2024 20:27:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

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


Received: (at 70968) by debbugs.gnu.org; 22 Oct 2024 00:11:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 21 20:11:32 2024
Received: from localhost ([127.0.0.1]:53967 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1t32Um-0006f9-Co
	for submit <at> debbugs.gnu.org; Mon, 21 Oct 2024 20:11:32 -0400
Received: from flow-a2-smtp.messagingengine.com ([103.168.172.137]:53713)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1t32Ui-0006er-KW
 for 70968 <at> debbugs.gnu.org; Mon, 21 Oct 2024 20:11:30 -0400
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailflow.phl.internal (Postfix) with ESMTP id E38DC2009E4;
 Mon, 21 Oct 2024 20:10:55 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Mon, 21 Oct 2024 20:10:55 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-type:content-type:date:date:from:from:in-reply-to
 :in-reply-to:message-id:mime-version:references:reply-to:subject
 :subject:to:to; s=fm1; t=1729555855; x=1729563055; bh=ixlHnayHEh
 MGKHYlaBqTbg/TrFEJfV2sVNp1OdxhuVk=; b=ROnOkxhskH9Rpu7skix0aHspH3
 Oh0bkDQI/Uj2gAVRNF42PJExME3Tfphc9g7eYOPRyswXZOChb0C8WWfmkd1Duh1z
 kWeDdQuZT8OJj9lDlYjoTWlFG0So6Y9r88eGGr6b2HasabXJeceenFLX863o7DWb
 2IkhiY+e5GSx7jHSF4mu+Ln9WCc9b3kkilrB3xhRhzJp2nc0XBAfBnL6+ppDR3FV
 FZK1GUi65JL9RmQem8wdRQ7+MSj9MMoVdz5NziQKurWe7ZRHEFbJqWLZRVSkh2ig
 LEcUdM4BGkb/dh/Wh2G9kMMYJxpbzKMoeW04SeDILANnx7eXsDShCSDx+LCw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 i07de48aa.fm3; t=1729555855; x=1729563055; bh=ixlHnayHEhMGKHYlaB
 qTbg/TrFEJfV2sVNp1OdxhuVk=; b=ifJYXAL3faRCLXtG9tOUI8rEd93U2MUegz
 fXIHhz53SXnnzb//VV7fIs8o+6suLhuuaqElyFKL6KknLNX1Szsr2v4U2hOg1JUs
 DYNrvMa3ViPv9xWKVls8LU0NwlkA4D9X8fMJtQYYB+n1CGyuKLjABoo/6GqlYgfq
 rN+qBwTOAkdZcwgNoeJV9z2g4/ThoXkSPAuAUowqNhzQTSiGW+JNVgsDVZ7TZStN
 Ctr+V/BTw2luXbrY/5bUHZBC+zW+0bryDEu7kDho8PspCEUxyOIQRQwrMohW3S22
 qxaEKdn26jXUx1Ip5/+TO/YpfTnbQQ8kTvI/L2vZKkRsnFZBSonQ==
X-ME-Sender: <xms:j-0WZy1VBAph-o0kf4OEAF8OmmDGgnBBJKSAlP3FXlzk0RN9qJyQSA>
 <xme:j-0WZ1HO0PtJ-OWP2fpULPxBhQhLv81GwY1HSuZ9C9ewJnVRXwejD0-gB4dGqyouq
 6R0YB3lxWtFG1UqHsQ>
X-ME-Received: <xmr:j-0WZ672UDkr9l6L_OgBZbWfXJc-WvPxtSd64ChlZKhynvYaT3twT4HhC1Y7od_Y0N0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeiuddgtdduucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurheptgfkffggfgfuhffvvehfjgesmhdtreertddvjeen
 ucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvg
 hvqeenucggtffrrghtthgvrhhnpedtvdeugedvteelvdegvefguedtgfethefggeffkedt
 keegveeifeeiudejueffffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh
 grihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohep
 hedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepshgsrghughhhsehjrghnvghsth
 hrvggvthdrtghomhdprhgtphhtthhopegvlhhiiiesghhnuhdrohhrghdprhgtphhtthho
 peejtdelieekseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohepmhhonhhnih
 gvrhesihhrohdruhhmohhnthhrvggrlhdrtggrpdhrtghpthhtohepjhhurhhisehlihhn
 khhovhdrnhgvth
X-ME-Proxy: <xmx:j-0WZz3IZLZncp3RqI9LJubTL7ZNcMICHq-nHuWHJLXpyvAdwuqcGQ>
 <xmx:j-0WZ1HUT-_10XGbRPJwV1MPtet7CFrAXnWwacb4wuGSLrXB35YWUQ>
 <xmx:j-0WZ8_IUBe1C8PtWISFSJm6WDobx31djyGAOXHUqxanC6UnnsWkVA>
 <xmx:j-0WZ6kLQZVSWJtwXTt8j-0eNp4LZ_qHmLaMS83XbKomciDYcPQM-g>
 <xmx:j-0WZ6S6qCkbr83kMaOsLegEvJJoumLB9HbAMcFOjGgqhyx0370YdwwB>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 21 Oct 2024 20:10:52 -0400 (EDT)
Content-Type: multipart/mixed; boundary="------------AWHvUf0xxflWYq0C4pX0qMKG"
Message-ID: <1446df3a-8670-4ae5-83ad-b4421e647ef3@HIDDEN>
Date: Tue, 22 Oct 2024 01:10:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
From: Dmitry Gutov <dmitry@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN> <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN> <86ed5vzzru.fsf@HIDDEN>
 <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN> <ierjzfjphzm.fsf@HIDDEN>
 <86o74qh9wv.fsf@HIDDEN> <ierr09jgyr1.fsf@HIDDEN>
 <8479c25d-b4ae-4e89-9880-0857a996936a@HIDDEN>
Content-Language: en-US
In-Reply-To: <8479c25d-b4ae-4e89-9880-0857a996936a@HIDDEN>
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70968
Cc: 70968 <at> debbugs.gnu.org, monnier@HIDDEN, juri@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.7 (-)

This is a multi-part message in MIME format.
--------------AWHvUf0xxflWYq0C4pX0qMKG
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 24/09/2024 03:03, Dmitry Gutov wrote:
> 
> The attached patch does not make a distinction for file name completion 
> - it just covers the core problem - but I think any UI could use the 
> addition and likewise lookup the 'file' category, and print the "hidden" 
> suffix in the Completions, and decide to drop the suffix in your first 
> scenario (file name completion with exit imminent).

Here's a halfway PoC of the UI printing the suffix based on the metadata 
property with emacs22 (without special behavior for files yet, but it 
should be straightforward to add the same set of conditions - the 
category, completion boundaries, etc).
--------------AWHvUf0xxflWYq0C4pX0qMKG
Content-Type: text/x-patch; charset=UTF-8;
 name="completion--emacs22-adjust-metadata-with-shadow-suffix.diff"
Content-Disposition: attachment;
 filename*0="completion--emacs22-adjust-metadata-with-shadow-suffix.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3AvbWluaWJ1ZmZlci5lbCBiL2xpc3AvbWluaWJ1ZmZlci5lbApp
bmRleCA4MDRhZmU5Y2I0My4uNTk1ZmRjZDIyODggMTAwNjQ0Ci0tLSBhL2xpc3AvbWluaWJ1
ZmZlci5lbAorKysgYi9saXNwL21pbmlidWZmZXIuZWwKQEAgLTI1NjgsNiArMjU2OCwxMCBA
QCBjb21wbGV0aW9ucy0tYWZ0ZXItY2hhbmdlCiAgICAgICAod2l0aC1zZWxlY3RlZC13aW5k
b3cgd2luZG93CiAgICAgICAgIChjb21wbGV0aW9ucy0tZGVzZWxlY3QpKSkpKQogCisoZGVm
ZmFjZSBjb21wbGV0aW9ucy1pZ25vcmVkCisgICcoKHQgKDppbmhlcml0IHNoYWRvdykpKQor
ICAiRmFjZSBmb3IgdGV4dCB3aGljaCB3YXMgaWdub3JlZCBieSB0aGUgY29tcGxldGlvbiBz
dHlsZS4iKQorCiAoZGVmdW4gbWluaWJ1ZmZlci1jb21wbGV0aW9uLWhlbHAgKCZvcHRpb25h
bCBzdGFydCBlbmQpCiAgICJEaXNwbGF5IGEgbGlzdCBvZiBwb3NzaWJsZSBjb21wbGV0aW9u
cyBvZiB0aGUgY3VycmVudCBtaW5pYnVmZmVyIGNvbnRlbnRzLiIKICAgKGludGVyYWN0aXZl
KQpAQCAtMjYxMyw3ICsyNjE3LDYgQEAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLWhlbHAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vi
c3RyaW5nIChwb2ludCkgZW5kKSkpKQogICAgICAgICAgICAgICAgIChwb2ludCkpKQogICAg
ICAgICAgICAgIChmaWVsZC1jaGFyIChhbmQgKDwgZmllbGQtZW5kIGVuZCkgKGNoYXItYWZ0
ZXIgZmllbGQtZW5kKSkpCi0gICAgICAgICAgICAgKGJhc2UtcG9zaXRpb24gKGxpc3QgKCsg
c3RhcnQgYmFzZS1zaXplKSBmaWVsZC1lbmQpKQogICAgICAgICAgICAgIChhbGwtbWQgKGNv
bXBsZXRpb24tLW1ldGFkYXRhIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKHBvaW50
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLXNp
emUgbWQKQEAgLTI2MjMsNiArMjYyNiwxMyBAQCBtaW5pYnVmZmVyLWNvbXBsZXRpb24taGVs
cAogICAgICAgICAgICAgIChhZmYtZnVuIChjb21wbGV0aW9uLW1ldGFkYXRhLWdldCBhbGwt
bWQgJ2FmZml4YXRpb24tZnVuY3Rpb24pKQogICAgICAgICAgICAgIChzb3J0LWZ1biAoY29t
cGxldGlvbi1tZXRhZGF0YS1nZXQgYWxsLW1kICdkaXNwbGF5LXNvcnQtZnVuY3Rpb24pKQog
ICAgICAgICAgICAgIChncm91cC1mdW4gKGNvbXBsZXRpb24tbWV0YWRhdGEtZ2V0IGFsbC1t
ZCAnZ3JvdXAtZnVuY3Rpb24pKQorICAgICAgICAgICAgIChpZ25vcmUtYWZ0ZXItcG9pbnQg
KGNvbXBsZXRpb24tbWV0YWRhdGEtZ2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWxsLW1kICdjb21wbGV0aW9uLWlnbm9yZS1hZnRlci1wb2ludCkpCisgICAgICAg
ICAgICAgKGJhc2UtcG9zaXRpb24gKGxpc3QgKCsgc3RhcnQgYmFzZS1zaXplKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBpZ25vcmUtYWZ0ZXItcG9pbnQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQtZW5kKSkpCisgICAgICAgICAgICAg
KGlnbm9yZS1zdWZmaXggKGNvbXBsZXRpb24tbWV0YWRhdGEtZ2V0IGFsbC1tZCAnY29tcGxl
dGlvbi1pZ25vcmUtYWZ0ZXItcG9pbnQpKQogICAgICAgICAgICAgIChtYWluYnVmIChjdXJy
ZW50LWJ1ZmZlcikpCiAgICAgICAgICAgICAgOzsgSWYgdGhlICpDb21wbGV0aW9ucyogYnVm
ZmVyIGlzIHNob3duIGluIGEgbmV3CiAgICAgICAgICAgICAgOzsgd2luZG93LCBtYXJrIGl0
IGFzIHNvZnRseS1kZWRpY2F0ZWQsIHNvIGJ1cnktYnVmZmVyIGluCkBAIC0yNjY4LDYgKzI2
NzgsMTQgQEAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLWhlbHAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdoaXN0b3JpY2FsIChtaW5pYnVmZmVyLXNv
cnQtYnktaGlzdG9yeSBjb21wbGV0aW9ucykpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChfIChmdW5jYWxsIGNvbXBsZXRpb25zLXNvcnQgY29tcGxl
dGlvbnMpKSkpKQogCisgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gaWdub3JlLXN1ZmZp
eAorICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGhpZGRlbi1zdWZmaXggKHByb3Bl
cnRpemUgKGJ1ZmZlci1zdWJzdHJpbmcgKHBvaW50KSBlbmQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFjZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nv
bXBsZXRpb25zLWlnbm9yZWQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEg
Y29tcGxldGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAo
bGFtYmRhIChzKSAoY29uY2F0IHMgaGlkZGVuLXN1ZmZpeCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnMpKSkpCisKICAgICAgICAgICAg
ICAgICAgICAgICA7OyBBZnRlciBzb3J0aW5nLCBncm91cCB0aGUgY2FuZGlkYXRlcyB1c2lu
ZyB0aGUKICAgICAgICAgICAgICAgICAgICAgICA7OyBgZ3JvdXAtZnVuY3Rpb24nLgogICAg
ICAgICAgICAgICAgICAgICAgICh3aGVuIGdyb3VwLWZ1bgpAQCAtMzc3OCw2ICszNzk2LDEz
IEBAIGNvbXBsZXRpb24tZW1hY3MyMi1hbGwtY29tcGxldGlvbnMKICAgICAgcG9pbnQKICAg
ICAgKGNhciAoY29tcGxldGlvbi1ib3VuZGFyaWVzIGJlZm9yZXBvaW50IHRhYmxlIHByZWQg
IiIpKSkpKQogCisocHV0ICdlbWFjczIyICdjb21wbGV0aW9uLS1hZGp1c3QtbWV0YWRhdGEg
J2NvbXBsZXRpb24tLWVtYWNzMjItYWRqdXN0LW1ldGFkYXRhKQorCisoZGVmdW4gY29tcGxl
dGlvbi0tZW1hY3MyMi1hZGp1c3QtbWV0YWRhdGEgKG1ldGFkYXRhKQorICBgKG1ldGFkYXRh
CisgICAgKGNvbXBsZXRpb24taWdub3JlLWFmdGVyLXBvaW50IC4gdCkKKyAgICAsQChjZHIg
bWV0YWRhdGEpKSkKKwogOzs7IEJhc2ljIGNvbXBsZXRpb24uCiAKIChkZWZ1biBjb21wbGV0
aW9uLS1tZXJnZS1zdWZmaXggKGNvbXBsZXRpb24gcG9pbnQgc3VmZml4KQpkaWZmIC0tZ2l0
IGEvbGlzcC9zaW1wbGUuZWwgYi9saXNwL3NpbXBsZS5lbAppbmRleCBlMzVjZmUwNDc5Yi4u
YTQ5NTIzMWMyMTEgMTAwNjQ0Ci0tLSBhL2xpc3Avc2ltcGxlLmVsCisrKyBiL2xpc3Avc2lt
cGxlLmVsCkBAIC0xMDI2NCw2ICsxMDI2NCw3IEBAIGNob29zZS1jb21wbGV0aW9uCiAgICAg
ICAgICAgKGJhc2UtcG9zaXRpb24gY29tcGxldGlvbi1iYXNlLXBvc2l0aW9uKQogICAgICAg
ICAgIChpbnNlcnQtZnVuY3Rpb24gY29tcGxldGlvbi1saXN0LWluc2VydC1jaG9pY2UtZnVu
Y3Rpb24pCiAgICAgICAgICAgKGNvbXBsZXRpb24tbm8tYXV0by1leGl0IChpZiBuby1leGl0
IHQgY29tcGxldGlvbi1uby1hdXRvLWV4aXQpKQorICAgICAgICAgIChpZ25vcmUtZmFjZSBu
aWwpCiAgICAgICAgICAgKGNob2ljZQogICAgICAgICAgICAoaWYgY2hvb3NlLWNvbXBsZXRp
b24tZGVzZWxlY3QtaWYtYWZ0ZXIKICAgICAgICAgICAgICAgIChvciAoZ2V0LXRleHQtcHJv
cGVydHkgKHBvc24tcG9pbnQgKGV2ZW50LXN0YXJ0IGV2ZW50KSkKQEAgLTEwMjg1LDYgKzEw
Mjg2LDEwIEBAIGNob29zZS1jb21wbGV0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJlZykpCiAgICAgICAgICAgICAgICAoZ2V0LXRleHQtcHJvcGVydHkgYmVnICdjb21w
bGV0aW9uLS1zdHJpbmcpKSkpKSkKIAorICAgICAgKHdoZW4gKGdldC10ZXh0LXByb3BlcnR5
ICgxLSAobGVuZ3RoIGNob2ljZSkpICdmYWNlIGNob2ljZSkKKyAgICAgICAgKHNldHEgaWdu
b3JlLWZhY2UgKHByZXZpb3VzLXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UgKDEtIChsZW5ndGgg
Y2hvaWNlKSkgJ2ZhY2UgY2hvaWNlKSkKKyAgICAgICAgKHNldHEgY2hvaWNlIChzdWJzdHJp
bmcgY2hvaWNlIDAgaWdub3JlLWZhY2UpKSkKKwogICAgICAgKHVubGVzcyAoYnVmZmVyLWxp
dmUtcCBidWZmZXIpCiAgICAgICAgIChlcnJvciAiRGVzdGluYXRpb24gYnVmZmVyIGlzIGRl
YWQiKSkKICAgICAgICh1bmxlc3Mgbm8tcXVpdAo=

--------------AWHvUf0xxflWYq0C4pX0qMKG--




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

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


Received: (at 70968) by debbugs.gnu.org; 17 Oct 2024 00:20:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 16 20:20:20 2024
Received: from localhost ([127.0.0.1]:60927 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1t1EFX-0005mN-TH
	for submit <at> debbugs.gnu.org; Wed, 16 Oct 2024 20:20:20 -0400
Received: from fhigh-a5-smtp.messagingengine.com ([103.168.172.156]:50593)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1t1EFV-0005m8-UZ
 for 70968 <at> debbugs.gnu.org; Wed, 16 Oct 2024 20:20:18 -0400
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 8CBCB1140127;
 Wed, 16 Oct 2024 20:19:52 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Wed, 16 Oct 2024 20:19:52 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-type:content-type:date:date:from:from:in-reply-to
 :in-reply-to:message-id:mime-version:references:reply-to:subject
 :subject:to:to; s=fm1; t=1729124392; x=1729210792; bh=M5SJgfbwGG
 sovjboLqk6uax/KJ7yaeaqsMHqXAjhdoA=; b=ZSgPoQMcMIQ5XEjiszhpzeHlnl
 wIHfbZsgySvTDXFVnL5jD+rtNDDHcfcrchHIRncHsH3jqUeBuMMdCwdOuLqXTezr
 zAYCUKxgTmWarbL5TtNrSkdGRcKEQg/q+AsvmO0lKXgzDCm5yTGJr7B70dL8Y9SD
 YfEmamnKinTDAHXcWOMmNsY5FwI60rbRpyruoIbeSNZsDKhgEiMxChFAR3RHVNe0
 MrrnMmY7/3kUPy3uf+4b328wd+SVa4s0dKlncsACRG1FNP32jHzOi+RC18mpBPNL
 SI7T8vgCpY13zLWN4/NZVZskPEjeCphe0hmv2+NbHO4E2rm5bNDAyUI/fdQg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm2; t=1729124392; x=1729210792; bh=M5SJgfbwGGsovjboLqk6uax/KJ7y
 aeaqsMHqXAjhdoA=; b=f/ppGFdzBajma8yIGhlGA1Tn6ITmOxaHmLgzJkuTXm4Q
 aU7zvoHdWvqU+PNizTX7T9vhbt9QiOByfvekCCrqBO1hOEwfpJF9nkJ0ghc1tai9
 kppCNggR4cXrgYp9xNvpXI+xmW+7UC+iN6sgBVQIsPzqHjkF4+Eb4J/00WJfy4Wg
 ZTyISO9fue0vQyJKif/wSXKAiDwjS3vlpen4L4ornKoq3kcae8ZLFTTI/dTei7XF
 FGqVJph7NesqKVrzgw0tkYyObz7b7beJuUoMWnxj5k8oqF4BdEFEQkAPQcPc5dpl
 45auXSQ1Qknouh3guPb2XeJaOsx7lXziBFiqToED/w==
X-ME-Sender: <xms:J1gQZ9qFTv2euALPr4qwHjAn7zl4CczqYQ8MrL7R18gBe_NB1zgFnw>
 <xme:J1gQZ_r1nh8m1HkBMO2p4fGFhE29LL2fbwBdENkD1AdinNTTozLH7fgq6SJK8nEL7
 _ypkN5PLNPLWEOf-dA>
X-ME-Received: <xmr:J1gQZ6Ovhc3APh4rbw-_SXxB7PS08Z_FKekaSTNUoHMQ3Yj76S7IP6VcHRwQZ1Ygv0Q>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehtddgfeefucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeen
 ucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvg
 hvqeenucggtffrrghtthgvrhhnpeehleefudekudduveekieelgfeiffdvkefhkeeljeeu
 jeegueekveffkeejjeevheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh
 grihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohep
 hedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepshgsrghughhhsehjrghnvghsth
 hrvggvthdrtghomhdprhgtphhtthhopegvlhhiiiesghhnuhdrohhrghdprhgtphhtthho
 peejtdelieekseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohepmhhonhhnih
 gvrhesihhrohdruhhmohhnthhrvggrlhdrtggrpdhrtghpthhtohepjhhurhhisehlihhn
 khhovhdrnhgvth
X-ME-Proxy: <xmx:J1gQZ46m3ya6DKEWl5WtjoU9T7Hx-M0e1RttkphNBmOupkXzxahJnQ>
 <xmx:KFgQZ85CCWgf8L8lDnFGA_PIn1vlCnYfnBHF9BJluBiLXEfDB5UePQ>
 <xmx:KFgQZwgixVjpYRfIO0diUoRcCtKc8o8HpRbY82cXIw-DOsS4jJ2WCA>
 <xmx:KFgQZ-4-gKpafV5lhYtMmnIF7ZP3pOHv_E4w57WljozanaMefksECw>
 <xmx:KFgQZ2SyyaDiglOPY5AanJeRKguO5c8mdGmeYCrRZXfEZKjJsZ6qzOWg>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 16 Oct 2024 20:19:50 -0400 (EDT)
Content-Type: multipart/mixed; boundary="------------IEDALas1eiIuOhY095S7zqDl"
Message-ID: <210a835e-17be-4b04-a172-966ccdd58b70@HIDDEN>
Date: Thu, 17 Oct 2024 03:19:48 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
To: Spencer Baugh <sbaugh@HIDDEN>
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN> <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN> <86ed5vzzru.fsf@HIDDEN>
 <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN> <ierjzfjphzm.fsf@HIDDEN>
 <86o74qh9wv.fsf@HIDDEN> <ierr09jgyr1.fsf@HIDDEN>
 <8479c25d-b4ae-4e89-9880-0857a996936a@HIDDEN>
 <iera5f5kxje.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <iera5f5kxje.fsf@HIDDEN>
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70968
Cc: Eli Zaretskii <eliz@HIDDEN>, 70968 <at> debbugs.gnu.org,
 monnier@HIDDEN, juri@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.7 (-)

This is a multi-part message in MIME format.
--------------IEDALas1eiIuOhY095S7zqDl
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 15/10/2024 21:53, Spencer Baugh wrote:

> I think this is preferable, though, and even if it isn't, it should
> still be supported.
> 
> This keeps it explicit to the user exactly what text will be inserted
> into the buffer upon accepting a completion.
> 
> Consider these two cases of completion (| representing point):
> 
> A. switch-to-|asdf
> 
> B. switch-to-|buffer
> 
> In both cases, switch-to-next-buffer is a potential completion, provided
> by "emacs22" in the case A and "basic" in case B.
> 
> But in case A, if switch-to-next-buffer is chosen, the "asdf" should be
> preserved, and in case B, if switch-to-next-buffer, the "buffer" should
> be deleted.
> 
> Because they have different behavior, they should appear differently to
> the user.  That's why I think case A should show
> "switch-to-next-bufferasdf" in the *Completions* buffer, with "asdf"
> grayed out via a "completions-ignored" face.
> 
> If a user decides they don't want "asdf" text to be shown in case A,
> then they can customize that.  If a frontend decides it doesn't want to
> show that text, it can omit the text.
> 
> But it should at least be *possible* for the text to be shown.
> Otherwise there's no way to distinguish the two cases.

I suppose we should ask what makes sense as the default behavior, and if 
it's going to be different between frontends, how difficult is the 
"other" approach would be to support.

Since company-mode supports the "proper" behavior for emacs22, I've had 
some time to get used to it and see if anything looks off. And IME the 
current indicators seem enough. For Elisp anyway, we a) have the 
completions themselves, b) the highlighting inside the completions for 
the characters matching the input. When the style matches the prefix 
only, all the completions will only have that many characters 
highlighted, not the chars from the suffix.

See the second attached pic for an example. It seems okay to me, but I 
suppose the experience might vary between completion types and 
programming languages, etc.

>> Finally, the use of 'completion-position-after-insert' seems like it
>> could be used separately from the "ignored text", meaning the spans
>> don't have to match. So it could be a separate feature, one that's
>> easy enough to implement on its own.
> 
> Yes, and I indeed think this feature is useful on its own, because it
> allows choose-completion to be fully equivalent to
> completion-try-completion.  Right now completion-try-completion can
> change point, but choose-completion can't.  That's limiting for a bunch
> of reasons, and the inability to fix this bug purely in a completion
> style is one of them.

Makes a certain sense. Just to make a note, I think try-completion moves 
point specifically to help position before the next char which would 
help disambiguate completions. choose-completion happens when no other 
completions are relevant, so it couldn't move point similarly.

>> None of the above would be insurmountable, but here's what I think
>> avoids it using the 'completion--adjust-metadata' thingy that was
>> originally added for 'flex' a few releases ago: adding a metadata key
>> 'completion-ignore-after-point'.
>>
>> The attached patch does not make a distinction for file name
>> completion - it just covers the core problem - but I think any UI
>> could use the addition and likewise lookup the 'file' category, and
>> print the "hidden" suffix in the Completions, and decide to drop the
>> suffix in your first scenario (file name completion with exit
>> imminent).
>>
>> Spencer, Stefan, WDYT?
> 
> Your patch is simple, and it works for default completion, but two
> issues:
> 
> - Your patch doesn't distinguish the two cases A and B that I described above.
>    
> - Your patch will require company-mode and other frontends to change.
>    My patch does not strictly require that.

In practice, company-mode will require a small change anyway, since it 
doesn't do pass-through for any of the faces now. See the first attachment.

But to slice off the suffixes in the popup, which I'm currently inclined 
to do, might require more (and more complex) code than to print them 
selectively in the frontends that choose to (the "opt-in" approach). 
This is a part that gives me pause.

>    But if we're already requiring that, I think we should take the
>    opportunity to add the more powerful feature
>    completion-position-after-insert.
> 
> Here's a simplified version of my earlier patch, which modifies the
> emacs22 style to make it easier to discuss.  I think this is equally
> simple as your patch, but it:
> 
> - Distinguishes the cases A and B by including the ignored text in the
>    completion, just grayed out.
> 
> - Fixes the bug for other frontends without requiring them to change
>    (they get additional benefit when they change to support
>    completion-position-after-insert)
> 
> Note that due to a separate bug in completion--twq-all, used in filename
> completion, the graying-out face is dropped from the completion
> candidates before they reach *Completions*; so if you try this, try it
> by e.g. completing Lisp symbols.

Thanks. If I were to do a test-drive to look for edge cases, is Lisp 
symbols the only kind of completion that I should try out?
--------------IEDALas1eiIuOhY095S7zqDl
Content-Type: image/png; name="Screenshot from 2024-10-17 03-00-36.png"
Content-Disposition: attachment; filename="Screenshot from 2024-10-17
 03-00-36.png"
Content-Transfer-Encoding: base64

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
V0mSAt7/A5UD/DhZ3+IIAAAAAElFTkSuQmCC
--------------IEDALas1eiIuOhY095S7zqDl
Content-Type: image/png; name="Screenshot from 2024-10-17 03-01-07.png"
Content-Disposition: attachment; filename="Screenshot from 2024-10-17
 03-01-07.png"
Content-Transfer-Encoding: base64

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
0AAAAABJRU5ErkJggg==

--------------IEDALas1eiIuOhY095S7zqDl--




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

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


Received: (at 70968) by debbugs.gnu.org; 15 Oct 2024 18:54:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 15 14:54:09 2024
Received: from localhost ([127.0.0.1]:57462 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1t0mgK-0002wu-5Q
	for submit <at> debbugs.gnu.org; Tue, 15 Oct 2024 14:54:08 -0400
Received: from mxout1.mail.janestreet.com ([38.105.200.78]:39743)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <sbaugh@HIDDEN>) id 1t0mgH-0002wN-OP
 for 70968 <at> debbugs.gnu.org; Tue, 15 Oct 2024 14:54:06 -0400
From: Spencer Baugh <sbaugh@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
In-Reply-To: <8479c25d-b4ae-4e89-9880-0857a996936a@HIDDEN> (Dmitry Gutov's
 message of "Tue, 24 Sep 2024 03:03:41 +0300")
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN>
 <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN>
 <86ed5vzzru.fsf@HIDDEN> <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN>
 <ierjzfjphzm.fsf@HIDDEN> <86o74qh9wv.fsf@HIDDEN>
 <ierr09jgyr1.fsf@HIDDEN>
 <8479c25d-b4ae-4e89-9880-0857a996936a@HIDDEN>
Date: Tue, 15 Oct 2024 14:53:41 -0400
Message-ID: <iera5f5kxje.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com;
 s=waixah; t=1729018421;
 bh=IQoxUpDMAKqT5mUVt5DAs/TFPT4N+gkAxy8AK63eRck=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date;
 b=soiMeddUnjkbVV7XJxf6zXxsh+L4BPOM3odEZuFGJqAgPdKm8tbSX/m03K2MATu5M
 obSLhyaFcqO4Pd5NSpodXt+CV+iugJsIhrz/oOu9FtZqo/nCHDHWcf7HDMKuFrJfT6
 gxX7yvIyFLkcNTDcCvRLwgTA80kxpVoBMkxdwvTGAy5INPEUnl8nHU2sEseJcrxU/k
 zOa7Cjs4m9og+b/mnsyDq0cuI30Z7PAa7tfxYsKk9Hogrrq3FplyqvwbASp6JCqWV0
 B2w01odZgRKMPqWJHJlgLVoI2ugH76icS9F6oX0v3TKyJTOSdKXXUE5ESoR0bvv1sI
 mjL1aSExwPOXQ==
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 70968
Cc: Eli Zaretskii <eliz@HIDDEN>, 70968 <at> debbugs.gnu.org,
 monnier@HIDDEN, juri@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 (-)

--=-=-=
Content-Type: text/plain

Dmitry Gutov <dmitry@HIDDEN> writes:

> Hi Spencer,
>
> On 16/09/2024 22:54, Spencer Baugh wrote:
>> Eli Zaretskii <eliz@HIDDEN> writes:
>>> I'm okay with adding a new style, per B, but why do we need to
>>> deprecate emacs22 at the same time?  Let users who want this new
>>> behavior customize their completion styles to use this new style
>>> instead of emacs22.  That'd be fully backward compatible, and will
>>> solve the problem for those who don't like the current behavior.
>> That's fair enough, we don't need to deprecate emacs22 at the same
>> time,
>> we can wait until the new style has been battle-tested.
>> I think a new style should replace emacs22 in the default
>> completion-styles eventually, but that can wait.
>> And after working on this bug for a while, I now am convinced that
>> the
>> new style approach is straightforward, and is the best way.  (Although
>> it would also work to make these changes in the emacs22 style)
>
> I'm not quite convinced about the "new style only" approach myself,
> but anyway we can discuss a solution that could be applied to any
> style, opt-in or opt-out.
>
>> Attached is a patch which adds a new ignore-after-point style.  The fix
>> for this bug is entirely contained in the differences between
>> completion-ignore-after-point-all-completions (c-iap-a-c) and
>> completion-emacs22-all-completions (c-e22-a-c).
>> c-e22-a-c always omits the text after point, which means
>> choose-completion always deletes that text, causing this bug.
>> c-iap-a-c includes the text after point in some cases.  Whenever the
>> text after point is included, it's grayed out with a new
>> completions-ignored face to indicate it was ignored.
>> The cases where c-iap-a-c includes the text after point are those
>> where
>> the user will have further chances to edit or complete with that text:
>> - When we're doing minibuffer completion and choose-completion will
>>    immediately exit the minibuffer, the text after point is not included,
>>    since the user won't get any further changes to use it, and it's
>>    probably garbage.
>> - When we're doing completion-at-point (or certain kinds of
>> minibuffer
>>    completion, e.g. completing a directory in filename completion), the
>>    text after point is included.  In such cases, the user can always
>>    delete it themselves later, or might want to actually use it.
>> To make this work consistently with completion-try-completion (which
>> keeps point before the ignored suffix in both the ignore-after-point and
>> emacs22 styles), choose-completion-string now checks a new
>> 'completion-position-after-insert text property, and moves point to that
>> position.
>> (There are two other changes which are general improvements
>> unrelated to
>> this bug:
>> - The behavior of keeping point before the ignored suffix is more
>>    consistent.
>> - Instead of hardcoding try-completion and all-completion,
>>    ignore-after-point uses the configured completion styles.)
>
> Thank you, I see a few problems with that approach (as discussed
> privately as well). To recap:
>
> From my POV integrating the result with company-mode is
> non-trivial. And the created visual doesn't seem optimal in a number
> of edge cases (long prefix = weird-looking popup; this probably
> applies to the *Completions* buffer as well, though maybe to a lesser
> extent).

I think this is preferable, though, and even if it isn't, it should
still be supported.

This keeps it explicit to the user exactly what text will be inserted
into the buffer upon accepting a completion.

Consider these two cases of completion (| representing point):

A. switch-to-|asdf

B. switch-to-|buffer

In both cases, switch-to-next-buffer is a potential completion, provided
by "emacs22" in the case A and "basic" in case B.

But in case A, if switch-to-next-buffer is chosen, the "asdf" should be
preserved, and in case B, if switch-to-next-buffer, the "buffer" should
be deleted.

Because they have different behavior, they should appear differently to
the user.  That's why I think case A should show
"switch-to-next-bufferasdf" in the *Completions* buffer, with "asdf"
grayed out via a "completions-ignored" face.

If a user decides they don't want "asdf" text to be shown in case A,
then they can customize that.  If a frontend decides it doesn't want to
show that text, it can omit the text.

But it should at least be *possible* for the text to be shown.
Otherwise there's no way to distinguish the two cases.

> Another problem is both the "all-completions" method and the insertion
> function call out to UI: choose-completion-string--should-exit
> references minibuffer-completion-table and completion-no-auto-exit
> directly, for example. I'm on the fence about coupling to the
> completion category.

That's not an important aspect, I've removed that dependency in my
latest version.

> Finally, the use of 'completion-position-after-insert' seems like it
> could be used separately from the "ignored text", meaning the spans
> don't have to match. So it could be a separate feature, one that's
> easy enough to implement on its own.

Yes, and I indeed think this feature is useful on its own, because it
allows choose-completion to be fully equivalent to
completion-try-completion.  Right now completion-try-completion can
change point, but choose-completion can't.  That's limiting for a bunch
of reasons, and the inability to fix this bug purely in a completion
style is one of them.

So I think we should just go ahead and implement this feature.  And if
we do so, it makes it possible to fix this bug with only changes inside
a completion style.

> None of the above would be insurmountable, but here's what I think
> avoids it using the 'completion--adjust-metadata' thingy that was
> originally added for 'flex' a few releases ago: adding a metadata key
> 'completion-ignore-after-point'.
>
> The attached patch does not make a distinction for file name
> completion - it just covers the core problem - but I think any UI
> could use the addition and likewise lookup the 'file' category, and
> print the "hidden" suffix in the Completions, and decide to drop the
> suffix in your first scenario (file name completion with exit
> imminent).
>
> Spencer, Stefan, WDYT?

Your patch is simple, and it works for default completion, but two
issues:

- Your patch doesn't distinguish the two cases A and B that I described above.
  
- Your patch will require company-mode and other frontends to change.
  My patch does not strictly require that.

  But if we're already requiring that, I think we should take the
  opportunity to add the more powerful feature
  completion-position-after-insert.

Here's a simplified version of my earlier patch, which modifies the
emacs22 style to make it easier to discuss.  I think this is equally
simple as your patch, but it:

- Distinguishes the cases A and B by including the ignored text in the
  completion, just grayed out.

- Fixes the bug for other frontends without requiring them to change
  (they get additional benefit when they change to support
  completion-position-after-insert)

Note that due to a separate bug in completion--twq-all, used in filename
completion, the graying-out face is dropped from the completion
candidates before they reach *Completions*; so if you try this, try it
by e.g. completing Lisp symbols.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0001-Preserve-suffix-in-emacs22-style.patch

From dabd42adc78ef3c3e8f40f913325941246993628 Mon Sep 17 00:00:00 2001
From: Spencer Baugh <sbaugh@HIDDEN>
Date: Wed, 18 Sep 2024 08:52:54 -0400
Subject: [PATCH] Preserve suffix in emacs22 style

---
 lisp/minibuffer.el | 14 ++++++++++++--
 lisp/simple.el     | 11 +++++++----
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 804afe9cb43..a28041751aa 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -3771,10 +3771,20 @@ completion-emacs22-try-completion
           (setq suffix (substring suffix 1)))
       (cons (concat completion suffix) (length completion))))))
 
+(defface completions-ignored
+  '((t (:inherit shadow)))
+  "Face for text which was ignored by the completion style.")
+
 (defun completion-emacs22-all-completions (string table pred point)
-  (let ((beforepoint (substring string 0 point)))
+  (let ((beforepoint (substring string 0 point))
+        (suffix (propertize (substring string point) 'face 'completions-ignored)))
     (completion-hilit-commonality
-     (all-completions beforepoint table pred)
+     (mapcar
+      (lambda (elem)
+        (let ((s (concat elem suffix)))
+          (put-text-property 0 1 'completion-position-after-insert (length elem) s)
+          s))
+      (all-completions beforepoint table pred))
      point
      (car (completion-boundaries beforepoint table pred "")))))
 
diff --git a/lisp/simple.el b/lisp/simple.el
index e35cfe0479b..881eb51e57a 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -10371,10 +10371,13 @@ choose-completion-string
         ;; comes from buffer-substring-no-properties.
         ;;(remove-text-properties 0 (length choice) '(mouse-face nil) choice)
 	;; Insert the completion into the buffer where it was requested.
-        (funcall (or insert-function completion-list-insert-choice-function)
-                 (or (car base-position) (point))
-                 (or (cadr base-position) (point))
-                 choice)
+        (let ((beg (or (car base-position) (point)))
+              (end (or (cadr base-position) (point))))
+          (funcall (or insert-function completion-list-insert-choice-function)
+                   beg end choice)
+          (unless (string-empty-p choice)
+            (when-let ((pos (get-text-property 0 'completion-position-after-insert choice)))
+              (goto-char (+ pos beg)))))
         ;; Update point in the window that BUFFER is showing in.
 	(let ((window (get-buffer-window buffer t)))
 	  (set-window-point window (point)))
-- 
2.39.3


--=-=-=--




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

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


Received: (at 70968) by debbugs.gnu.org; 24 Sep 2024 00:04:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 23 20:04:20 2024
Received: from localhost ([127.0.0.1]:44942 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sst2R-0007Rl-Dp
	for submit <at> debbugs.gnu.org; Mon, 23 Sep 2024 20:04:20 -0400
Received: from fhigh-a2-smtp.messagingengine.com ([103.168.172.153]:43945)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1sst2O-0007RW-77
 for 70968 <at> debbugs.gnu.org; Mon, 23 Sep 2024 20:04:17 -0400
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id B2466114028E;
 Mon, 23 Sep 2024 20:03:46 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-12.internal (MEProxy); Mon, 23 Sep 2024 20:03:46 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-type:content-type:date:date:from:from:in-reply-to
 :in-reply-to:message-id:mime-version:references:reply-to:subject
 :subject:to:to; s=fm3; t=1727136226; x=1727222626; bh=UXpXRQTOqp
 xK185coOrj8SB0m55W/KirXSoVIsDpK1E=; b=AQr2guYcRlzbSSYn/UUkHxfkfl
 ZULtJFRfjSFI/UiZTOCGJv5Ip7qyQbOxe2KZW/FmCtpbUSuqem8emiuyTUZD2N4M
 RvoakWVKysvrcRM35BjQqu7UQsonLA4wkeb5SQaXoQ0+BheO1WDiaYvxvEThWXLs
 IHD4qJj6YaF+sFgnItBnvsB6HTl2pK53ZMcz8zEheirLm0l3kdG8+kAwcyZoqlAx
 iC3jTEmbQS8n1U+7xG/BinOKphU1/tBYUq43NEjpzcF3YaWC+6UAGWh+c9KP1yC/
 kKGlrmKJzLbzIqHusDKa3jKz30NJyTLRAvZUPK3AOYv/a2wMF7hBrvI1QiTQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm2; t=1727136226; x=1727222626; bh=UXpXRQTOqpxK185coOrj8SB0m55W
 /KirXSoVIsDpK1E=; b=bGWW/0zdWCL1mDlyKUmelDIB9gxxqfMQEw89vB/wxaqP
 pRve1Kw2Z+2/igQQ1VQ6zfmJmc4+qQGa6XXhUPNlFMcXxFwwFY20bqmsWhAhkLpF
 imqq0jo4vHo3WQHtlTdLWZapqboVbBal6c/hs0IGLztxu1P1mGT0OPXVN8dzb20q
 2KD9H1ad/WAuw98LVc/RCBxYb7xUTSvJBp4n/KMoPX0KRH9mMmm+h8/ocQjsVtUz
 7yjD6M+tczfx3GEMsI6n2+7Mo0wwn9sL7O5J10mbrB4iexekw20IaotbIanyNo+Y
 fCoKWXKU8dFcgF8h7FqwZKvbz0t2OFVFqBEA3+mpeA==
X-ME-Sender: <xms:4QHyZgffA4dNabro428YLSDVgHAZWH-6suSSmWNSmO-Ru5HgEiBQxA>
 <xme:4QHyZiNccOsLAjjWHdSulgKVmhuTrsfVJaBA2WONI0zTiE2Nz0i9OD7gpiGuHTT46
 Uo8GczIXCKqNqcTMag>
X-ME-Received: <xmr:4QHyZhgFQ3PnsDFalYZZKIHbsZUbSlWWuqYbv-ZYoFIYjWMJ_IbsLhvpA3K2gAOXXJ0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvddttddgfedtucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeen
 ucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvg
 hvqeenucggtffrrghtthgvrhhnpeehleefudekudduveekieelgfeiffdvkefhkeeljeeu
 jeegueekveffkeejjeevheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh
 grihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohep
 hedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepshgsrghughhhsehjrghnvghsth
 hrvggvthdrtghomhdprhgtphhtthhopegvlhhiiiesghhnuhdrohhrghdprhgtphhtthho
 peejtdelieekseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohepmhhonhhnih
 gvrhesihhrohdruhhmohhnthhrvggrlhdrtggrpdhrtghpthhtohepjhhurhhisehlihhn
 khhovhdrnhgvth
X-ME-Proxy: <xmx:4QHyZl8nIBF6m0-JkkMIgPl4-MGdqe3XC-QWmr4IHdqNyvb9dY5mIQ>
 <xmx:4QHyZsvh5xd9Co-_C_VxxbRPssJdokp0Q-GiaA94Xio1-XqF-9evdA>
 <xmx:4QHyZsEhojRmpiJDhRuXuIjuBIqrPXn2eSGYagHZw2IN5D1o8c0J0g>
 <xmx:4QHyZrNW5QGlzB66a96KkzepFxM3r5h3tQwGOtlZ7D_JVUz9ExsGRA>
 <xmx:4gHyZmUqhMWL2h__MVImdZp9ZKNNVNs-XuYvWiWW-3b67GrAIMBbXBHM>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 23 Sep 2024 20:03:43 -0400 (EDT)
Content-Type: multipart/mixed; boundary="------------7t27Q3YoMU4RBlQUWy7eA2kp"
Message-ID: <8479c25d-b4ae-4e89-9880-0857a996936a@HIDDEN>
Date: Tue, 24 Sep 2024 03:03:41 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
To: Spencer Baugh <sbaugh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN> <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN> <86ed5vzzru.fsf@HIDDEN>
 <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN> <ierjzfjphzm.fsf@HIDDEN>
 <86o74qh9wv.fsf@HIDDEN> <ierr09jgyr1.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <ierr09jgyr1.fsf@HIDDEN>
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70968
Cc: 70968 <at> debbugs.gnu.org, monnier@HIDDEN, juri@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.7 (-)

This is a multi-part message in MIME format.
--------------7t27Q3YoMU4RBlQUWy7eA2kp
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Spencer,

On 16/09/2024 22:54, Spencer Baugh wrote:
> Eli Zaretskii <eliz@HIDDEN> writes:
>> I'm okay with adding a new style, per B, but why do we need to
>> deprecate emacs22 at the same time?  Let users who want this new
>> behavior customize their completion styles to use this new style
>> instead of emacs22.  That'd be fully backward compatible, and will
>> solve the problem for those who don't like the current behavior.
> 
> That's fair enough, we don't need to deprecate emacs22 at the same time,
> we can wait until the new style has been battle-tested.
> 
> I think a new style should replace emacs22 in the default
> completion-styles eventually, but that can wait.
> 
> And after working on this bug for a while, I now am convinced that the
> new style approach is straightforward, and is the best way.  (Although
> it would also work to make these changes in the emacs22 style)

I'm not quite convinced about the "new style only" approach myself, but 
anyway we can discuss a solution that could be applied to any style, 
opt-in or opt-out.

> Attached is a patch which adds a new ignore-after-point style.  The fix
> for this bug is entirely contained in the differences between
> completion-ignore-after-point-all-completions (c-iap-a-c) and
> completion-emacs22-all-completions (c-e22-a-c).
> 
> c-e22-a-c always omits the text after point, which means
> choose-completion always deletes that text, causing this bug.
> 
> c-iap-a-c includes the text after point in some cases.  Whenever the
> text after point is included, it's grayed out with a new
> completions-ignored face to indicate it was ignored.
> 
> The cases where c-iap-a-c includes the text after point are those where
> the user will have further chances to edit or complete with that text:
> 
> - When we're doing minibuffer completion and choose-completion will
>    immediately exit the minibuffer, the text after point is not included,
>    since the user won't get any further changes to use it, and it's
>    probably garbage.
> 
> - When we're doing completion-at-point (or certain kinds of minibuffer
>    completion, e.g. completing a directory in filename completion), the
>    text after point is included.  In such cases, the user can always
>    delete it themselves later, or might want to actually use it.
> 
> To make this work consistently with completion-try-completion (which
> keeps point before the ignored suffix in both the ignore-after-point and
> emacs22 styles), choose-completion-string now checks a new
> 'completion-position-after-insert text property, and moves point to that
> position.
> 
> (There are two other changes which are general improvements unrelated to
> this bug:
> 
> - The behavior of keeping point before the ignored suffix is more
>    consistent.
> 
> - Instead of hardcoding try-completion and all-completion,
>    ignore-after-point uses the configured completion styles.)

Thank you, I see a few problems with that approach (as discussed 
privately as well). To recap:

 From my POV integrating the result with company-mode is non-trivial. 
And the created visual doesn't seem optimal in a number of edge cases 
(long prefix = weird-looking popup; this probably applies to the 
*Completions* buffer as well, though maybe to a lesser extent).

Another problem is both the "all-completions" method and the insertion 
function call out to UI: choose-completion-string--should-exit 
references minibuffer-completion-table and completion-no-auto-exit 
directly, for example. I'm on the fence about coupling to the completion 
category.

Finally, the use of 'completion-position-after-insert' seems like it 
could be used separately from the "ignored text", meaning the spans 
don't have to match. So it could be a separate feature, one that's easy 
enough to implement on its own.

None of the above would be insurmountable, but here's what I think 
avoids it using the 'completion--adjust-metadata' thingy that was 
originally added for 'flex' a few releases ago: adding a metadata key 
'completion-ignore-after-point'.

The attached patch does not make a distinction for file name completion 
- it just covers the core problem - but I think any UI could use the 
addition and likewise lookup the 'file' category, and print the "hidden" 
suffix in the Completions, and decide to drop the suffix in your first 
scenario (file name completion with exit imminent).

Spencer, Stefan, WDYT?

Again, the patch is against the emacs22 style for readability, but a new 
style can be added just as well.
--------------7t27Q3YoMU4RBlQUWy7eA2kp
Content-Type: text/x-patch; charset=UTF-8;
 name="completion-ignore-after-point-metadata.diff"
Content-Disposition: attachment;
 filename="completion-ignore-after-point-metadata.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3AvbWluaWJ1ZmZlci5lbCBiL2xpc3AvbWluaWJ1ZmZlci5lbApp
bmRleCA4MDRhZmU5Y2I0My4uNGFjMjMxMTcxYjYgMTAwNjQ0Ci0tLSBhL2xpc3AvbWluaWJ1
ZmZlci5lbAorKysgYi9saXNwL21pbmlidWZmZXIuZWwKQEAgLTI2MTMsNyArMjYxMyw2IEBA
IG1pbmlidWZmZXItY29tcGxldGlvbi1oZWxwCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZyAocG9pbnQpIGVuZCkpKSkK
ICAgICAgICAgICAgICAgICAocG9pbnQpKSkKICAgICAgICAgICAgICAoZmllbGQtY2hhciAo
YW5kICg8IGZpZWxkLWVuZCBlbmQpIChjaGFyLWFmdGVyIGZpZWxkLWVuZCkpKQotICAgICAg
ICAgICAgIChiYXNlLXBvc2l0aW9uIChsaXN0ICgrIHN0YXJ0IGJhc2Utc2l6ZSkgZmllbGQt
ZW5kKSkKICAgICAgICAgICAgICAoYWxsLW1kIChjb21wbGV0aW9uLS1tZXRhZGF0YSAoYnVm
ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0IChwb2ludCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS1zaXplIG1kCkBAIC0yNjIzLDYgKzI2MjIs
MTIgQEAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLWhlbHAKICAgICAgICAgICAgICAoYWZmLWZ1
biAoY29tcGxldGlvbi1tZXRhZGF0YS1nZXQgYWxsLW1kICdhZmZpeGF0aW9uLWZ1bmN0aW9u
KSkKICAgICAgICAgICAgICAoc29ydC1mdW4gKGNvbXBsZXRpb24tbWV0YWRhdGEtZ2V0IGFs
bC1tZCAnZGlzcGxheS1zb3J0LWZ1bmN0aW9uKSkKICAgICAgICAgICAgICAoZ3JvdXAtZnVu
IChjb21wbGV0aW9uLW1ldGFkYXRhLWdldCBhbGwtbWQgJ2dyb3VwLWZ1bmN0aW9uKSkKKyAg
ICAgICAgICAgICAoaWdub3JlLWFmdGVyLXBvaW50IChjb21wbGV0aW9uLW1ldGFkYXRhLWdl
dCBhbGwtbWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnaWdub3JlLWFmdGVyLXBvaW50KSkKKyAgICAgICAgICAgICAoYmFz
ZS1wb3NpdGlvbiAobGlzdCAoKyBzdGFydCBiYXNlLXNpemUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGlmIGlnbm9yZS1hZnRlci1wb2ludAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmaWVsZC1lbmQpKSkKICAgICAgICAgICAgICAobWFpbmJ1ZiAo
Y3VycmVudC1idWZmZXIpKQogICAgICAgICAgICAgIDs7IElmIHRoZSAqQ29tcGxldGlvbnMq
IGJ1ZmZlciBpcyBzaG93biBpbiBhIG5ldwogICAgICAgICAgICAgIDs7IHdpbmRvdywgbWFy
ayBpdCBhcyBzb2Z0bHktZGVkaWNhdGVkLCBzbyBidXJ5LWJ1ZmZlciBpbgpAQCAtMzc3OCw2
ICszNzgzLDEzIEBAIGNvbXBsZXRpb24tZW1hY3MyMi1hbGwtY29tcGxldGlvbnMKICAgICAg
cG9pbnQKICAgICAgKGNhciAoY29tcGxldGlvbi1ib3VuZGFyaWVzIGJlZm9yZXBvaW50IHRh
YmxlIHByZWQgIiIpKSkpKQogCisocHV0ICdlbWFjczIyICdjb21wbGV0aW9uLS1hZGp1c3Qt
bWV0YWRhdGEgJ2NvbXBsZXRpb24tLWVtYWNzMjItYWRqdXN0LW1ldGFkYXRhKQorCisoZGVm
dW4gY29tcGxldGlvbi0tZW1hY3MyMi1hZGp1c3QtbWV0YWRhdGEgKG1ldGFkYXRhKQorICBg
KG1ldGFkYXRhCisgICAgKGlnbm9yZS1hZnRlci1wb2ludCAuIHQpCisgICAgLEAoY2RyIG1l
dGFkYXRhKSkpCisKIDs7OyBCYXNpYyBjb21wbGV0aW9uLgogCiAoZGVmdW4gY29tcGxldGlv
bi0tbWVyZ2Utc3VmZml4IChjb21wbGV0aW9uIHBvaW50IHN1ZmZpeCkK

--------------7t27Q3YoMU4RBlQUWy7eA2kp--




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

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


Received: (at 70968) by debbugs.gnu.org; 16 Sep 2024 19:55:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 16 15:55:20 2024
Received: from localhost ([127.0.0.1]:53347 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sqHod-0004j1-AU
	for submit <at> debbugs.gnu.org; Mon, 16 Sep 2024 15:55:20 -0400
Received: from mxout2.mail.janestreet.com ([38.105.200.79]:45419)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <sbaugh@HIDDEN>) id 1sqHob-0004fl-6C
 for 70968 <at> debbugs.gnu.org; Mon, 16 Sep 2024 15:55:18 -0400
From: Spencer Baugh <sbaugh@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
In-Reply-To: <86o74qh9wv.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 14 Sep
 2024 12:17:04 +0300")
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN>
 <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN>
 <86ed5vzzru.fsf@HIDDEN> <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN>
 <ierjzfjphzm.fsf@HIDDEN> <86o74qh9wv.fsf@HIDDEN>
Date: Mon, 16 Sep 2024 15:54:58 -0400
Message-ID: <ierr09jgyr1.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com;
 s=waixah; t=1726516498;
 bh=DZOzKxRvmnWVXEQE2P/pMvw0pnaQ+1qHzPd6EsLV5O0=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date;
 b=NIxLyvjZ07dkuFYmMKxgOPFwwkUHdGhEX/F3jhe5D+6ymUwldbmWr5Gcc6csELbnC
 MGWmkttoD5I9+HUiU2jy0Ip0FoNPf1+nmTLjY0kj1NScay3NNlZVIfRWobmWpyWleQ
 5YGrsW63YxZjQiNgLD/0Ejxi9ywZ3gsKXMSMxA6fCUnuWlPtJu0/dsZqpx6k5dvtDy
 f7J+uFipNIBvDjXLgASL5ynE8LVpLR3y2n0zmxMCXAfHbVN7vA45/V75KfNZNw+KVK
 GV4KZIEV45bbNiSHDCOX0xKeyzKIiyOy5lnwwl5koBasarKqgnFV396/uRz/ha0UhN
 8q41CoREMcuqA==
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 70968
Cc: dmitry@HIDDEN, 70968 <at> debbugs.gnu.org, monnier@HIDDEN,
 juri@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 (-)

--=-=-=
Content-Type: text/plain

Eli Zaretskii <eliz@HIDDEN> writes:
> I'm okay with adding a new style, per B, but why do we need to
> deprecate emacs22 at the same time?  Let users who want this new
> behavior customize their completion styles to use this new style
> instead of emacs22.  That'd be fully backward compatible, and will
> solve the problem for those who don't like the current behavior.

That's fair enough, we don't need to deprecate emacs22 at the same time,
we can wait until the new style has been battle-tested.

I think a new style should replace emacs22 in the default
completion-styles eventually, but that can wait.

And after working on this bug for a while, I now am convinced that the
new style approach is straightforward, and is the best way.  (Although
it would also work to make these changes in the emacs22 style)

Attached is a patch which adds a new ignore-after-point style.  The fix
for this bug is entirely contained in the differences between
completion-ignore-after-point-all-completions (c-iap-a-c) and
completion-emacs22-all-completions (c-e22-a-c).

c-e22-a-c always omits the text after point, which means
choose-completion always deletes that text, causing this bug.

c-iap-a-c includes the text after point in some cases.  Whenever the
text after point is included, it's grayed out with a new
completions-ignored face to indicate it was ignored.

The cases where c-iap-a-c includes the text after point are those where
the user will have further chances to edit or complete with that text:

- When we're doing minibuffer completion and choose-completion will
  immediately exit the minibuffer, the text after point is not included,
  since the user won't get any further changes to use it, and it's
  probably garbage.

- When we're doing completion-at-point (or certain kinds of minibuffer
  completion, e.g. completing a directory in filename completion), the
  text after point is included.  In such cases, the user can always
  delete it themselves later, or might want to actually use it.

To make this work consistently with completion-try-completion (which
keeps point before the ignored suffix in both the ignore-after-point and
emacs22 styles), choose-completion-string now checks a new
'completion-position-after-insert text property, and moves point to that
position.

(There are two other changes which are general improvements unrelated to
this bug:

- The behavior of keeping point before the ignored suffix is more
  consistent.

- Instead of hardcoding try-completion and all-completion,
  ignore-after-point uses the configured completion styles.)

Stefan, Dmitry, any comments?


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0001-Add-ignore-after-point-completion-style.patch

From cdc7ce4b9958a0ef36e911066ecce82a6da09c02 Mon Sep 17 00:00:00 2001
From: Spencer Baugh <sbaugh@HIDDEN>
Date: Mon, 16 Sep 2024 15:15:57 -0400
Subject: [PATCH] Add ignore-after-point completion style

* lisp/minibuffer.el (completion--twq-all): Use the original
completion faces where possible.
(completion-styles-alist, completion-ignore-after-point--force-nil)
(completions-ignored, completion-ignore-after-point-try-completion)
(completion-ignore-after-point-all-completions): Add
ignore-after-point completion style.  (bug#70968)
* lisp/simple.el (choose-completion-string--should-exit):
Add. (choose-completion-string): Call
choose-completion-string--should-exit.
---
 lisp/minibuffer.el | 142 ++++++++++++++++++++++++++++++++++++---------
 lisp/simple.el     |  47 +++++++++------
 2 files changed, 142 insertions(+), 47 deletions(-)

diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 72ee5d02002..e5d85ed6fc8 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -674,34 +674,42 @@ completion--twq-all
       ;; requote them, so that *Completions* can show nicer unquoted values
       ;; which only get quoted when needed by choose-completion.
       (nconc
-       (mapcar (lambda (completion)
-                 (cl-assert (string-prefix-p prefix completion 'ignore-case) t)
-                 (let* ((new (substring completion (length prefix)))
-                        (qnew (funcall qfun new))
- 			(qprefix
-                         (if (not completion-ignore-case)
-                             qprefix
-                           ;; Make qprefix inherit the case from `completion'.
-                           (let* ((rest (substring completion
-                                                   0 (length prefix)))
-                                  (qrest (funcall qfun rest)))
-                             (if (string-equal-ignore-case qprefix qrest)
-                                 (propertize qrest 'face
-                                             'completions-common-part)
-                               qprefix))))
-                        (qcompletion (concat qprefix qnew)))
-		   ;; FIXME: Similarly here, Cygwin's mapping trips this
-		   ;; assertion.
-                   ;;(cl-assert
-                   ;; (string-equal-ignore-case
-		   ;;  (funcall unquote
-		   ;;           (concat (substring string 0 qboundary)
-		   ;;                   qcompletion))
-		   ;;  (concat (substring ustring 0 boundary)
-		   ;;          completion))
-		   ;; t)
-                   qcompletion))
-               completions)
+       (mapcar
+        (if (string-equal qprefix prefix)
+            ;; There's no quoting in the prefix; quoting in the completions
+            ;; can be simpler and preserve the existing faces.
+            (lambda (completion)
+              (concat
+               (substring completion 0 (length prefix))
+               (funcall qfun (substring completion (length prefix)))))
+          (lambda (completion)
+            (cl-assert (string-prefix-p prefix completion 'ignore-case) t)
+            (let* ((new (substring completion (length prefix)))
+                   (qnew (funcall qfun new))
+                   (qprefix
+                    (if (not completion-ignore-case)
+                        qprefix
+                      ;; Make qprefix inherit the case from `completion'.
+                      (let* ((rest (substring completion
+                                              0 (length prefix)))
+                             (qrest (funcall qfun rest)))
+                        (if (string-equal-ignore-case qprefix qrest)
+                            (propertize qrest 'face
+                                        'completions-common-part)
+                          qprefix))))
+                   (qcompletion (concat qprefix qnew)))
+              ;; FIXME: Similarly here, Cygwin's mapping trips this
+              ;; assertion.
+              ;;(cl-assert
+              ;; (string-equal-ignore-case
+              ;;  (funcall unquote
+              ;;           (concat (substring string 0 qboundary)
+              ;;                   qcompletion))
+              ;;  (concat (substring ustring 0 boundary)
+              ;;          completion))
+              ;; t)
+              qcompletion)))
+        completions)
        qboundary))))
 
 ;;; Minibuffer completion
@@ -1038,6 +1046,12 @@ completion-styles-alist
      "Prefix completion that only operates on the text before point.
 I.e. when completing \"foo_bar\" (where _ is the position of point),
 it will consider all completions candidates matching the glob
+pattern \"foo*\" and will add back \"bar\" to the end of it.")
+    (ignore-after-point
+     completion-ignore-after-point-try-completion completion-ignore-after-point-all-completions
+     "Prefix completion that only operates on the text before point.
+I.e. when completing \"foo_bar\" (where _ is the position of point),
+it will consider all completions candidates matching the glob
 pattern \"foo*\" and will add back \"bar\" to the end of it.")
     (basic
      completion-basic-try-completion completion-basic-all-completions
@@ -3692,6 +3706,78 @@ completion-emacs22-all-completions
      point
      (car (completion-boundaries beforepoint table pred "")))))
 
+;;; ignore-after-point completion style.
+
+(defvar completion-ignore-after-point--force-nil nil
+  "When non-nil, the ignore-after-point style always returns nil.")
+
+(defface completions-ignored
+  '((t (:inherit shadow)))
+  "Face for text which was ignored by the completion style.")
+
+(defun completion-ignore-after-point-try-completion (string table pred point)
+  "Run `completion-try-completion' ignoring the part of STRING after POINT.
+
+We add the part of STRING after POINT back to the result."
+  (let ((prefix (substring string 0 point))
+        (suffix (substring string point)))
+    (when-let ((completion
+                (unless completion-ignore-after-point--force-nil
+                  (let ((completion-ignore-after-point--force-nil t))
+                    (completion-try-completion prefix table pred point)))))
+      ;; Add SUFFIX back to COMPLETION.  However, previous completion styles failed and
+      ;; this one succeeded by ignoring SUFFIX.  The success of future completion depends
+      ;; on ignoring SUFFIX.  We mostly do that by keeping point right before SUFFIX.
+      (if (eq completion t)
+          ;; Keep point in the same place, right before SUFFIX.
+          (cons string point)
+        (let ((newstring (car completion))
+              (newpoint (cdr completion)))
+          (cond
+           ((= (length newstring) newpoint)
+            ;; NEWPOINT is already right before SUFFIX.
+            (cons (concat newstring suffix) newpoint))
+           ((minibufferp completion-reference-buffer)
+            ;; Don't allow moving point, keep it right before SUFFIX.
+            (cons (concat newstring suffix) (length newstring)))
+           (t
+            ;; If we're not in a minibuffer, then we're using `completion-at-point', which
+            ;; calculates a completion region to complete over.  We can allow point to
+            ;; move and still cause SUFFIX to be omitted from the completion region, by
+            ;; including a space right before SUFFIX.
+            (cons (concat newstring
+                          ;; Don't add another space if SUFFIX already starts with one.
+                          (when (/= (aref suffix 0) ? ) " ") suffix)
+                  newpoint))))))))
+
+(defun completion-ignore-after-point-all-completions (string table pred point)
+  "Run `completion-all-completions' ignoring the part of STRING after POINT."
+  (let ((prefix (substring string 0 point))
+        (suffix (propertize (substring string point) 'face 'completions-ignored)))
+    (when-let ((completions
+                (unless completion-ignore-after-point--force-nil
+                  (let ((completion-ignore-after-point--force-nil t))
+                    (completion-all-completions prefix table pred point)))))
+      ;; Add SUFFIX back to each completion.  COMPLETIONS may be an improper list (with
+      ;; the base position in its last cdr) so we can't use `mapcar'.
+      (let ((tail completions))
+        (while (consp tail)
+          (let* ((completion (car tail))
+                 (choose-completion-will-exit
+                  (and (minibufferp completion-reference-buffer)
+                       (choose-completion-string--should-exit completion))))
+            ;; Include the suffix if, after `choose-completion' runs on COMPLETION, the
+            ;; user is still able to use and edit the suffix.
+            (unless choose-completion-will-exit
+              (let ((end-of-real-completion (length completion)))
+                (setcar tail (concat completion suffix))
+                ;; When chosen, point should go before SUFFIX.
+                (put-text-property
+                 0 1 'completion-position-after-insert end-of-real-completion
+                 (car tail)))))
+          (setq tail (cdr tail))))
+      completions)))
+
 ;;; Basic completion.
 
 (defun completion--merge-suffix (completion point suffix)
diff --git a/lisp/simple.el b/lisp/simple.el
index 1dd6bfe5b22..fe68f23c4da 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -10083,6 +10083,20 @@ choose-completion-string-functions
 If all functions in the list return nil, that means to use
 the default method of inserting the completion in BUFFER.")
 
+(defun choose-completion-string--should-exit (result)
+  "Should `choose-completion-string' exit the minibuffer if RESULT is chosen?"
+  (and
+   (not completion-no-auto-exit)
+   minibuffer-completion-table
+   ;; If this is reading a file name, and the file name chosen
+   ;; is a directory, don't exit the minibuffer.
+   (let ((bounds (completion-boundaries
+                  result minibuffer-completion-table
+                  minibuffer-completion-predicate "")))
+     ;; The completion chosen leads to a new set of completions
+     ;; (e.g. it's a directory): don't exit the minibuffer yet.
+     (not (eq (car bounds) (length result))))))
+
 (defun choose-completion-string (choice &optional
                                         buffer base-position insert-function)
   "Switch to BUFFER and insert the completion choice CHOICE.
@@ -10116,10 +10130,13 @@ choose-completion-string
         ;; comes from buffer-substring-no-properties.
         ;;(remove-text-properties 0 (length choice) '(mouse-face nil) choice)
 	;; Insert the completion into the buffer where it was requested.
-        (funcall (or insert-function completion-list-insert-choice-function)
-                 (or (car base-position) (point))
-                 (or (cadr base-position) (point))
-                 choice)
+        (let ((beg (or (car base-position) (point)))
+              (end (or (cadr base-position) (point))))
+          (funcall (or insert-function completion-list-insert-choice-function)
+                   beg end choice)
+          (unless (string-empty-p choice)
+            (when-let ((pos (get-text-property 0 'completion-position-after-insert choice)))
+              (goto-char (+ pos beg)))))
         ;; Update point in the window that BUFFER is showing in.
 	(let ((window (get-buffer-window buffer t)))
 	  (set-window-point window (point)))
@@ -10127,21 +10144,13 @@ choose-completion-string
 	(and (not completion-no-auto-exit)
              (minibufferp buffer)
 	     minibuffer-completion-table
-	     ;; If this is reading a file name, and the file name chosen
-	     ;; is a directory, don't exit the minibuffer.
-             (let* ((result (buffer-substring (field-beginning) (point)))
-                    (bounds
-                     (completion-boundaries result minibuffer-completion-table
-                                            minibuffer-completion-predicate
-                                            "")))
-               (if (eq (car bounds) (length result))
-                   ;; The completion chosen leads to a new set of completions
-                   ;; (e.g. it's a directory): don't exit the minibuffer yet.
-                   (let ((mini (active-minibuffer-window)))
-                     (select-window mini)
-                     (when minibuffer-auto-raise
-                       (raise-frame (window-frame mini))))
-                 (exit-minibuffer))))))))
+             (if (choose-completion-string--should-exit
+                  (buffer-substring (field-beginning) (point)))
+                 (exit-minibuffer)
+               (let ((mini (active-minibuffer-window)))
+                 (select-window mini)
+                 (when minibuffer-auto-raise
+                   (raise-frame (window-frame mini))))))))))
 
 (define-derived-mode completion-list-mode nil "Completion List"
   "Major mode for buffers showing lists of possible completions.
-- 
2.39.3


--=-=-=--




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

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


Received: (at 70968) by debbugs.gnu.org; 14 Sep 2024 16:01:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 14 12:01:12 2024
Received: from localhost ([127.0.0.1]:47684 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1spVCw-0007Pa-5L
	for submit <at> debbugs.gnu.org; Sat, 14 Sep 2024 12:01:12 -0400
Received: from eggs.gnu.org ([209.51.188.92]:47458)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1spVCu-0007PK-1c
 for 70968 <at> debbugs.gnu.org; Sat, 14 Sep 2024 12:01:09 -0400
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 1spVCc-0006Ux-5k; Sat, 14 Sep 2024 12:00:50 -0400
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=2T7uyVHEe2mUsobG0O5taxg9o0j6JVa6MfPpWMFQhgE=; b=GG9cJ4CLwKuz
 vUyE+nSpKHS43bQrDo6hUjnQl1RFXz9WmOSnFp+IyLQWvvfixbdMyvQn6vSXPKq48nNFDSqiTJcVz
 FH1uTtdI4BA8+eeyU/IBdEGNf5i8eMZVS5hjtnPZtnhD/HVemWI9c76tdxbQAATG7PgqSCvi6h6Vy
 mHy0qUo7h2/Y4PYe9bDnkUobP4zw7rLTP8pVKBZ84xftTryfu0mVK0fGiZPw0A/H6G2Pr5ZenI3kh
 dqzVxm06KNQf9Z+gAcTHQ9IIXS7Artx8idBqAXRE2j6RtcoL5hnu7Ah/fgUaBL0A9XSjaDIXva8bA
 b18eYbYttEGEKgBRB0oPWw==;
Date: Sat, 14 Sep 2024 19:00:46 +0300
Message-Id: <86bk0qfcnl.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <a20796c1-a431-4206-bb71-e3c005c55efc@HIDDEN> (message from
 Dmitry Gutov on Sat, 14 Sep 2024 18:18:46 +0300)
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN> <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN> <86ed5vzzru.fsf@HIDDEN>
 <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN> <ierjzfjphzm.fsf@HIDDEN>
 <86o74qh9wv.fsf@HIDDEN> <a20796c1-a431-4206-bb71-e3c005c55efc@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 70968
Cc: sbaugh@HIDDEN, 70968 <at> debbugs.gnu.org, monnier@HIDDEN,
 juri@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: -3.3 (---)

> Date: Sat, 14 Sep 2024 18:18:46 +0300
> Cc: monnier@HIDDEN, juri@HIDDEN, 70968 <at> debbugs.gnu.org
> From: Dmitry Gutov <dmitry@HIDDEN>
> 
> > I'm okay with adding a new style, per B, but why do we need to
> > deprecate emacs22 at the same time?  Let users who want this new
> > behavior customize their completion styles to use this new style
> > instead of emacs22.
> 
> I don't envy the person who's going to write documentation and has to 
> describe the distinction between these two styles, that they differ in 
> this particular place of the UI, and are otherwise the same.
> 
> Deprecating the old style would at least say that this complication is a 
> wart which would someday go away, and we could take a shortcut in the 
> implementation (e.g. hardcode the value `emacs22` in some check).

If documentation difficulties are the main issue with my proposal,
then you can stop worrying.




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

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


Received: (at 70968) by debbugs.gnu.org; 14 Sep 2024 15:19:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 14 11:19:09 2024
Received: from localhost ([127.0.0.1]:47634 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1spUYH-0004r3-Eo
	for submit <at> debbugs.gnu.org; Sat, 14 Sep 2024 11:19:09 -0400
Received: from fout2-smtp.messagingengine.com ([103.168.172.145]:42235)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1spUYE-0004qQ-TO
 for 70968 <at> debbugs.gnu.org; Sat, 14 Sep 2024 11:19:08 -0400
Received: from phl-compute-06.internal (phl-compute-06.phl.internal
 [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id 1D33A13801F6;
 Sat, 14 Sep 2024 11:18:50 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Sat, 14 Sep 2024 11:18:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1726327130;
 x=1726413530; bh=GelZBCac7XQxjzBgxCdc9N3gAiDOXoCTmubuYseOWtQ=; b=
 WeTz3PJ+4swkRhGG+Nat01WQRLWlFseMMrlM0cIIuyQCJFVdzxVk5Eb8KbOmcOnt
 AyaZhRslF+wTqMrGrqXAMvTy1Li9wluMcC6yqust3Ps1Fl57vi6+Zn+Bjk9xohQ3
 oqAYeKTPHSZ/z1+nQhuRPCRK5Unwy56CkHF0Fa9TUQyAQV7dQJJ40Mn7XjffCbqf
 f57V1NcpBCUP9cvjA/227zfu+qGpHaRvjNXnwxAjweexuDK7IdF5KoCyAVWAXOAy
 DD8po26deFJGI/w/aHtyPr/2QtWLl4b9wNsB+D7dEPU3UlMgXNkMc88fEZw04Q0X
 jSkS+IIj+v9r4hwSZBgA2g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1726327130; x=
 1726413530; bh=GelZBCac7XQxjzBgxCdc9N3gAiDOXoCTmubuYseOWtQ=; b=T
 r0953aYQVWzF9R3lGqlz9TAchgKOtBJ4Cgt7lePsjlzXuaIj94s5ekPHvzk5lZMI
 LxmmQRohPmKP9gRW6Hv7Rlf2ungHfp1BVdsieax4E5uF3WkgNMKbx7L6Ss2CQ8Iu
 uah8peITIwhm2Rf4Qw7IqRUA5bRlaG/JtfrmXTGKcaExBuPh4p4gk3GKVEDDXWH4
 DdsaDwFT43q+ICYpZX1T2Gm1zVq+vY6ZHonylVTY8CJdgkDbrz6XBIUMGdn1AOVu
 j1xU5TY1QfTcwzA0OkZN4C0XaduoSrxQGfSJ56R68HS8ov2O1cag74+rkEzL9czG
 Csdvl4jErRDDSQhvAf0RA==
X-ME-Sender: <xms:WanlZuHNq3pa6mgLTbu7JpGwo4Wpqad2UCFJU6HTg3K5J_UOAnLAuw>
 <xme:WanlZvXqgMdffWJd4wZLisUXpDz53INqOhLWosIMG-Y2gif1RWAOGpLGSaHm-mGGW
 wJUw7e8ozqpzGOc-Ns>
X-ME-Received: <xmr:WanlZoKAOMxrgehLiNAaVDO-EOSOvMz68WWfIbXylyK8JXtYNICTtfexLM_jU3BC-tkB>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudektddgkeekucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdej
 necuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdrug
 gvvheqnecuggftrfgrthhtvghrnhepteduleejgeehtefgheegjeekueehvdevieekueef
 tddvtdevfefhvdevgedujeehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe
 hmrghilhhfrhhomhepughmihhtrhihsehguhhtohhvrdguvghvpdhnsggprhgtphhtthho
 peehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegvlhhiiiesghhnuhdrohhrgh
 dprhgtphhtthhopehssggruhhghhesjhgrnhgvshhtrhgvvghtrdgtohhmpdhrtghpthht
 ohepmhhonhhnihgvrhesihhrohdruhhmohhnthhrvggrlhdrtggrpdhrtghpthhtohepjh
 hurhhisehlihhnkhhovhdrnhgvthdprhgtphhtthhopeejtdelieekseguvggssghughhs
 rdhgnhhurdhorhhg
X-ME-Proxy: <xmx:WanlZoHvPjBIZBMkssio5KV05jgzSMyg7H8EP212t0OcjBkWOPZjQg>
 <xmx:WanlZkWkKfsefhUPwMyz3lxOsPITvbXl9wx5guHXjfBOMOZaEGPO-g>
 <xmx:WanlZrOL0yD4bQ9qBhXsCYv8L0jJDR2scQPcniXWIA3Y8PBDJjT3cg>
 <xmx:WanlZr3eNn8ak9CfHXuzueGG2fjtlEhV9w5JLIGraHoUGLH89WbZyw>
 <xmx:WqnlZucYdPTPFpaTbWHiY3oQHx4-MkYjNb_vFHdJb8bDg6-F_wsAj46z>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 14 Sep 2024 11:18:48 -0400 (EDT)
Message-ID: <a20796c1-a431-4206-bb71-e3c005c55efc@HIDDEN>
Date: Sat, 14 Sep 2024 18:18:46 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
To: Eli Zaretskii <eliz@HIDDEN>, Spencer Baugh <sbaugh@HIDDEN>
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN> <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN> <86ed5vzzru.fsf@HIDDEN>
 <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN> <ierjzfjphzm.fsf@HIDDEN>
 <86o74qh9wv.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <86o74qh9wv.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70968
Cc: 70968 <at> debbugs.gnu.org, monnier@HIDDEN, juri@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.7 (-)

On 14/09/2024 12:17, Eli Zaretskii wrote:
> B. Deprecate the emacs22 style and replace it with a new style called
>     `ignore-suffix` which has this bug fixed, and which replaces emacs22
>     in the default value of completion-styles.

Note that while this is a viable option, we're still lacking a mechanism 
which would fix the problem for the new completion style.

And then we'd have two code paths for this behavior that somehow need to 
distinguish between these styles.

With the original proposal we would delegate to the style's completion 
logic, but it would apparently behave the same between emacs22 and the 
new style.

> Option C is from my POV the least desirable one: it adds some
> complicated logic, which will almost certainly produce unintended
> results, as everything in this completion-related mess we have.

That's probably true, but whether it will make things more complicated 
or not would also depend on the overall design. With some effort, it 
could be the opposite - but with more changes across the board, overall 
not backward compatible ones.

> I'm okay with adding a new style, per B, but why do we need to
> deprecate emacs22 at the same time?  Let users who want this new
> behavior customize their completion styles to use this new style
> instead of emacs22.

I don't envy the person who's going to write documentation and has to 
describe the distinction between these two styles, that they differ in 
this particular place of the UI, and are otherwise the same.

Deprecating the old style would at least say that this complication is a 
wart which would someday go away, and we could take a shortcut in the 
implementation (e.g. hardcode the value `emacs22` in some check).




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

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


Received: (at 70968) by debbugs.gnu.org; 14 Sep 2024 09:17:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 14 05:17:28 2024
Received: from localhost ([127.0.0.1]:44799 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1spOuG-00005N-6k
	for submit <at> debbugs.gnu.org; Sat, 14 Sep 2024 05:17:28 -0400
Received: from eggs.gnu.org ([209.51.188.92]:57174)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1spOuE-000050-NC
 for 70968 <at> debbugs.gnu.org; Sat, 14 Sep 2024 05:17:27 -0400
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 1spOtw-0004BR-S1; Sat, 14 Sep 2024 05:17:09 -0400
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=s3uH1hLDbU1J9ZqgMCBwBQWi6LECLdiMX/OCgaTEflM=; b=cL0sm1llMzrj
 t1hZJ8udaKeNcV/kptmwW6jWlcxQ+m1fYn6a8Vo7JV2+lXaXoSeWy4rXqg9fPz4uYUOkfN1eXnQGj
 AjO0bYwN5q/nOP2vDbKHkg5Jf3abBQ/ShzS1gRLxX0KIxnSJ5HqyX5tbZgdJ/5uANqmKk39KRxM5X
 7r9GHLNq+DhS9lITAbnz4pjC5MMteN3in39/cWJNnZkuAn4/qrrvvzCf7A6BszW96p+cGwSanTF2S
 AoSFsuxlSPfXeNukIkXnSy41rdefBoSGYK7g8ga/bcIDi4z2zqa9wvGBLHqttQRGJKPuZjmgjHWUK
 iJ282ZPw+esenjVQuZ3IyQ==;
Date: Sat, 14 Sep 2024 12:17:04 +0300
Message-Id: <86o74qh9wv.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>
In-Reply-To: <ierjzfjphzm.fsf@HIDDEN> (message from Spencer Baugh on
 Tue, 10 Sep 2024 12:54:05 -0400)
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN>
 <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN>
 <86ed5vzzru.fsf@HIDDEN> <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN> 
 <ierjzfjphzm.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 70968
Cc: dmitry@HIDDEN, 70968 <at> debbugs.gnu.org, monnier@HIDDEN,
 juri@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: -3.3 (---)

> From: Spencer Baugh <sbaugh@HIDDEN>
> Cc: Eli Zaretskii <eliz@HIDDEN>,  juri@HIDDEN,  70968 <at> debbugs.gnu.org,
>    Dmitry Gutov <dmitry@HIDDEN>
> Date: Tue, 10 Sep 2024 12:54:05 -0400
> 
> Stefan Monnier <monnier@HIDDEN> writes:
> >> Ping!  How should we proceed with this bug report?
> >
> > I don't quite understand the question.
> >
> > After:
> >
> > Eli wrote:
> >> Stefan wrote:
> >> > I'm not sure it's terribly important to preserve this detail of the
> >> > behavior of `Emacs-22`.  The `emacs22` style does not aim to provide the
> >> > illusion you're running an old Emacs.  I named it that way because
> >> > I couldn't come up with a good descriptive name for it.  If it
> >> > misbehaves, I don't see a need to be bug-compatible, especially since
> >> > this doesn't affect ELisp code but users.
> >>
> >> I think it does, sorry.  Suchj old behavior is a de-facto standard.
> >> If we change that, we should at least have a knob to get back the old
> >> behavior.
> >
> > I thought you had decided that the current behavior is not a bug.
> > I'm fine with this choice and we can close it as such.
> > Tho maybe we'd want to deprecate that `emacs22` style because of
> > those odd cases.
> 
> I definitely don't want to just close this bug.  I often get user
> complaints about this behavior.  In my experience, for novice users,
> it's a fairly significant inconsistency in the default Emacs completion
> experience.
> 
> I see a few good ways to fix this in a backwards-compatible way:
> 
> A. Fix it in emacs22 with a defcustom to get back the old behavior.
> 
> B. Deprecate the emacs22 style and replace it with a new style called
>    `ignore-suffix` which has this bug fixed, and which replaces emacs22
>    in the default value of completion-styles.
> 
> C. Follow this idea I suggested earlier:
> 
>    Currently emacs22 is the only style that ignores the text after point
>    when completing.  But, this is often useful behavior, and I'd like to
>    support it in other completion styles.  Specifically, I think it
>    would be nice if completion always:
>    
>    1. First, run the completion styles on the literal text in the
>    completion region or minibuffer.
>    
>    2. If that returned nil, run the completion styles again, but without
>    the text after point in the region or minibuffer.
>    
>    Step 2 when run with the basic style is equivalent to the emacs22
>    style.  So, emacs22 could be removed from the default
>    completion-styles, since a completion-styles of '(basic) would be
>    equivalent to '(basic emacs22).
> 
>    I think this would make it straightforward to then fix
>    choose-completion to behave correctly when the completion was
>    generated through step 2.
>    
> I personally like the option C best, because I already want to do this
> generalization, so that the ignore-suffix behavior also works for other
> completion styles (e.g. partial-completion or substring).
> 
> But I would like to get some feedback on this idea from others first.

Option C is from my POV the least desirable one: it adds some
complicated logic, which will almost certainly produce unintended
results, as everything in this completion-related mess we have.

I'm okay with adding a new style, per B, but why do we need to
deprecate emacs22 at the same time?  Let users who want this new
behavior customize their completion styles to use this new style
instead of emacs22.  That'd be fully backward compatible, and will
solve the problem for those who don't like the current behavior.




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

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


Received: (at 70968) by debbugs.gnu.org; 10 Sep 2024 16:54:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 10 12:54:18 2024
Received: from localhost ([127.0.0.1]:36909 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1so48A-0006YG-5E
	for submit <at> debbugs.gnu.org; Tue, 10 Sep 2024 12:54:18 -0400
Received: from mxout2.mail.janestreet.com ([38.105.200.79]:48925)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <sbaugh@HIDDEN>) id 1so487-0006Y0-SJ
 for 70968 <at> debbugs.gnu.org; Tue, 10 Sep 2024 12:54:16 -0400
From: Spencer Baugh <sbaugh@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
In-Reply-To: <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN> (Stefan Monnier's message
 of "Sun, 08 Sep 2024 07:12:47 -0400")
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN>
 <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN>
 <86ed5vzzru.fsf@HIDDEN> <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN>
Date: Tue, 10 Sep 2024 12:54:05 -0400
Message-ID: <ierjzfjphzm.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com;
 s=waixah; t=1725987245;
 bh=eTHrNf8WttcBKgJdJp3ZhmCB8E0xdrX19I5Yfz8xi18=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date;
 b=skuI8Gvahg00vdAuFtzyMounXyPfSEJGUjDEwNUol94WPQZY9p2SO2kBREEHK06n4
 AtN/qBt7dUN924PI6fnWvUw7IFi5f0uBCU5W0O45KxDqrFefeyKwiM+rTScdR/aWBU
 jv8T75vOJSZNVecRDMGZV20GR72x845UJAFrNHDOpMHpKCFX11xCO/lR1NQlBoR6rR
 dKSKRqFkl4bs4lRxIsDs2VLiWQflVhsW1fvd3SF3G/Q9hHR4HcspkLDWyF8bz5NsUy
 1jZwC3OuvGJ+o3F2HRc4Gc69LIJxtZGyyoMMIHm6NbeZy1MicZrk+LR3326cd7uScR
 iabLge3UjXYZw==
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 70968
Cc: Dmitry Gutov <dmitry@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 70968 <at> debbugs.gnu.org, juri@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 (-)

Stefan Monnier <monnier@HIDDEN> writes:
>> Ping!  How should we proceed with this bug report?
>
> I don't quite understand the question.
>
> After:
>
> Eli wrote:
>> Stefan wrote:
>> > I'm not sure it's terribly important to preserve this detail of the
>> > behavior of `Emacs-22`.  The `emacs22` style does not aim to provide the
>> > illusion you're running an old Emacs.  I named it that way because
>> > I couldn't come up with a good descriptive name for it.  If it
>> > misbehaves, I don't see a need to be bug-compatible, especially since
>> > this doesn't affect ELisp code but users.
>>
>> I think it does, sorry.  Suchj old behavior is a de-facto standard.
>> If we change that, we should at least have a knob to get back the old
>> behavior.
>
> I thought you had decided that the current behavior is not a bug.
> I'm fine with this choice and we can close it as such.
> Tho maybe we'd want to deprecate that `emacs22` style because of
> those odd cases.

I definitely don't want to just close this bug.  I often get user
complaints about this behavior.  In my experience, for novice users,
it's a fairly significant inconsistency in the default Emacs completion
experience.

I see a few good ways to fix this in a backwards-compatible way:

A. Fix it in emacs22 with a defcustom to get back the old behavior.

B. Deprecate the emacs22 style and replace it with a new style called
   `ignore-suffix` which has this bug fixed, and which replaces emacs22
   in the default value of completion-styles.

C. Follow this idea I suggested earlier:

   Currently emacs22 is the only style that ignores the text after point
   when completing.  But, this is often useful behavior, and I'd like to
   support it in other completion styles.  Specifically, I think it
   would be nice if completion always:
   
   1. First, run the completion styles on the literal text in the
   completion region or minibuffer.
   
   2. If that returned nil, run the completion styles again, but without
   the text after point in the region or minibuffer.
   
   Step 2 when run with the basic style is equivalent to the emacs22
   style.  So, emacs22 could be removed from the default
   completion-styles, since a completion-styles of '(basic) would be
   equivalent to '(basic emacs22).

   I think this would make it straightforward to then fix
   choose-completion to behave correctly when the completion was
   generated through step 2.
   
I personally like the option C best, because I already want to do this
generalization, so that the ignore-suffix behavior also works for other
completion styles (e.g. partial-completion or substring).

But I would like to get some feedback on this idea from others first.




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

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


Received: (at 70968) by debbugs.gnu.org; 8 Sep 2024 11:13:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 08 07:13:03 2024
Received: from localhost ([127.0.0.1]:58049 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1snFqp-0005yb-Al
	for submit <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:13:03 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:15361)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1snFqn-0005y3-RU
 for 70968 <at> debbugs.gnu.org; Sun, 08 Sep 2024 07:13:02 -0400
Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 513FB100043;
 Sun,  8 Sep 2024 07:12:53 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1725793972;
 bh=jaZNvytw2wcmbNXPJ1fhi2z8XFVMkyMgMFOm0WnwIHs=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=paRiEnHR2/mcG/1ewitUrw5KaBXFqlsk+Em3ZmKgmOHsjAbCju9KwiNFhEXhHQ8Qh
 kWy+A3rPsbxRfq/aeq3t3fUcm3ClmEXnzr6dNd43DlC/eARPHOGo7mY8mW8e0294o3
 pSnuG2uslvMOnhiqdQk30bdXbzEIJC0bgk2y1PFsx2l18cV3wuyUrDj7+qpPokerWf
 Y+UiGpeWlWW5x8m0vjtvMHYHZpWwhgiQQHmVjjsRWcV8d+XRBJcmiKZQpWtOx45Cn5
 UQP0gvnpntFN7R/jJS3zmYjJHMIVrBmYihFrhVCutDmugXry802TS/OZOCKNTfPgXd
 FSUB6Iu0Tx2Hg==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 3B40C10002E;
 Sun,  8 Sep 2024 07:12:52 -0400 (EDT)
Received: from asado (31-131-247-74.ip252.fastwebnet.it [31.131.247.74])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 74B6C1207B9;
 Sun,  8 Sep 2024 07:12:50 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
In-Reply-To: <86ed5vzzru.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 07 Sep
 2024 10:30:45 +0300")
Message-ID: <jwvjzfmcsfv.fsf-monnier+emacs@HIDDEN>
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN>
 <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN>
 <86ed5vzzru.fsf@HIDDEN>
Date: Sun, 08 Sep 2024 07:12:47 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 70968
Cc: sbaugh@HIDDEN, juri@HIDDEN, 70968 <at> debbugs.gnu.org,
 Dmitry Gutov <dmitry@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: -3.3 (---)

> Ping!  How should we proceed with this bug report?

I don't quite understand the question.

After:

Eli wrote:
> Stefan wrote:
> > I'm not sure it's terribly important to preserve this detail of the
> > behavior of `Emacs-22`.  The `emacs22` style does not aim to provide the
> > illusion you're running an old Emacs.  I named it that way because
> > I couldn't come up with a good descriptive name for it.  If it
> > misbehaves, I don't see a need to be bug-compatible, especially since
> > this doesn't affect ELisp code but users.
>
> I think it does, sorry.  Suchj old behavior is a de-facto standard.
> If we change that, we should at least have a knob to get back the old
> behavior.

I thought you had decided that the current behavior is not a bug.
I'm fine with this choice and we can close it as such.
Tho maybe we'd want to deprecate that `emacs22` style because of
those odd cases.


        Stefan





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

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


Received: (at 70968) by debbugs.gnu.org; 8 Sep 2024 02:02:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 07 22:02:38 2024
Received: from localhost ([127.0.0.1]:57793 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sn7GA-0002gU-EM
	for submit <at> debbugs.gnu.org; Sat, 07 Sep 2024 22:02:38 -0400
Received: from fout1-smtp.messagingengine.com ([103.168.172.144]:43341)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1sn7G8-0002gD-K3
 for 70968 <at> debbugs.gnu.org; Sat, 07 Sep 2024 22:02:37 -0400
Received: from phl-compute-09.internal (phl-compute-09.phl.internal
 [10.202.2.49])
 by mailfout.phl.internal (Postfix) with ESMTP id 62B92138019D;
 Sat,  7 Sep 2024 22:02:29 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-09.internal (MEProxy); Sat, 07 Sep 2024 22:02:29 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1725760949;
 x=1725847349; bh=+RiblT9XgTARG8NL+8cG+C8ZiMNoUljDKjYkrk+7QKE=; b=
 ImJV3nJZu/EfqlxIiaeLcNOjjCrdgBoryuwCEhQx+Drr0rxdBc3l1adtmpKs0o8d
 qlArmjRoAUJXHDJkhnBs97vDXTP42E1VNTMe5Ay5mMfuzWUE6aIJ2f9ZKsDOVIK+
 hgF+Vw8Bv57mpdC/bGcV3TTwXkZfMC9z24act9BT/JSj9BVwIzRZ+GzaY343f8Ah
 qfAHwnaXH03LPk8Y6RcHf1Z7WwSQuTghAWA54+131oxLzQiUpQr9cL62Z6+PH006
 HLu+IfmPdIxHZfwAwuPPHoY+MuRgdzn4+cpwfeumOBZ1CbGkP7qId+KuCMP/s6Vt
 cchS6tnBXPKHbkWtTjdGxA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1725760949; x=
 1725847349; bh=+RiblT9XgTARG8NL+8cG+C8ZiMNoUljDKjYkrk+7QKE=; b=F
 op31wfo0yXtALsLSMfnEfU41rsu4KWeaa0/49u7rwit4fKaM8Dl1NCXzfuqSrI9f
 UXFgdF11/opSmBtzRe/a6OlL1tchzSKSqqX1n0Wky+5x1JdIHqVHmUJ7pBu+ChZO
 tvJ2khiZo42V0b6J33x/ORGZWRoSTPEQLLZ06ww34e3wU3SbzdcqN/OR5Rdwlx8/
 lQEyjJ/kG+dakM+3wq2PwP4HKg04n4QSVHqHIY06A6jqkhVEdOm0CfCCxB9nB7ke
 nQ3qrJkS6PozP+BGl2+Xho0vxT807Oyb0T89GKs8jFCpOvKMSka4sVjoMZl93Hi8
 BuOJFPYrpglrdifNcyXMQ==
X-ME-Sender: <xms:tAXdZniimJYGWoBPtdGWyLGz-WPAqHiOwYkf3dABpK-2IuU7Fn9ajg>
 <xme:tAXdZkAZi19MQpP281AqCo7fXCJbfdrOECcBf2pav2LDbzjVOQYS5dLzsP9ugYkCM
 iF-J8FzaxI336CuQng>
X-ME-Received: <xmr:tAXdZnGYSWXbCkPU21jNNSUO2QsBCAdu4AA3NKcDUS5ugoQr_Ng-s3QEgypGICRNNhCe>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudeigedgheefucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdej
 necuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdrug
 gvvheqnecuggftrfgrthhtvghrnhepffeifedvleeukedtgfelieegudfgveekfeejveej
 ffetffeuueeugefhveeiuddvnecuffhomhgrihhnpehgnhhurdhorhhgnecuvehluhhsth
 gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepughmihhtrhihsehguhht
 ohhvrdguvghvpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtph
 htthhopegvlhhiiiesghhnuhdrohhrghdprhgtphhtthhopehssggruhhghhesjhgrnhgv
 shhtrhgvvghtrdgtohhmpdhrtghpthhtohepmhhonhhnihgvrhesihhrohdruhhmohhnth
 hrvggrlhdrtggrpdhrtghpthhtohepjedtleeikeesuggvsggsuhhgshdrghhnuhdrohhr
 ghdprhgtphhtthhopehjuhhriheslhhinhhkohhvrdhnvght
X-ME-Proxy: <xmx:tAXdZkTaWgoRxcGXbOY_9fam5yMiymkg9TCWXDaLby5P-ZPJGWL7vg>
 <xmx:tAXdZkzLu3NqL_59rs9s-2NhdHDiSsgyBLnXKhj7JMK_IwgrEFEU1A>
 <xmx:tAXdZq5zktIMM3Yvf0zmTqD_eGJ5MKB9_7D1gsDoaHyr5Cm9IRcADg>
 <xmx:tAXdZpwmTzeN_lJKmrohv6zeN190cA6rcyXM7_EB89QayEZX0j_Ziw>
 <xmx:tQXdZjp4MmUzb1Kd4RogJj-N5FxHb0nTVvAvogh0j3lr3RTCISsXOZa->
Feedback-ID: i0e71465a:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 7 Sep 2024 22:02:27 -0400 (EDT)
Message-ID: <204ea8b8-e9ad-42e6-b905-228fe1099219@HIDDEN>
Date: Sun, 8 Sep 2024 05:02:24 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
To: Eli Zaretskii <eliz@HIDDEN>, sbaugh@HIDDEN,
 monnier@HIDDEN
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN> <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN> <86ed5vzzru.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <86ed5vzzru.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70968
Cc: 70968 <at> debbugs.gnu.org, juri@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.7 (-)

On 07/09/2024 10:30, Eli Zaretskii wrote:
>> Date: Mon, 26 Aug 2024 03:08:56 +0300
>> Cc:sbaugh@HIDDEN,70968 <at> debbugs.gnu.org,juri@HIDDEN,
>>   monnier@HIDDEN
>> From: Dmitry Gutov<dmitry@HIDDEN>
>>
>> On 16/05/2024 21:25, Eli Zaretskii wrote:
>>>> I don't think that would be required exactly.
>>>>
>>>> The problem here (IIUC) is that completion behaves differently with the
>>>> emacs22 style depending on whether the execution path went through
>>>> choose-completion (which is not a method of completion style but a
>>>> common subroutine) or not (when completion--do-completion performed
>>>> expansion).
>>> I understand that much.  But what did these two (or their
>>> then-equivalents) do in Emacs 22 and Emacs 23?
>> I'm guessing they behaved incorrectly (or however we want to call the
>> inconsistent behavior), but I don't have a compiled Emacs 22/23 around,
>> and they might be difficult to build.
>>
>> Note that we fixed bug#48356 not too long ago, which is from the same
>> general area, and it probably originated from before Emacs 22/23 too.
>>
>> It's worth looking for edge cases where we'd strongly prefer the current
>> behavior, and they might exist, but so far I only know of situations
>> where the change would be for the better, or the user might be okay with
>> either (example at the end ofhttps://debbugs.gnu.org/72705#35).
> Ping!  How should we proceed with this bug report?

I suggest we come up with a fix (which Stefan might have some ideas 
for), then see which reasonable scenarios get broken, if any. The one 
edge case in Eglot could be fixed in the same Emacs release, I believe.

If any larger scope problems, we could add a variable/option to switch 
to the previous behavior.




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

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


Received: (at 70968) by debbugs.gnu.org; 7 Sep 2024 07:30:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 07 03:30:59 2024
Received: from localhost ([127.0.0.1]:54686 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1smpuN-00017p-4m
	for submit <at> debbugs.gnu.org; Sat, 07 Sep 2024 03:30:59 -0400
Received: from eggs.gnu.org ([209.51.188.92]:58292)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1smpuL-00017c-02
 for 70968 <at> debbugs.gnu.org; Sat, 07 Sep 2024 03:30:57 -0400
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 1smpuD-0006tW-8Z; Sat, 07 Sep 2024 03:30:49 -0400
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=Jbj+f4KeW8jaxXw1QY2UKGHdoWfnETyyUd5/icbr9/E=; b=OHCgH6EyITOg
 dYTR9Oj+fzGKqnLeQ6JrShCS7InF0gZhXFVrpGFCpsc7ZcjGp8EzgGF5yqorSGZ+ualxSrf+OJ+sC
 Y5OxxiUOSXkACmQztvHICTr7zygV/3Vujh+X2KFlqW1cIdzVoF012m32gQqIDoVdYnbHrZxBt1W/k
 06OaYi1yPUetpqqY/QZ1azKNVDiSed7iaxOM88UkEiaGyyuXZf3gTpMlyT0dBr4yJOSI7Ecb1Vyv9
 DYr90O3Ke45yFSSrdDbHSNf/vWEbYdbo4s+xKTGjxhxTEKPY5BkwYbsoTk66kCgoQQouiY4N8dHsl
 rteL7NiHnxuTOC3UsFbhpw==;
Date: Sat, 07 Sep 2024 10:30:45 +0300
Message-Id: <86ed5vzzru.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: sbaugh@HIDDEN, Dmitry Gutov <dmitry@HIDDEN>,
 monnier@HIDDEN
In-Reply-To: <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN> (message from
 Dmitry Gutov on Mon, 26 Aug 2024 03:08:56 +0300)
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN> <8634qhipgj.fsf@HIDDEN>
 <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 70968
Cc: 70968 <at> debbugs.gnu.org, juri@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: -3.3 (---)

> Date: Mon, 26 Aug 2024 03:08:56 +0300
> Cc: sbaugh@HIDDEN, 70968 <at> debbugs.gnu.org, juri@HIDDEN,
>  monnier@HIDDEN
> From: Dmitry Gutov <dmitry@HIDDEN>
> 
> On 16/05/2024 21:25, Eli Zaretskii wrote:
> >> I don't think that would be required exactly.
> >>
> >> The problem here (IIUC) is that completion behaves differently with the
> >> emacs22 style depending on whether the execution path went through
> >> choose-completion (which is not a method of completion style but a
> >> common subroutine) or not (when completion--do-completion performed
> >> expansion).
> > I understand that much.  But what did these two (or their
> > then-equivalents) do in Emacs 22 and Emacs 23?
> 
> I'm guessing they behaved incorrectly (or however we want to call the 
> inconsistent behavior), but I don't have a compiled Emacs 22/23 around, 
> and they might be difficult to build.
> 
> Note that we fixed bug#48356 not too long ago, which is from the same 
> general area, and it probably originated from before Emacs 22/23 too.
> 
> It's worth looking for edge cases where we'd strongly prefer the current 
> behavior, and they might exist, but so far I only know of situations 
> where the change would be for the better, or the user might be okay with 
> either (example at the end of https://debbugs.gnu.org/72705#35).

Ping!  How should we proceed with this bug report?




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

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


Received: (at 70968) by debbugs.gnu.org; 26 Aug 2024 00:09:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Aug 25 20:09:58 2024
Received: from localhost ([127.0.0.1]:43448 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1siNJ0-0007lT-Es
	for submit <at> debbugs.gnu.org; Sun, 25 Aug 2024 20:09:58 -0400
Received: from fout6-smtp.messagingengine.com ([103.168.172.149]:36185)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1siNIy-0007lE-Fa
 for 70968 <at> debbugs.gnu.org; Sun, 25 Aug 2024 20:09:57 -0400
Received: from phl-compute-07.internal (phl-compute-07.nyi.internal
 [10.202.2.47])
 by mailfout.nyi.internal (Postfix) with ESMTP id 7BC19138FC92;
 Sun, 25 Aug 2024 20:09:00 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-07.internal (MEProxy); Sun, 25 Aug 2024 20:09:00 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm2; t=1724630940;
 x=1724717340; bh=j1+Nui53lCmq3Z8UmCPFptt91L4Vzf1pMM5asAxcWa0=; b=
 gj/j83l5VBL4l/cEXbEF2MIAZ0r0kN+AIBQGBuVoDB8JaayHrh7SyrIn8NJOaja3
 9eF41bTWOVxnxqjK+1enrAeVqfC7h+h5knAoL9k6i9C0ZrGtKKSL8opW67WmMIiH
 At12QMxbPT6lT9PToPg++bChx/oQ8dKBXG4XS0lvOnBSL5Yj0CpXVx51U/UGICEX
 ADCRWpnHr8fmfLa713cb7bMKYqLmfFuXp4Sy+O8/ynVrC5gGtKj/6FnnAXIlsKci
 KR16wba4mD22i5rsRY8U2KkFEBVf8qSlNLl0ejcF9RTUrHwI9vZTYEETDLaTJibc
 1MMF7ds0ChzRA30DDgKzNQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1724630940; x=
 1724717340; bh=j1+Nui53lCmq3Z8UmCPFptt91L4Vzf1pMM5asAxcWa0=; b=M
 NKcO6Ho+SygFXwN4DvsPyT/F4H/vYQIc2LD/dQUIGUhsLp5fIIpjimw78DnqyZ8B
 ahV9iuWq/ifXBJmrS6jdeqeTwETbMmALk98Nut9AWxGgCazPCnMnbR09dNRgyIn2
 okg27BPL8LXyWHwLbHXumhq+ZH2J6z2smuLIhr5I8Xpct2VS2oHIk24+Qg2nilKN
 lTPJpDTH4bw8QIbf5niEeUbKajwFWsJ6ePzwCsNbBVFHgGZbAUBZZpEgmkKC8DHq
 2Wn3vpoqcJxvUxRhprWo258kOWYxhGjZ04pVT0qvOtIE/mSrTPUUl5+k16VCkTRp
 T8Wnh/rzpmyOrvCIaWpSQ==
X-ME-Sender: <xms:nMfLZnPVGyXgUq5dV8eEnDR9QmJu3OZQs8PX9NPeZXksXOxJJwo4vQ>
 <xme:nMfLZh9QmZboLMFFFSRQBowpaC4PaKnTzgUrtHcHckB0Q7soPz3XRyTA4F0p9Xnp1
 zJkg8e3ikDGLB-Li5s>
X-ME-Received: <xmr:nMfLZmRPN5OHV_F--Bblq2zA13-1EsS8O3NAuSlrV8IhBVWY6r0RTzT8_N7-ZgAYMDo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddruddvjedgfeduucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdej
 necuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdrug
 gvvheqnecuggftrfgrthhtvghrnhepffeifedvleeukedtgfelieegudfgveekfeejveej
 ffetffeuueeugefhveeiuddvnecuffhomhgrihhnpehgnhhurdhorhhgnecuvehluhhsth
 gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepughmihhtrhihsehguhht
 ohhvrdguvghvpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtph
 htthhopegvlhhiiiesghhnuhdrohhrghdprhgtphhtthhopehssggruhhghhesjhgrnhgv
 shhtrhgvvghtrdgtohhmpdhrtghpthhtohepjedtleeikeesuggvsggsuhhgshdrghhnuh
 drohhrghdprhgtphhtthhopehjuhhriheslhhinhhkohhvrdhnvghtpdhrtghpthhtohep
 mhhonhhnihgvrhesihhrohdruhhmohhnthhrvggrlhdrtggr
X-ME-Proxy: <xmx:nMfLZrsR9IwrH32ROSFRqvNxlHX1NMnD8dmBQs0gkiu8pV933tbm0w>
 <xmx:nMfLZvdSgQrUu4V3b2HTzSsn6lBA9HhgmS41V5F77KzOf6MWJADQaA>
 <xmx:nMfLZn3ZNNgOKGFUP4wW0WrKl1uOUowHnrKT4Ep3iQ_qQz0yp4KjlA>
 <xmx:nMfLZr95wOEKSUWcipsWoke-KpxrjeWCgv25PfmtZ6cg4XQsGrjqhQ>
 <xmx:nMfLZgHGngv5A1FREk4s5z9H_EYVdttWfRxx1BPFOHRSxuX06DiX3OqH>
Feedback-ID: i0e71465a:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 25 Aug 2024 20:08:58 -0400 (EDT)
Message-ID: <7e05fd14-3499-4811-b4bc-b53186b15408@HIDDEN>
Date: Mon, 26 Aug 2024 03:08:56 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
To: Eli Zaretskii <eliz@HIDDEN>
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN> <8634qhipgj.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <8634qhipgj.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70968
Cc: sbaugh@HIDDEN, 70968 <at> debbugs.gnu.org, monnier@HIDDEN,
 juri@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.7 (-)

On 16/05/2024 21:25, Eli Zaretskii wrote:
>> I don't think that would be required exactly.
>>
>> The problem here (IIUC) is that completion behaves differently with the
>> emacs22 style depending on whether the execution path went through
>> choose-completion (which is not a method of completion style but a
>> common subroutine) or not (when completion--do-completion performed
>> expansion).
> I understand that much.  But what did these two (or their
> then-equivalents) do in Emacs 22 and Emacs 23?

I'm guessing they behaved incorrectly (or however we want to call the 
inconsistent behavior), but I don't have a compiled Emacs 22/23 around, 
and they might be difficult to build.

Note that we fixed bug#48356 not too long ago, which is from the same 
general area, and it probably originated from before Emacs 22/23 too.

It's worth looking for edge cases where we'd strongly prefer the current 
behavior, and they might exist, but so far I only know of situations 
where the change would be for the better, or the user might be okay with 
either (example at the end of https://debbugs.gnu.org/72705#35).




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

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


Received: (at 70968) by debbugs.gnu.org; 20 Jun 2024 15:46:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 20 11:46:11 2024
Received: from localhost ([127.0.0.1]:33997 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sKJzG-0005M0-Ju
	for submit <at> debbugs.gnu.org; Thu, 20 Jun 2024 11:46:10 -0400
Received: from mxout2.mail.janestreet.com ([38.105.200.79]:46829)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <sbaugh@HIDDEN>) id 1sKJzF-0005Lc-8R
 for 70968 <at> debbugs.gnu.org; Thu, 20 Jun 2024 11:46:09 -0400
From: Spencer Baugh <sbaugh@HIDDEN>
To: 70968 <at> debbugs.gnu.org
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
In-Reply-To: <ierzfsqu8hh.fsf@HIDDEN> (Spencer Baugh's message of
 "Wed, 15 May 2024 16:26:50 -0400")
References: <ierzfsqu8hh.fsf@HIDDEN>
Date: Thu, 20 Jun 2024 11:45:59 -0400
Message-ID: <ier7cejfwi0.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com;
 s=waixah; t=1718898359;
 bh=cmnIUeXwAoddVkIo/hJ5KLOceArCdHPBo8+6FfBUeHI=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date;
 b=kUOY9dv5M6QJHZrgT2vMc0LFc8HkJVHgQLtF3Ai5MVDZrACdAI1FdgY9sDd64G+Zx
 LfLq0K453t2UYg0s/7fZ2r0pDeSorsdOlxeoUo4AL8NpaI1jwZswefCDRv1V++EFxr
 SdiWhsz1wxPYxj4Nsok++mmmDjOAbgaU9/E6EmWmp+hiDGkRZyuK5UcktnShbTabxJ
 CvZuZjLl2Qw+IqvyNdAVKOkYs4PC/P5+ctzpc42uTukfN5AB3YZrD38j7cenrD9BzM
 pARuBPoDm9h04e4NIjU67TrSMfXQDUPdYPpXWhdN3/Z3VIjbpzpXyFQy770a5qHJYD
 8o+ABvRe4EIrQ==
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 70968
Cc: dmitry@HIDDEN, Stefan Monnier <monnier@HIDDEN>,
 juri@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 (-)


Here is an idea:

Currently emacs22 is the only style that ignores the text after point
when completing.  But, this is often useful behavior, and I'd like to
support it in other completion styles as a fallback.  Specifically, I
think it would be nice if completion always:

1. Try to complete including the suffix after point (like the basic,
partial-completion, substring styles do)

2. If no completion matches, try to complete again without the suffix
after point

What if we implemented this in the completion machinery itself?  If no
style matches, run through all the styles again without the suffix after
point.  This would allow e.g. partial-completion behavior when
completing in the middle of a symbol, which currently doesn't work.

This would basically remove the emacs22 style, since it would be a
behavior implemented at a higher level.  Then each completion frontend
could implement this "first with suffix then without suffix" behavior
separately, which would make choose-completion and similar calls easier
to make work.

Stefan, I wonder if you have thoughts on this idea?




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

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


Received: (at 70968) by debbugs.gnu.org; 16 May 2024 18:29:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 16 14:29:04 2024
Received: from localhost ([127.0.0.1]:50251 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7fqi-000232-3e
	for submit <at> debbugs.gnu.org; Thu, 16 May 2024 14:29:04 -0400
Received: from eggs.gnu.org ([209.51.188.92]:50700)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s7fqf-00022b-RH
 for 70968 <at> debbugs.gnu.org; Thu, 16 May 2024 14:29:02 -0400
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 1s7fqW-0000G6-7y; Thu, 16 May 2024 14:28:52 -0400
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=hY+ZAS4mBFdQYtwWeSmhX48zO/Lg8LmKmyTT9YPOY2E=; b=qnvEBKIjto22
 5nmGtGjujdWH+s6YlUGsyV7GwiGbRYWLnuHk76O7/3axNFyMTn7xlscwHMMJPxHGdUktA/ST+epyb
 fAFvQNd72iz9+cKLUu/upSRhwX5vxisnHgkfL1AbNROXj6LqONuEqZH9PSz4DCmszLkE+QTVN8OTu
 a4aH+5AAx54un5jsI0MMqJHBH2JDppSCHpkEsXlhPd+6o+x5ryz6hFgvWJ9Df/0JUUDm8kmKQ0m1f
 /+p7IJySwsIwBlpwnrYaVGrIDY0Swj4gLhtSU3Q8DYNMAV6h+ZsXTxK/8ASyTMw0UeSK9f/w0rqZO
 tXrrUkOm4F05KMhWSW43Vw==;
Date: Thu, 16 May 2024 21:28:45 +0300
Message-Id: <861q61ipb6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <jwvcyplbr58.fsf-monnier+emacs@HIDDEN> (message from Stefan
 Monnier on Thu, 16 May 2024 13:40:35 -0400)
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <jwvcyplbr58.fsf-monnier+emacs@HIDDEN>
X-Spam-Score: -1.6 (-)
X-Debbugs-Envelope-To: 70968
Cc: sbaugh@HIDDEN, juri@HIDDEN, 70968 <at> debbugs.gnu.org,
 dmitry@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.6 (--)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: Spencer Baugh <sbaugh@HIDDEN>,  dmitry@HIDDEN,
>   70968 <at> debbugs.gnu.org,  juri@HIDDEN
> Date: Thu, 16 May 2024 13:40:35 -0400
> 
> > If making these two ways consistent means we need to change the
> > behavior of emacs22 style of completion, then I'm sorry, but we cannot
> > do that.  This style is a legacy style, and is there to provide the
> > legacy behavior for those who need it.
> 
> I'm not sure it's terribly important to preserve this detail of the
> behavior of `Emacs-22`.  The `emacs22` style does not aim to provide the
> illusion you're running an old Emacs.  I named it that way because
> I couldn't come up with a good descriptive name for it.  If it
> misbehaves, I don't see a need to be bug-compatible, especially since
> this doesn't affect ELisp code but users.

I think it does, sorry.  Suchj old behavior is a de-facto standard.
If we change that, we should at least have a knob to get back the old
behavior.




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

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


Received: (at 70968) by debbugs.gnu.org; 16 May 2024 18:26:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 16 14:26:14 2024
Received: from localhost ([127.0.0.1]:50237 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7fny-00020y-CO
	for submit <at> debbugs.gnu.org; Thu, 16 May 2024 14:26:14 -0400
Received: from eggs.gnu.org ([209.51.188.92]:46430)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s7fnv-00020s-02
 for 70968 <at> debbugs.gnu.org; Thu, 16 May 2024 14:26:12 -0400
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 1s7fnm-0008B3-Ee; Thu, 16 May 2024 14:26:02 -0400
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=+xQxEaB06GGi1oYPM+k609R7yp7F6a8mtUYFy2Jy92E=; b=Hp3slIRiP+QD
 CAy4ILaDlFM0Df7+qUH0ffcWhznTuGwd8daze3GXKsxm8DjUgxghCGe+wWow2eWh7e+U5e+sU1AtD
 PFTYb/rDVAkKSK/TR2bWfYeeDpmXzy+bHFpR14vYbI6e/bDptV/VCTohXCbq+cat0Lxrsi9IuorUi
 ITBBvHSM5twGFoM60OpCLdw/48L1t0C6bf9Y0oAdfEWchgcFgoZOLVA6LzlHp5yudqhNBD9/WP2Ss
 FxIq5PF9Y8yCJMqmG/MRDMXV/IzD/BXscrLHRvjlWuVlR9rfsxTD+XoZTN9IX2qXCumTgw+jnr3ia
 OpJ41MYgyie7n1EfoFkT2Q==;
Date: Thu, 16 May 2024 21:25:32 +0300
Message-Id: <8634qhipgj.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN> (message from
 Dmitry Gutov on Thu, 16 May 2024 20:26:31 +0300)
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
 <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN>
X-Spam-Score: -1.6 (-)
X-Debbugs-Envelope-To: 70968
Cc: sbaugh@HIDDEN, 70968 <at> debbugs.gnu.org, monnier@HIDDEN,
 juri@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.6 (--)

> Date: Thu, 16 May 2024 20:26:31 +0300
> Cc: 70968 <at> debbugs.gnu.org, juri@HIDDEN,
>  Stefan Monnier <monnier@HIDDEN>
> From: Dmitry Gutov <dmitry@HIDDEN>
> 
> On 16/05/2024 11:13, Eli Zaretskii wrote:
> >> Cc: dmitry@HIDDEN, juri@HIDDEN
> >> From: Spencer Baugh <sbaugh@HIDDEN>
> >> Date: Wed, 15 May 2024 16:26:50 -0400
> >>
> >>
> >> try-completion and choose-completion have different behavior; with the
> >> emacs22 completion style, the former preserves the text after point
> >> (while ignoring it), whereas the latter deletes the text after point.
> >>
> >> 1. emacs -Q
> >>
> >> 2. In scratch, type "inhibit-asdf" and move point to after the "-"
> >>
> >> 3. Type "q" and M-<tab>
> >>     The buffer now contains "inhibit-quitasdf", because the emacs22 style
> >>     ignored the text after point and completed on "inhibit-q".
> >>
> >> 4. C-/ C-/ to change the buffer back to "inhibit-asdf"
> >>
> >> 5. M-<tab>
> >>     The *Completions* buffer will be displayed, containing among others
> >>     "inhibit-quit" as a completion, because the emacs22 style ignored the
> >>     text after point and completed on "inhibit-".
> >>
> >> 6. Use M-<down> and M-<ret> to select and choose "inhibit-quit"
> >>     The buffer now contains "inhibit-quit".
> >>
> >> The two ways of selecting completions should behave the same.
> >>
> >> I suggest that the behavior of not deleting the text after point is
> >> better.  The emacs22 style takes care to not delete the text after point
> >> in try-completion and in completion cycling; we should take similar care
> >> in choose-completion.
> > 
> > If making these two ways consistent means we need to change the
> > behavior of emacs22 style of completion, then I'm sorry, but we cannot
> > do that.  This style is a legacy style, and is there to provide the
> > legacy behavior for those who need it.
> 
> I don't think that would be required exactly.
> 
> The problem here (IIUC) is that completion behaves differently with the 
> emacs22 style depending on whether the execution path went through 
> choose-completion (which is not a method of completion style but a 
> common subroutine) or not (when completion--do-completion performed 
> expansion).

I understand that much.  But what did these two (or their
then-equivalents) do in Emacs 22 and Emacs 23?




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

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


Received: (at 70968) by debbugs.gnu.org; 16 May 2024 17:40:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 16 13:40:47 2024
Received: from localhost ([127.0.0.1]:50037 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7f5z-0001Tt-6A
	for submit <at> debbugs.gnu.org; Thu, 16 May 2024 13:40:47 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:9069)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1s7f5w-0001Tn-GM
 for 70968 <at> debbugs.gnu.org; Thu, 16 May 2024 13:40:45 -0400
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id B13DF80A95;
 Thu, 16 May 2024 13:40:36 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1715881235;
 bh=b3G38CPwf+PlJyJzpdedwV8aUvXIg8XSf7qH5TzPv+g=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=binsuO9KLCFGcOSOSAtwZEG+MzPBVnfnTULEykkTxf0iN9zAu3O+Vm7ysvE2/h4p+
 UtFGprsDK/8zGUVRqaZoBB4W8IqNVbehu0elbu6e008xBEo9IUbJycFhw5TkjgWNr6
 pXYg10JcC1KnJBCXZZwp4u7FdbFsP9Hxcj5SKrcmSnEpHi8thUb+hc7+odoe61YbEa
 21Gx9vTSEDhWQ2/S5XqNjT19g/4FJay8NNlCLrCVYadx90mCmWeGBXN8xVdFw38kCB
 rr0O2UCgmi+Ynb5XFw6ptNkj7/lgLqjjLhmQ1zCuX7puvo/noXuxcV2WFHuZZtr22v
 Qv7p2Sc+ktg1g==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 9FD48805BE;
 Thu, 16 May 2024 13:40:35 -0400 (EDT)
Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 8CF5B12012E;
 Thu, 16 May 2024 13:40:35 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
In-Reply-To: <86bk56jhsp.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 16 May
 2024 11:13:26 +0300")
Message-ID: <jwvcyplbr58.fsf-monnier+emacs@HIDDEN>
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
Date: Thu, 16 May 2024 13:40:35 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL 0.157 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 70968
Cc: Spencer Baugh <sbaugh@HIDDEN>, juri@HIDDEN,
 70968 <at> debbugs.gnu.org, dmitry@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: -3.3 (---)

>> I suggest that the behavior of not deleting the text after point is
>> better.  The emacs22 style takes care to not delete the text after point
>> in try-completion and in completion cycling; we should take similar care
>> in choose-completion.

I agree this inconsistency is a bug.
I suspect it may have been a result of implementation limitations.

A typical use case is

    C-x C-w bar
    ... realize you're not in the right subdir ...
    M-b ?
    ... choose some subdirectory in which you want to save `bar`
    ... Oops, oh no, `bar` has disappeared!

> If making these two ways consistent means we need to change the
> behavior of emacs22 style of completion, then I'm sorry, but we cannot
> do that.  This style is a legacy style, and is there to provide the
> legacy behavior for those who need it.

I'm not sure it's terribly important to preserve this detail of the
behavior of `Emacs-22`.  The `emacs22` style does not aim to provide the
illusion you're running an old Emacs.  I named it that way because
I couldn't come up with a good descriptive name for it.  If it
misbehaves, I don't see a need to be bug-compatible, especially since
this doesn't affect ELisp code but users.


        Stefan





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

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


Received: (at 70968) by debbugs.gnu.org; 16 May 2024 17:26:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 16 13:26:46 2024
Received: from localhost ([127.0.0.1]:49972 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7esP-0001Fr-LW
	for submit <at> debbugs.gnu.org; Thu, 16 May 2024 13:26:46 -0400
Received: from fout2-smtp.messagingengine.com ([103.168.172.145]:35563)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1s7esM-0001Fl-Fn
 for 70968 <at> debbugs.gnu.org; Thu, 16 May 2024 13:26:43 -0400
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47])
 by mailfout.nyi.internal (Postfix) with ESMTP id F109A1381511;
 Thu, 16 May 2024 13:26:34 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute6.internal (MEProxy); Thu, 16 May 2024 13:26:34 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm2; t=1715880394;
 x=1715966794; bh=8LDx7Cf4RT/ExUJrLeXJaIwmHTslW10/HrV8BoCDq9Q=; b=
 GKHChPLXOPGdmSH/W70nM8knIP66UFlVeHVT95FO/EAlSimjCyA8Fx2e65G3BFw3
 dCY9rJLUQN6tdiuJlZchrmuSEWOQKMe4c88m90CHl3ruFXNCQ0flxRgDHMuy0g60
 TSICFMi4JtMfrxdU58BUmHhFkeWRZgQq+D/A6eb6ahRVutPNk63dhtPIuDXK7OKv
 Ten9uwgF61f7fzgOC+KPJKeIirTx2GLKzlAnkkb8yTC3QaXahFfrLXiqeusx2oC6
 ep3SmvTWnmB4sN7rQzq8ou1WcSdSor7H++9YOzkrMYtb6tL/tSZ7/U03SoX/Wd5F
 gRgU74zPQ8Ps6IU2S+4L+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1715880394; x=
 1715966794; bh=8LDx7Cf4RT/ExUJrLeXJaIwmHTslW10/HrV8BoCDq9Q=; b=i
 XaWsRCnKrAIx2VUXxD7v/rt+k9nb49nA4gWIKHbs+k3f+vAJ5fLyjwPllEfML+PE
 FoF69KTBfPhIxhwwmtOPG50un1JX9vEyomFHJnPfKxvPq7g/H1MDZY9SrDfC4Dqu
 ch+AaW41hsz5LdhYsanoSe3IA73ccfAUkGufM+bNIgB6tMR2HS0tJCLJXyQq4a2H
 +1n0HEGlLh+gSIWY12ArqTat5pDoT+pVCyCsDZw2Cg/rstBMsiB79ka1EWr1IsdM
 lx/scjEL/8zFbpHy02KLpnCGN1FD4WWxWOs6K/1I2JSoZcUVTw3C9pbV4D4hIjGW
 l+hIvHcO2PUICVgH5kCig==
X-ME-Sender: <xms:ykFGZp4aAgzua7JKQXgoGqFcGggAX7yT2PT8Ri6oA5KDB3eofS03mg>
 <xme:ykFGZm5lbdZCEmn6QI9va-_C1W-FZuJC7m1VkJuWRElBlEp9yfCbuwHzeb2M81Adk
 BuAsZQ7FJB_9LZ6BvE>
X-ME-Received: <xmr:ykFGZgdcfXLH_axjv7AXI68e_vE28B_ZR2yjSFhNghfLUZiv_d2qywHG_cNqvwVJe1K9>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdehuddgudduudcutefuodetggdotefrod
 ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
 necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
 enucfjughrpefkffggfgfuvfevfhfhjggtgfesthejredttddvjeenucfhrhhomhepffhm
 ihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrg
 htthgvrhhnpeetudeljeegheetgfehgeejkeeuhedvveeikeeufedtvddtveefhfdvveeg
 udejheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe
 gumhhithhrhiesghhuthhovhdruggvvh
X-ME-Proxy: <xmx:ykFGZiLlZY3X3vczrFduKRMePNJ8l3jWrBiAqYIKpNN3N0IB67k3kg>
 <xmx:ykFGZtLf2rPbMD-iaOntCTrFtNrfvpadYls64DAlfew0djmtbB098A>
 <xmx:ykFGZryUxisRWy-_IP-H6Xjintadser5S2F8wO1Y54rJI5fP1bNZpQ>
 <xmx:ykFGZpLNG6WPE-Yw-CyzLfFxK2y_dxYqe8KnQtbwjY4N3sjXgzqgmA>
 <xmx:ykFGZrjss2O8Ach3WWqWv6v0PREjkMhkCJGQD8cL6XTQ6mFSazCRg7yV>
Feedback-ID: i0e71465a:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 16 May 2024 13:26:33 -0400 (EDT)
Message-ID: <377f815c-52d2-4770-ae85-55e096e104b0@HIDDEN>
Date: Thu, 16 May 2024 20:26:31 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#70968: 29.2.50; choose-completion on an emacs22-style
 completion deletes text after point
To: Eli Zaretskii <eliz@HIDDEN>, Spencer Baugh <sbaugh@HIDDEN>
References: <ierzfsqu8hh.fsf@HIDDEN> <86bk56jhsp.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <86bk56jhsp.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 70968
Cc: 70968 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>,
 juri@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 16/05/2024 11:13, Eli Zaretskii wrote:
>> Cc: dmitry@HIDDEN, juri@HIDDEN
>> From: Spencer Baugh <sbaugh@HIDDEN>
>> Date: Wed, 15 May 2024 16:26:50 -0400
>>
>>
>> try-completion and choose-completion have different behavior; with the
>> emacs22 completion style, the former preserves the text after point
>> (while ignoring it), whereas the latter deletes the text after point.
>>
>> 1. emacs -Q
>>
>> 2. In scratch, type "inhibit-asdf" and move point to after the "-"
>>
>> 3. Type "q" and M-<tab>
>>     The buffer now contains "inhibit-quitasdf", because the emacs22 style
>>     ignored the text after point and completed on "inhibit-q".
>>
>> 4. C-/ C-/ to change the buffer back to "inhibit-asdf"
>>
>> 5. M-<tab>
>>     The *Completions* buffer will be displayed, containing among others
>>     "inhibit-quit" as a completion, because the emacs22 style ignored the
>>     text after point and completed on "inhibit-".
>>
>> 6. Use M-<down> and M-<ret> to select and choose "inhibit-quit"
>>     The buffer now contains "inhibit-quit".
>>
>> The two ways of selecting completions should behave the same.
>>
>> I suggest that the behavior of not deleting the text after point is
>> better.  The emacs22 style takes care to not delete the text after point
>> in try-completion and in completion cycling; we should take similar care
>> in choose-completion.
> 
> If making these two ways consistent means we need to change the
> behavior of emacs22 style of completion, then I'm sorry, but we cannot
> do that.  This style is a legacy style, and is there to provide the
> legacy behavior for those who need it.

I don't think that would be required exactly.

The problem here (IIUC) is that completion behaves differently with the 
emacs22 style depending on whether the execution path went through 
choose-completion (which is not a method of completion style but a 
common subroutine) or not (when completion--do-completion performed 
expansion).




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

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


Received: (at 70968) by debbugs.gnu.org; 16 May 2024 08:13:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 16 04:13:47 2024
Received: from localhost ([127.0.0.1]:47371 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7WFG-0007yj-H4
	for submit <at> debbugs.gnu.org; Thu, 16 May 2024 04:13:46 -0400
Received: from eggs.gnu.org ([209.51.188.92]:45594)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s7WFB-0007yX-Ca
 for 70968 <at> debbugs.gnu.org; Thu, 16 May 2024 04:13:45 -0400
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 1s7WF1-0004ZG-MM; Thu, 16 May 2024 04:13:31 -0400
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=k9aTdjkZb+SNhOf71n2REYiJoitjy3L2yOFtrAnoqtQ=; b=JS68ALLtUOlp
 D1+7ApjIz0vbpfNwyfZ2G6s1YK+oowImZNSX/z/cl3GasxAK+gtVqcYqdXG4mPQfyKhl7cToBR/pn
 NrB+1Qd8DdHALBTVHPT5q3RbHnZ3geOkOBjiDXRGU1MFAh2OxvYWF/TEnSEdhTuku/bJI78uG7rb2
 winzBnZx4NFQdRnq/ze7ooNde7vdrEOb1znj1kyKsrscBB4SANqpYqN5bKQerncHsgEaecRRu/bPE
 8gdFjC0HGiD4lPoecMd4SP3H89cXW7NuaBy7GMcKYJy4zx011Q5SmdQEQ8a1r/EybRFosVlzOlXu5
 EXMlGPO6VMG6MPXCcyb8Zg==;
Date: Thu, 16 May 2024 11:13:26 +0300
Message-Id: <86bk56jhsp.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>
In-Reply-To: <ierzfsqu8hh.fsf@HIDDEN> (message from Spencer Baugh on
 Wed, 15 May 2024 16:26:50 -0400)
Subject: Re: bug#70968: 29.2.50;
 choose-completion on an emacs22-style completion deletes text after
 point
References: <ierzfsqu8hh.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 70968
Cc: dmitry@HIDDEN, 70968 <at> debbugs.gnu.org, juri@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: -3.3 (---)

> Cc: dmitry@HIDDEN, juri@HIDDEN
> From: Spencer Baugh <sbaugh@HIDDEN>
> Date: Wed, 15 May 2024 16:26:50 -0400
> 
> 
> try-completion and choose-completion have different behavior; with the
> emacs22 completion style, the former preserves the text after point
> (while ignoring it), whereas the latter deletes the text after point.
> 
> 1. emacs -Q
> 
> 2. In scratch, type "inhibit-asdf" and move point to after the "-"
> 
> 3. Type "q" and M-<tab>
>    The buffer now contains "inhibit-quitasdf", because the emacs22 style
>    ignored the text after point and completed on "inhibit-q".
> 
> 4. C-/ C-/ to change the buffer back to "inhibit-asdf"
> 
> 5. M-<tab>
>    The *Completions* buffer will be displayed, containing among others
>    "inhibit-quit" as a completion, because the emacs22 style ignored the
>    text after point and completed on "inhibit-".
> 
> 6. Use M-<down> and M-<ret> to select and choose "inhibit-quit"
>    The buffer now contains "inhibit-quit".
> 
> The two ways of selecting completions should behave the same.
> 
> I suggest that the behavior of not deleting the text after point is
> better.  The emacs22 style takes care to not delete the text after point
> in try-completion and in completion cycling; we should take similar care
> in choose-completion.

If making these two ways consistent means we need to change the
behavior of emacs22 style of completion, then I'm sorry, but we cannot
do that.  This style is a legacy style, and is there to provide the
legacy behavior for those who need it.

So for making the decisions in this case we need to know how did Emacs
22 and later versions behave in the above scenario, and take it from
there.  If they all behaved like you show, then this behavior must
stay unchanged, unfortunately, for backward-compatibility reasons.




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

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


Received: (at submit) by debbugs.gnu.org; 15 May 2024 20:26:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed May 15 16:26:58 2024
Received: from localhost ([127.0.0.1]:44284 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7LDG-0007EI-JK
	for submit <at> debbugs.gnu.org; Wed, 15 May 2024 16:26:58 -0400
Received: from lists.gnu.org ([209.51.188.17]:34764)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <sbaugh@HIDDEN>) id 1s7LDD-0007EC-Q2
 for submit <at> debbugs.gnu.org; Wed, 15 May 2024 16:26:56 -0400
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 <sbaugh@HIDDEN>)
 id 1s7LDB-0000vC-JE
 for bug-gnu-emacs@HIDDEN; Wed, 15 May 2024 16:26:53 -0400
Received: from mxout5.mail.janestreet.com ([64.215.233.18])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <sbaugh@HIDDEN>)
 id 1s7LDA-0005bE-74
 for bug-gnu-emacs@HIDDEN; Wed, 15 May 2024 16:26:53 -0400
From: Spencer Baugh <sbaugh@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 29.2.50; choose-completion on an emacs22-style completion deletes
 text after point
X-Debbugs-CC: dmitry@HIDDEN, juri@HIDDEN
Date: Wed, 15 May 2024 16:26:50 -0400
Message-ID: <ierzfsqu8hh.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com;
 s=waixah; t=1715804810;
 bh=c9WmK3IzrtkDBFBQwiOi1BXzrh3fHev+hL30jz9z2S0=;
 h=From:To:Subject:Date;
 b=ywNsOx0oWzCelCKa65Il55MUqwkL9qbW3PZ0/OR2qK/MmoFTOxLP8QO0dEB48Brsb
 oA9LuVz9bTViowZJ38SG0YDucH73hUMOD6b9ABioZJigofO8BnMWOmNV+tVps/4iGt
 h/A5tNQuWG4inluvm1bIFdrfyItmFjLayaoUV3WeYjxFClkwJUY1VX93ym70tqn1JH
 s2et+F5FRlT3FkDA5rREhFFGnlH/IuP9a0zwO0sJnakfi86IS1goT6qoj2UYwBoCyO
 kTYbSSgTquB+LQ84X1QlH6RZ2tlYJ6iQCr6sn/kM5eX4GOVTvToeMEgwR+/nQ+UQVG
 veqYnhWoaBDww==
Received-SPF: pass client-ip=64.215.233.18; envelope-from=sbaugh@HIDDEN;
 helo=mxout5.mail.janestreet.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,
 RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-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
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 (--)


try-completion and choose-completion have different behavior; with the
emacs22 completion style, the former preserves the text after point
(while ignoring it), whereas the latter deletes the text after point.

1. emacs -Q

2. In scratch, type "inhibit-asdf" and move point to after the "-"

3. Type "q" and M-<tab>
   The buffer now contains "inhibit-quitasdf", because the emacs22 style
   ignored the text after point and completed on "inhibit-q".

4. C-/ C-/ to change the buffer back to "inhibit-asdf"

5. M-<tab>
   The *Completions* buffer will be displayed, containing among others
   "inhibit-quit" as a completion, because the emacs22 style ignored the
   text after point and completed on "inhibit-".

6. Use M-<down> and M-<ret> to select and choose "inhibit-quit"
   The buffer now contains "inhibit-quit".

The two ways of selecting completions should behave the same.

I suggest that the behavior of not deleting the text after point is
better.  The emacs22 style takes care to not delete the text after point
in try-completion and in completion cycling; we should take similar care
in choose-completion.

This is especially noticeable when using minibuffer-visible-completions,
which make it easier to use choose-completion.  It's also especially
noticeable with corfu-mode, which usually automatically calls
choose-completion when finishing completion.




Acknowledgement sent to Spencer Baugh <sbaugh@HIDDEN>:
New bug report received and forwarded. Copy sent to dmitry@HIDDEN, juri@HIDDEN, bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to dmitry@HIDDEN, juri@HIDDEN, bug-gnu-emacs@HIDDEN:
bug#70968; 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: Sun, 12 Jan 2025 05:45:02 UTC

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