From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#72705: 31.0.50; eglot--dumb-tryc Filters out too much Date: Tue, 20 Aug 2024 05:08:19 +0300 Message-ID: <0ff5f767-be87-4d64-964c-0a20fa776acf@gutov.dev> References: <54dacc71-4395-431f-abc4-c60dc070cb03@gutov.dev> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------T4UGtGQT4rcQv4uN3TEjMO4n" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7835"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 72705@debbugs.gnu.org To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Aug 20 04:09:39 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sgEJV-0001tZ-UP for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 20 Aug 2024 04:09:38 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sgEJH-000609-Ab; Mon, 19 Aug 2024 22:09:23 -0400 Original-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 ) id 1sgEJE-0005zx-W3 for bug-gnu-emacs@gnu.org; Mon, 19 Aug 2024 22:09:21 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sgEJE-0008Gy-N4 for bug-gnu-emacs@gnu.org; Mon, 19 Aug 2024 22:09:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=In-Reply-To:From:References:MIME-Version:Date:To:Subject; bh=t0WsjGYs1SrhjNWpabpNAsXBk25Uu5jx+x9F0EZnnPU=; b=bStFiS2sw+LL+49wkqX2gaonPE4lns1wIq4fu6c9IBwoIPbvbIxeKOowu4m/vlMl0+DdY7Hgx8IwepsbkoYNNTaE2TxPYhPTZHDwgVzupWJKZpfnvQLXjPdh5V/x/rcFJmqyunOMJJknMG7EO8OlJT5XLl63RlrlYjdLSVzEofPjqTO+2AlMM6OhpKiq/8Nva18HKnMm4tE0ekYxO7KHgfz3kJUF30G9PpRlZIMe8O+T0gZQV8Bxdoix2ICWtD7RW5obPntGL9RX0nVKSM6Zghpyo1u1jyv5uQ2kzw2VWJ13YywppC/y0eRAo1hlarwvDHEq7tvqycKEaQR+XyyCIQ==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sgEJt-0008Vh-KK for bug-gnu-emacs@gnu.org; Mon, 19 Aug 2024 22:10:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 20 Aug 2024 02:10:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72705 X-GNU-PR-Package: emacs Original-Received: via spool by 72705-submit@debbugs.gnu.org id=B72705.172411975332635 (code B ref 72705); Tue, 20 Aug 2024 02:10:01 +0000 Original-Received: (at 72705) by debbugs.gnu.org; 20 Aug 2024 02:09:13 +0000 Original-Received: from localhost ([127.0.0.1]:59498 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sgEJ6-0008UH-DG for submit@debbugs.gnu.org; Mon, 19 Aug 2024 22:09:12 -0400 Original-Received: from fhigh1-smtp.messagingengine.com ([103.168.172.152]:51445) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sgEJ4-0008U4-3g for 72705@debbugs.gnu.org; Mon, 19 Aug 2024 22:09:11 -0400 Original-Received: from phl-compute-05.internal (phl-compute-05.nyi.internal [10.202.2.45]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 284871151B4B; Mon, 19 Aug 2024 22:08:22 -0400 (EDT) Original-Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Mon, 19 Aug 2024 22:08:22 -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=fm2; t=1724119702; x=1724206102; bh=t0WsjGYs1S rhjNWpabpNAsXBk25Uu5jx+x9F0EZnnPU=; b=X5sinBYeuYRUnBg0WCgDCXvg5J zCGZ8MbxwiQ/+TSqMlWROqyeECSUBUmTOoX96VjTdtFbgf+RPpSmV8HXJWPXaWzH SWcEEC1ACl7TsDvKaNTOU5YR/qlibIH0Bm1zmSmRljhgmm/bN/5qtHjoiidTjlBZ kRspl8DRTgoUzVw5N+3Kc4mIr10rTAca+0M+/gt7YsvXYJSAnYgyiR0m/P6jOBaS 893uNSzuVXtztaVZ3c272x7RXTXZBl4VulO/p7igJK7beLHOv8yLxgeQYPpFi2yX HWf86ldVdsMgqdLYDT2oqWAK7bEsfh4hT1AFRwaG+LH9xG68mgMOZ54TfkRA== 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= fm1; t=1724119702; x=1724206102; bh=t0WsjGYs1SrhjNWpabpNAsXBk25U u5jx+x9F0EZnnPU=; b=HtTCXoSPSvH+tklFoao287lNWaGzAVh1ol6dfAgf5ksH WmgkNwVHA68VdzZBbKrMDYcODQGPXymxzv5AfHvr9Oysz/qpsY3Y+MZ1NmEY6HtQ YLf0V4XUEd5s7urL6D64XMf6+FS04T0gxSosbwmGkRz/lUHLzVJGJuvPnXgaFaho JUFVNmqfPmtJRJYocTfqSUiqcHqLKa+JWJolfR1p4eTh/MVGuo/pfn5dG+S/WkDw 3Cs8aMptMHoaa/Yi+MKZDLvSOmTfXLWvIfHrMm5/VvpURa8JUqm2FVNIBSYb3C37 /nv4ymeaM5VN6Mg/ZqaNrv90n5CcoJchTcBiEFtFFQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudduhedgheeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeen ucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvg hvqeenucggtffrrghtthgvrhhnpefhleektdfgfedttdeuteeijeevtdffgeekgfethedv vdevhfelleefieeuueehfeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecuvehluh hsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepughmihhtrhihsehg uhhtohhvrdguvghvpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprh gtphhtthhopehjohgrohhtrghvohhrrgesghhmrghilhdrtghomhdprhgtphhtthhopeej vdejtdehseguvggssghughhsrdhgnhhurdhorhhg X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 19 Aug 2024 22:08:21 -0400 (EDT) Content-Language: en-US In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:290419 Archived-At: This is a multi-part message in MIME format. --------------T4UGtGQT4rcQv4uN3TEjMO4n Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 19/08/2024 15:59, João Távora wrote: > On Mon, Aug 19, 2024 at 12:39 PM Dmitry Gutov wrote: > >>> So I'd say this need more testing, especially with more servers. >> Here's hoping. > > If you want this change, you'll have to do the testing. So far I've tested with gopls and clangd (when writing the new tests), typescript-language-server and rust-analyzer. >> Thanks for the references, I'll dig in more. >> >> Surprised to hear that exit-function can be affected. > > exit-function needs a fully formed completion. try-completion's > and Emacs partial complete semantics aren't compatible. ISTR > that even a full completion obtained via try-completion would > sometimes not run the function. Maybe I'm misremembering. All right. The proposed change doesn't alter the kinds of strings that are inserted, only the cases when that happens. When the added predicate returns nil, we fall back to the next clause; and the check at the end also allows us to return nil, which is useful in certain rare contexts. > This whole system is held up by very thin wires unfortunately, > and a lot of people are relying on those wires. The best choice > to use LSP's completions, which were obviously modelled after > other IDEs where completions are much simpler and similar to > the Company tooltip... is naturally to use something like > company (or corfu with some patch applied). > > I hope you don't change any Company behaviour backward-incompatibly > (though I have my fork anyway, so no problem). The change is in a pending PR, it's designed to be opt-in on the backend level, but company-capf is a separate backend, so... you know. It alters what happens when you explicitly press TAB, which previously only did prefix-matching inside Company code, but now can delegate to backends for some extra smarts (longer expansions being the goal), which unfortunately don't work too well with LSP. The report that's referenced in the 3 commits your mentioned does seem to have regressed is https://github.com/joaotavora/eglot/issues/1339 - not to the original behavior (exit-function still works), but C-M-i changes buffer text to v.call1234.1234567890 Not sure how important that case is, but it's a consequence of having the style return nil in try-completion and unavoidable failover to 'basic' because of that (in completion--styles, because a category can't actually override, only prepend styles). I suppose that could be fixed by moving some matching logic from the style into the completion table. Not sure how important/realistic the example is, although somebody did report it... In the meantime, here's an updated patch with 3 new tests (and existing ones all passing). The implementation has been retouched too for better performance (the typescript server in particular made things slower with the previous proposal). --------------T4UGtGQT4rcQv4uN3TEjMO4n Content-Type: text/x-patch; charset=UTF-8; name="eglot--dumb-tryc-more-checks.diff" Content-Disposition: attachment; filename="eglot--dumb-tryc-more-checks.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL2VnbG90LmVsIGIvbGlzcC9wcm9nbW9kZXMv ZWdsb3QuZWwKaW5kZXggMzUzODc3ZjYwYzIuLjc0NGYyYjI2YzNiIDEwMDY0NAotLS0gYS9s aXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbApA QCAtMzE0Miw4ICszMTQyLDE2IEBAIGVnbG90LS1kdW1iLWFsbGMKIChkZWZ1biBlZ2xvdC0t ZHVtYi10cnljIChwYXQgdGFibGUgcHJlZCBwb2ludCkKICAgKGxldCAoKHByb2JlIChmdW5j YWxsIHRhYmxlIHBhdCBwcmVkIG5pbCkpKQogICAgIChjb25kICgoZXEgcHJvYmUgdCkgdCkK LSAgICAgICAgICAocHJvYmUgKGNvbnMgcHJvYmUgKGxlbmd0aCBwcm9iZSkpKQotICAgICAg ICAgICh0IChjb25zIHBhdCBwb2ludCkpKSkpCisgICAgICAgICAgKHByb2JlCisgICAgICAg ICAgIChpZiAoYW5kIChub3QgKGVxdWFsIHByb2JlIHBhdCkpCisgICAgICAgICAgICAgICAg ICAgIChjbC1ldmVyeQorICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAocykgKHN0cmlu Zy1wcmVmaXgtcCBwcm9iZSBzIGNvbXBsZXRpb24taWdub3JlLWNhc2UpKQorICAgICAgICAg ICAgICAgICAgICAgKGZ1bmNhbGwgdGFibGUgcGF0IHByZWQgdCkpKQorICAgICAgICAgICAg ICAgKGNvbnMgcHJvYmUgKGxlbmd0aCBwcm9iZSkpCisgICAgICAgICAgICAgKGNvbnMgcGF0 IHBvaW50KSkpCisgICAgICAgICAgKHQKKyAgICAgICAgICAgKGFuZCAoZnVuY2FsbCB0YWJs ZSBwYXQgcHJlZCB0KQorICAgICAgICAgICAgICAgIChjb25zIHBhdCBwb2ludCkpKSkpKQog CiAoYWRkLXRvLWxpc3QgJ2NvbXBsZXRpb24tY2F0ZWdvcnktZGVmYXVsdHMgJyhlZ2xvdC1j YXBmIChzdHlsZXMgZWdsb3QtLWR1bWItZmxleCkpKQogKGFkZC10by1saXN0ICdjb21wbGV0 aW9uLXN0eWxlcy1hbGlzdCAnKGVnbG90LS1kdW1iLWZsZXggZWdsb3QtLWR1bWItdHJ5YyBl Z2xvdC0tZHVtYi1hbGxjKSkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvZWds b3QtdGVzdHMuZWwgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL2VnbG90LXRlc3RzLmVsCmluZGV4 IDUzNGM0N2IyNjQ2Li42MjViZTJlYTMwZiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3Byb2dt b2Rlcy9lZ2xvdC10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL2VnbG90LXRl c3RzLmVsCkBAIC02MDAsNiArNjAwLDIwIEBAIGVnbG90LXRlc3QtYmFzaWMtY29tcGxldGlv bnMKICAgICAgIChtZXNzYWdlIChidWZmZXItc3RyaW5nKSkKICAgICAgIChzaG91bGQgKGxv b2tpbmctYmFjayAiZnByaW50Zi4/IikpKSkpCiAKKyhlcnQtZGVmdGVzdCBlZ2xvdC10ZXN0 LWNvbW1vbi1wcmVmaXgtY29tcGxldGlvbiAoKQorICAiVGVzdCBjb21wbGV0aW9uIGFwcGVu ZGluZyB0aGUgY29tbW9uIHByZWZpeC4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1m aW5kICJjbGFuZ2QiKSkKKyAgKGVnbG90LS13aXRoLWZpeHR1cmUKKyAgICAgIGAoKCJwcm9q ZWN0IiAuICgoImNvaXNvLmMiIC4KKyAgICAgICAgICAgICAgICAgICAgICAgLChjb25jYXQg ImludCBmb29fYmFyOyBpbnQgZm9vX2Jhcl9iYXo7IgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiaW50IG1haW4oKSB7Zm9vIikpKSkpCisgICAgKHdpdGgtY3VycmVudC1i dWZmZXIKKyAgICAgICAgKGVnbG90LS1maW5kLWZpbGUtbm9zZWxlY3QgInByb2plY3QvY29p c28uYyIpCisgICAgICAoZWdsb3QtLXdhaXQtZm9yLWNsYW5nZCkKKyAgICAgIChnb3RvLWNo YXIgKHBvaW50LW1heCkpCisgICAgICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgICAgIChz aG91bGQgKGxvb2tpbmctYmFjayAie2Zvb19iYXIiKSkpKSkKKwogKGVydC1kZWZ0ZXN0IGVn bG90LXRlc3Qtbm9uLXVuaXF1ZS1jb21wbGV0aW9ucyAoKQogICAiVGVzdCBjb21wbGV0aW9u IHJlc3VsdGluZyBpbiAnQ29tcGxldGUsIGJ1dCBub3QgdW5pcXVlJy4iCiAgIChza2lwLXVu bGVzcyAoZXhlY3V0YWJsZS1maW5kICJjbGFuZ2QiKSkKQEAgLTYxOSw2ICs2MzMsMzYgQEAg ZWdsb3QtdGVzdC1ub24tdW5pcXVlLWNvbXBsZXRpb25zCiAgICAgICAgIChmb3J3YXJkLWxp bmUgLTEpCiAgICAgICAgIChzaG91bGQgKGxvb2tpbmctYXQgIkNvbXBsZXRlLCBidXQgbm90 IHVuaXF1ZSIpKSkpKSkpCiAKKyhlcnQtZGVmdGVzdCBlZ2xvdC10ZXN0LXN0b3AtY29tcGxl dGlvbi1vbi1ub25wcmVmaXggKCkKKyAgIlRlc3QgY29tcGxldGlvbiBhbHNvIHJlc3VsdGlu ZyBpbiAnQ29tcGxldGUsIGJ1dCBub3QgdW5pcXVlJy4iCisgIChza2lwLXVubGVzcyAoZXhl Y3V0YWJsZS1maW5kICJjbGFuZ2QiKSkKKyAgKGVnbG90LS13aXRoLWZpeHR1cmUKKyAgICAg IGAoKCJwcm9qZWN0IiAuICgoImNvaXNvLmMiIC4KKyAgICAgICAgICAgICAgICAgICAgICAg LChjb25jYXQgImludCBmb290OyBpbnQgZm9vdGVyOyBpbnQgZm9fb2JhcjsiCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJpbnQgbWFpbigpIHtmb28iKSkpKSkKKyAgICAo d2l0aC1jdXJyZW50LWJ1ZmZlcgorICAgICAgICAoZWdsb3QtLWZpbmQtZmlsZS1ub3NlbGVj dCAicHJvamVjdC9jb2lzby5jIikKKyAgICAgIChlZ2xvdC0td2FpdC1mb3ItY2xhbmdkKQor ICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKKyAgICAgIChjb21wbGV0aW9uLWF0LXBv aW50KQorICAgICAgKHNob3VsZCAobG9va2luZy1iYWNrICJmb28iKSkpKSkKKworKGVydC1k ZWZ0ZXN0IGVnbG90LXRlc3QtdHJ5LWNvbXBsZXRpb24tbm9tYXRjaCAoKQorICAiVGVzdCBj b21wbGV0aW9uIHRhYmxlIHdpdGggbm9uLW1hdGNoaW5nIGlucHV0LCByZXR1cm5pbmcgbmls LiIKKyAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgImNsYW5nZCIpKQorICAoZWds b3QtLXdpdGgtZml4dHVyZQorICAgICAgYCgoInByb2plY3QiIC4gKCgiY29pc28uYyIgLgor ICAgICAgICAgICAgICAgICAgICAgICAsKGNvbmNhdCAiaW50IG1haW4oKSB7YWJjIikpKSkp CisgICAgKHdpdGgtY3VycmVudC1idWZmZXIKKyAgICAgICAgKGVnbG90LS1maW5kLWZpbGUt bm9zZWxlY3QgInByb2plY3QvY29pc28uYyIpCisgICAgICAoZWdsb3QtLXdhaXQtZm9yLWNs YW5nZCkKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkpCisgICAgICAoc2hvdWxkCisg ICAgICAgKG51bGwKKyAgICAgICAgKGNvbXBsZXRpb24tdHJ5LWNvbXBsZXRpb24KKyAgICAg ICAgICJhYmMiCisgICAgICAgICAobnRoIDIgKGVnbG90LWNvbXBsZXRpb24tYXQtcG9pbnQp KSBuaWwgMykpKSkpKQorCiAoZXJ0LWRlZnRlc3QgZWdsb3QtdGVzdC1iYXNpYy14cmVmICgp CiAgICJUZXN0IGJhc2ljIHhyZWYgZnVuY3Rpb25hbGl0eSBpbiBhIGNsYW5nZCBMU1AuIgog ICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCAiY2xhbmdkIikpCg== --------------T4UGtGQT4rcQv4uN3TEjMO4n--