Received: (at 79809) by debbugs.gnu.org; 25 Nov 2025 20:22:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 25 15:22:07 2025
Received: from localhost ([127.0.0.1]:41834 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vNzY5-00010D-FW
for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:22:07 -0500
Received: from forward502b.mail.yandex.net ([178.154.239.146]:48882)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <dgutov@HIDDEN>) id 1vMzAL-00087T-Ea
for 79809 <at> debbugs.gnu.org; Sat, 22 Nov 2025 20:45:27 -0500
Received: from mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net
(mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net
[IPv6:2a02:6b8:c0c:91a4:0:640:1bf3:0])
by forward502b.mail.yandex.net (Yandex) with ESMTPS id 6309B81103;
Sun, 23 Nov 2025 04:45:16 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net
(smtp/Yandex) with ESMTPSA id DjO4gQKLwKo0-Xtrujecj;
Sun, 23 Nov 2025 04:45:15 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
t=1763862315; bh=OxTrus9OzDT2DZB4VvU+qOlyzomuCykJFetqtzYGRJc=;
h=In-Reply-To:From:Message-ID:Cc:References:Date:Subject:To;
b=H5xDTCXlCAM8MFBkp88SMsqsmPTOFe4v+2YC1yQDHREWIUUL4ICmp5Yfef+WFBVI6
4GjeoFi7UKm+4sRwxoS7Yiv7eiNmwi1+SsaF3Bw5J8ifdznc+i6iKEtZ9f483mMUnn
lhpyWKi5XZrzifg+gngyCV44bgUtnVt3iJwpetBk=
Authentication-Results: mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net;
dkim=pass header.i=@yandex.ru
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
by mailfauth.phl.internal (Postfix) with ESMTP id 62EE5F4007C;
Sat, 22 Nov 2025 20:45:13 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
by phl-compute-03.internal (MEProxy); Sat, 22 Nov 2025 20:45:13 -0500
X-ME-Sender: <xms:KWciafQ4a6UEy5JuqoIq85P_j2TEl73LQt9MMva1WncIqCzlFkoYJw>
<xme:KWciaYNvlI4yUbKNkyTfGSw_HJfXc1oQrjVpJsz3C0sMaVDo2nx21LmnEDHBFc9cC
5Ou6HmXmT9ZQaK6kdw6nlencIzaKJQYu_C8OiX78Vpf1KogJzl6gheb>
X-ME-Received: <xmr:KWciaSM1paye9mo7Zgzfyfb2iMmP6V2PpxDFE7xBe5CY4_RhH_X4lOAlozNRRzX9sRD8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvfeeggeegucetufdoteggodetrf
dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
gurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeenucfhrhhomhepffhmihhtrhih
ucfiuhhtohhvuceoughguhhtohhvseihrghnuggvgidrrhhuqeenucggtffrrghtthgvrh
hnpeduleegvdejvdefgeffudelueeljeefvddtiedtffeiudeltdeuleetgeejledtgeen
ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegughhuth
hovhdomhgvshhmthhprghuthhhphgvrhhsohhnrghlihhthidqudeffeefleelheehvddq
vdelgeejjeejjeeiqdgughhuthhovheppeihrghnuggvgidrrhhusehfrghsthhmrghilh
drtghomhdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
ohepjhhorghothgrvhhorhgrsehgmhgrihhlrdgtohhmpdhrtghpthhtohepjeelkedtle
esuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopegvmhgrtghssegrkhhurhht
hhdruggv
X-ME-Proxy: <xmx:KWciaYuVIy99G2FaXxTOgWR9ikKcvAKKiR-CLN1lNsdbfc1ZHF-ntQ>
<xmx:KWciacUJB9tq9vbHaANUP43AGNOJLlGaXT29X2siN9S0_dYYluUO-g>
<xmx:KWciaQuo83Y6q7CJNEGL00MWm6wNffyhec0p8yrX_4teTz_c-vpDsw>
<xmx:KWciaYV4r3BRWphQAWSmPr28SEGPneEP666cO7TavuFacEusH-WaIA>
<xmx:KWciaTmPyHRbKCOtM7Kv-y6m3vfg2X8AqrzxMVOWKEuspys-ZOAS93uf>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
22 Nov 2025 20:45:11 -0500 (EST)
Content-Type: multipart/mixed; boundary="------------RSeqIi8S1A50gC1uYvp909hf"
Message-ID: <054c1d97-ca92-45b7-9a58-25d5fb808dca@HIDDEN>
Date: Sun, 23 Nov 2025 03:45:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#79809: Eglot does not yet parse LSP protocol parts
FileSystemWatcher->GlobPattern->RelativePattern
To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
References: <878qg7kmpw.fsf@HIDDEN>
<CALDnm53i_=_XNZmb=5Rp341wfSAQyk=1pgQAoH3CeEwbnwb2yw@HIDDEN>
<b985a791-7cb0-405f-961f-1ccaed0821f8@HIDDEN>
<CALDnm5060Kim3grTiPxCpS5zPr-fYp_8TCJh9R5FG9SOWE=L4Q@HIDDEN>
<4f25e76e-1503-4781-ba49-d3c9c45f0010@HIDDEN>
<CALDnm53DH3h2FY2TH3sbWscqkNDxAQKFvZ-SOoq6W9Fenu3-Ug@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CALDnm53DH3h2FY2TH3sbWscqkNDxAQKFvZ-SOoq6W9Fenu3-Ug@HIDDEN>
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79809
Cc: 79809 <at> debbugs.gnu.org, Andreas Kurth <emacs@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 (-)
This is a multi-part message in MIME format.
--------------RSeqIi8S1A50gC1uYvp909hf
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Hi!
On 18/11/2025 18:31, João Távora wrote:
> So I think just listing the files at a deep enough level vs listing them
> at the top and filtering then by the same subdir in elisp. It's probably
> enough.
>
> Or just post the patch here, and I can checkout a Linux and try this
> myself.
I'm attaching an updated 'project-files-filtered' patch, which might
actually be overkill for this use. It allows passing a list of file
globs as the FILES argument and DIR to narrow down the listing (but
still delegating to 'git ls-files' for it). Looking at the scenario, I
guess you won't use the FILES argument because matching files could be
created after the watches were set up, so only DIR would be helpful in
that case, to be passed the value returned by
(file-name-as-directory
(eglot-uri-to-path base-uri))
If it helps (and the FILES argument does not), we could install a
smaller change later. But LMK how it works for you.
Note that this diff doesn't include the needed eglot.el change. But the
general idea would be to issue a separate call to
'project-files-filtered' with an appropriate argument DIR.
In this user scenario it might not save us any processing time, though,
because only one of the globs is anchored
({"baseUri":"file:/home/harald/work/","pattern":"eglot-watchers-jdts-fail"}),
and the rest ("**/*.java", "**/.project", ...) are not. Even if we group
all anchored globs by the value of baseUri, at long as there are
non-anchored ones, a full project scan would still be required, IIUC.
--------------RSeqIi8S1A50gC1uYvp909hf
Content-Type: text/x-patch; charset=UTF-8; name="project-files-filtered.diff"
Content-Disposition: attachment; filename="project-files-filtered.diff"
Content-Transfer-Encoding: base64
ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL2V0YWdzLXJlZ2VuLmVsIGIvbGlzcC9wcm9n
bW9kZXMvZXRhZ3MtcmVnZW4uZWwKaW5kZXggZWQxOGViNWE1NjQuLmU1OTFlODY2ZjhjIDEw
MDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9ldGFncy1yZWdlbi5lbAorKysgYi9saXNwL3By
b2dtb2Rlcy9ldGFncy1yZWdlbi5lbApAQCAtNDksNyArNDksNyBAQCBldGFncy1yZWdlbi0t
dGFncy1yb290CiAoZGVmdmFyIGV0YWdzLXJlZ2VuLS1uZXctZmlsZSBuaWwpCiAKIChkZWNs
YXJlLWZ1bmN0aW9uIHByb2plY3Qtcm9vdCAicHJvamVjdCIpCi0oZGVjbGFyZS1mdW5jdGlv
biBwcm9qZWN0LWZpbGVzICJwcm9qZWN0IikKKyhkZWNsYXJlLWZ1bmN0aW9uIHByb2plY3Qt
ZmlsZXMtZmlsdGVyZWQgInByb2plY3QiKQogKGRlY2xhcmUtZnVuY3Rpb24gZGlyZWQtZ2xv
Yi1yZWdleHAgImRpcmVkIikKIAogKGRlZmN1c3RvbSBldGFncy1yZWdlbi1wcm9ncmFtIGV0
YWdzLXByb2dyYW0tbmFtZQpAQCAtMjM2LDI0ICsyMzYsMTQgQEAgZXRhZ3MtcmVnZW4tLW1h
eWJlLWdlbmVyYXRlCiAoZGVmdW4gZXRhZ3MtcmVnZW4tLWFsbC1maWxlcyAocHJvaikKICAg
KGxldCogKChyb290IChwcm9qZWN0LXJvb3QgcHJvaikpCiAgICAgICAgICAoZGVmYXVsdC1k
aXJlY3Rvcnkgcm9vdCkKLSAgICAgICAgIDs7IFRPRE86IE1ha2UgdGhlIHNjYW5uaW5nIG1v
cmUgZWZmaWNpZW50LCBlLmcuIG1vdmUgdGhlCi0gICAgICAgICA7OyBmaWx0ZXJpbmcgYnkg
Z2xvYiB0byBwcm9qZWN0IChwcm9qZWN0LWZpbGVzLWZpbHRlcmVkLi4uKS4KLSAgICAgICAg
IChmaWxlcyAocHJvamVjdC1maWxlcyBwcm9qKSkKLSAgICAgICAgIChtYXRjaC1yZSAoY29u
Y2F0Ci0gICAgICAgICAgICAgICAgICAgICJcXC4iCi0gICAgICAgICAgICAgICAgICAgIChy
ZWdleHAtb3B0IGV0YWdzLXJlZ2VuLWZpbGUtZXh0ZW5zaW9ucykKLSAgICAgICAgICAgICAg
ICAgICAgIlxcJyIpKQotICAgICAgICAgKGlyLXN0YXJ0ICgxLSAobGVuZ3RoIHJvb3QpKSkK
LSAgICAgICAgIChpZ25vcmVzLXJlZ2V4cHMKLSAgICAgICAgICAobWFwY2FyICMnZXRhZ3Mt
cmVnZW4tLWlnbm9yZS1yZWdleHAKLSAgICAgICAgICAgICAgICAgIGV0YWdzLXJlZ2VuLWln
bm9yZXMpKQotICAgICAgICAgKGNhc2UtZm9sZC1zZWFyY2ggdCkpCi0gICAgKGNsLWRlbGV0
ZS1pZgotICAgICAobGFtYmRhIChmKSAob3IgKG5vdCAoc3RyaW5nLW1hdGNoLXAgbWF0Y2gt
cmUgZikpCi0gICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wICIvXFwuIyIgZikgO0Jh
Y2t1cCBmaWxlcy4KLSAgICAgICAgICAgICAgICAoY2wtc29tZSAobGFtYmRhIChpZ25vcmUp
IChzdHJpbmctbWF0Y2gtcCBpZ25vcmUgZiBpci1zdGFydCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgaWdub3Jlcy1yZWdleHBzKSkpCi0gICAgIGZpbGVzKSkpCisgICAgICAgICAo
ZmlsZXMgKHByb2plY3QtZmlsZXMtZmlsdGVyZWQKKyAgICAgICAgICAgICAgICAgcHJvagor
ICAgICAgICAgICAgICAgICA7OyBGSVhNRTogRXh0ZW5zaW9ucyBpbiB1cHBlciBjYXNlLgor
ICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGV4dCkgKGZvcm1hdCAiKi4lcyIg
ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBldGFncy1yZWdlbi1maWxlLWV4dGVu
c2lvbnMpCisgICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICAnKCIuIyoi
KSkpKQorICAgIGZpbGVzKSkKIAogKGRlZnVuIGV0YWdzLXJlZ2VuLS1pZ25vcmUtcmVnZXhw
IChpZ25vcmUpCiAgIChyZXF1aXJlICdkaXJlZCkKQEAgLTMwMyw3ICsyOTMsNyBAQCBldGFn
cy1yZWdlbi0tcHJvY2Vzcy1maWxlLXJlZ2lvbgogKGRlZnVuIGV0YWdzLXJlZ2VuLS10YWdz
LWdlbmVyYXRlIChwcm9qKQogICAobGV0KiAoKHJvb3QgKHByb2plY3Qtcm9vdCBwcm9qKSkK
ICAgICAgICAgIChkZWZhdWx0LWRpcmVjdG9yeSByb290KQotICAgICAgICAgKGZpbGVzIChl
dGFncy1yZWdlbi0tYWxsLWZpbGVzIHByb2opKQorICAgICAgICAgKGZpbGVzIChiZW5jaG1h
cmstcHJvZ24gKGV0YWdzLXJlZ2VuLS1hbGwtZmlsZXMgcHJvaikpKQogICAgICAgICAgKHRh
Z3MtZmlsZSAoZXRhZ3MtcmVnZW4tLWNob29zZS10YWdzLWZpbGUgcHJvaikpCiAgICAgICAg
ICAoZnVuIChpZiAoZXF1YWwgKGZpbGUtbmFtZS1kaXJlY3RvcnkgdGFncy1maWxlKQogICAg
ICAgICAgICAgICAgICAgICAgICAgIChleHBhbmQtZmlsZS1uYW1lIHJvb3QpKQpkaWZmIC0t
Z2l0IGEvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbCBiL2xpc3AvcHJvZ21vZGVzL3Byb2pl
Y3QuZWwKaW5kZXggMWM1MTBmMzRiNDAuLjgzZTgzYzFhN2Y2IDEwMDY0NAotLS0gYS9saXNw
L3Byb2dtb2Rlcy9wcm9qZWN0LmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3Byb2plY3QuZWwK
QEAgLTM3NiwxMSArMzc2LDMzIEBAIHByb2plY3QtZmlsZXMKIHRvIGZpbmQgdGhlIGxpc3Qg
b2YgaWdub3JlcyBmb3IgZWFjaCBkaXJlY3RvcnkuIgogICAobWFwY2FuCiAgICAobGFtYmRh
IChkaXIpCi0gICAgIChwcm9qZWN0LS1maWxlcy1pbi1kaXJlY3RvcnkgZGlyCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QtLWRpci1pZ25vcmVzIHByb2pl
Y3QgZGlyKSkpCisgICAgIChwcm9qZWN0LWZpbGVzLWZpbHRlcmVkIHByb2plY3QgbmlsIGRp
cikpCiAgICAob3IgZGlycwogICAgICAgIChsaXN0IChwcm9qZWN0LXJvb3QgcHJvamVjdCkp
KSkpCiAKKzs7IFhYWDogT3IgSU5DTFVERS1GSUxFUyBhbmQgRVhDTFVERS1GSUxFUz8KKzs7
IFRPRE86IEFkZCB0ZXN0cy4KKyhjbC1kZWZnZW5lcmljIHByb2plY3QtZmlsZXMtZmlsdGVy
ZWQgKCBwcm9qZWN0ICZvcHRpb25hbCBmaWxlcyBkaXIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBleHRyYS1pZ25vcmVzIG5vLXByb2plY3QtaWdub3JlcykK
KyAgIlJldHVybiBhIGxpc3Qgb2YgZmlsZXMgRklMRVMgaW4gZGlyZWN0b3J5IERJUiBpbiBQ
Uk9KRUNULgorRklMRVMgbXVzdCBhIGxpc3Qgb2YgZmlsZSBuYW1lIGdsb2IgcGF0dGVybnMs
IG5pbCBtZWFuaW5nIHRvIGxpc3QKK2FueSBmaWxlcy4gIERJUiBtdXN0IGJlIGFuIGFic29s
dXRlIG5hbWUgb3IgbmlsLCBpbiB3aGljaCBjYXNlIGl0CitkZWZhdWx0cyB0byB0aGUgcHJv
amVjdCByb290LiAgRVhUUkEtSUdOT1JFUyBhcmUgaWdub3JlIGVudHJpZXMKK3RvIHVzZSB0
b2dldGhlciB3aXRoIHRoZSBsaXN0IG9mIGlnbm9yZXMgYWxyZWFkeSBjb25maWd1cmVkIGZv
cgordGhlIHByb2plY3QuICBCdXQgaWYgTk8tUFJPSkVDVC1JR05PUkVTIGlzIG5vbi1uaWws
IG9ubHkKK0VYVFJBLUlHTk9SRVMgc2hvdWxkIGJlIGFwcGxpZWQuCisKK1RoZSBkZWZhdWx0
IGltcGxlbWVudGF0aW9uIHVzZXMgYGZpbmQtcHJvZ3JhbScuIgorICAodW5sZXNzIGRpciAo
c2V0cSBkaXIgKHByb2plY3Qtcm9vdCBwcm9qZWN0KSkpCisgIChwcm9qZWN0LS1maWxlcy1p
bi1kaXJlY3RvcnkKKyAgIGRpcgorICAgKGFwcGVuZAorICAgICh1bmxlc3Mgbm8tcHJvamVj
dC1pZ25vcmVzCisgICAgICAocHJvamVjdC0tZGlyLWlnbm9yZXMgcHJvamVjdCBkaXIpKQor
ICAgIGV4dHJhLWlnbm9yZXMpCisgICAoYW5kIGZpbGVzCisgICAgICAgIChtYXBjb25jYXQg
IydpZGVudGl0eSBmaWxlcyAiICIpKSkpCisKIChkZWZ1biBwcm9qZWN0LS1maWxlcy1pbi1k
aXJlY3RvcnkgKGRpciBpZ25vcmVzICZvcHRpb25hbCBmaWxlcykKICAgKHJlcXVpcmUgJ2Zp
bmQtZGlyZWQpCiAgIChyZXF1aXJlICd4cmVmKQpAQCAtNjcwLDc0ICs2OTIsODMgQEAgcHJv
amVjdC1leHRlcm5hbC1yb290cwogICAgICAoZnVuY2FsbCBwcm9qZWN0LXZjLWV4dGVybmFs
LXJvb3RzLWZ1bmN0aW9uKSkpCiAgICAobGlzdCAocHJvamVjdC1yb290IHByb2plY3QpKSkp
CiAKLShjbC1kZWZtZXRob2QgcHJvamVjdC1maWxlcyAoKHByb2plY3QgKGhlYWQgdmMpKSAm
b3B0aW9uYWwgZGlycykKLSAgKG1hcGNhbgotICAgKGxhbWJkYSAoZGlyKQotICAgICAobGV0
ICgoaWdub3JlcyAocHJvamVjdC0tdmFsdWUtaW4tZGlyICdwcm9qZWN0LXZjLWlnbm9yZXMg
KG50aCAyIHByb2plY3QpKSkKLSAgICAgICAgICAgKGJhY2tlbmQgKGNhZHIgcHJvamVjdCkp
KQotICAgICAgICh3aGVuIGJhY2tlbmQKLSAgICAgICAgIChyZXF1aXJlIChpbnRlcm4gKGNv
bmNhdCAidmMtIiAoZG93bmNhc2UgKHN5bWJvbC1uYW1lIGJhY2tlbmQpKSkpKSkKLSAgICAg
ICAoaWYgKGFuZCAoZmlsZS1lcXVhbC1wIGRpciAobnRoIDIgcHJvamVjdCkpCi0gICAgICAg
ICAgICAgICAgKGNvbmQKLSAgICAgICAgICAgICAgICAgKChlcSBiYWNrZW5kICdIZykpCi0g
ICAgICAgICAgICAgICAgICgoYW5kIChlcSBiYWNrZW5kICdHaXQpCi0gICAgICAgICAgICAg
ICAgICAgICAgIChvcgotICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCBpZ25vcmVzKQot
ICAgICAgICAgICAgICAgICAgICAgICAgKHZlcnNpb248PSAiMS45IiAodmMtZ2l0LS1wcm9n
cmFtLXZlcnNpb24pKSkpKSkpCi0gICAgICAgICAgIChwcm9qZWN0LS12Yy1saXN0LWZpbGVz
IGRpciBiYWNrZW5kIGlnbm9yZXMpCi0gICAgICAgICAocHJvamVjdC0tZmlsZXMtaW4tZGly
ZWN0b3J5Ci0gICAgICAgICAgZGlyCi0gICAgICAgICAgKHByb2plY3QtLWRpci1pZ25vcmVz
IHByb2plY3QgZGlyKSkpKSkKLSAgIChvciBkaXJzCi0gICAgICAgKGxpc3QgKHByb2plY3Qt
cm9vdCBwcm9qZWN0KSkpKSkKKzs7IFRPRE86IEFkZCB0ZXN0cy4KKyhjbC1kZWZtZXRob2Qg
cHJvamVjdC1maWxlcy1maWx0ZXJlZCAoIChwcm9qZWN0IChoZWFkIHZjKSkgJm9wdGlvbmFs
IGZpbGVzIGRpcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0
cmEtaWdub3JlcyBuby1wcm9qZWN0LWlnbm9yZXMpCisgICh1bmxlc3MgZGlyIChzZXRxIGRp
ciAocHJvamVjdC1yb290IHByb2plY3QpKSkKKyAgKGxldCAoKGlnbm9yZXMgKGFwcGVuZCAo
dW5sZXNzIG5vLXByb2plY3QtaWdub3JlcworICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHByb2plY3QtLXZhbHVlLWluLWRpciAncHJvamVjdC12Yy1pZ25vcmVzCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGggMiBwcm9qZWN0
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEtaWdub3JlcykpCisgICAgICAg
IChiYWNrZW5kIChjYWRyIHByb2plY3QpKSkKKyAgICAod2hlbiBiYWNrZW5kCisgICAgICAo
cmVxdWlyZSAoaW50ZXJuIChjb25jYXQgInZjLSIgKGRvd25jYXNlIChzeW1ib2wtbmFtZSBi
YWNrZW5kKSkpKSkpCisgICAgKGlmIChjb25kCisgICAgICAgICAoKGVxIGJhY2tlbmQgJ0hn
KSkKKyAgICAgICAgICgoYW5kIChlcSBiYWNrZW5kICdHaXQpCisgICAgICAgICAgICAgICAo
b3IKKyAgICAgICAgICAgICAgICAobm90IGlnbm9yZXMpCisgICAgICAgICAgICAgICAgKHZl
cnNpb248PSAiMS45IiAodmMtZ2l0LS1wcm9ncmFtLXZlcnNpb24pKSkpKSkKKyAgICAgICAg
KHByb2plY3QtLXZjLWxpc3QtZmlsZXMgZGlyIGJhY2tlbmQgaWdub3JlcyBmaWxlcyBuby1w
cm9qZWN0LWlnbm9yZXMpCisgICAgICAocHJvamVjdC0tZmlsZXMtaW4tZGlyZWN0b3J5Cisg
ICAgICAgZGlyCisgICAgICAgKHByb2plY3QtLWRpci1pZ25vcmVzIHByb2plY3QgZGlyKQor
ICAgICAgIChhbmQgZmlsZXMKKyAgICAgICAgICAgIChtYXBjb25jYXQgIydpZGVudGl0eSBm
aWxlcyAiICIpKSkpKSkKIAogKGRlY2xhcmUtZnVuY3Rpb24gdmMtZ2l0LS1wcm9ncmFtLXZl
cnNpb24gInZjLWdpdCIpCiAoZGVjbGFyZS1mdW5jdGlvbiB2Yy1naXQtY29tbWFuZCAidmMt
Z2l0IikKIChkZWNsYXJlLWZ1bmN0aW9uIHZjLWhnLWNvbW1hbmQgInZjLWhnIikKIAotKGRl
ZnVuIHByb2plY3QtLXZjLWxpc3QtZmlsZXMgKGRpciBiYWNrZW5kIGV4dHJhLWlnbm9yZXMp
CisoZGVmdW4gcHJvamVjdC0tdmMtZ2l0LWlnbm9yZS10by1zcGVjIChpKQorICAoZm9ybWF0
CisgICAiOihleGNsdWRlLGdsb2IsdG9wKSVzIgorICAgKGlmIChzdHJpbmctbWF0Y2ggIlxc
KlxcKiIgaSkKKyAgICAgICA7OyBMb29rcyBsaWtlIHBhdGhzcGVjIGdsb2IKKyAgICAgICA7
OyBmb3JtYXQgYWxyZWFkeS4KKyAgICAgICBpCisgICAgIChpZiAoc3RyaW5nLW1hdGNoICJc
XC4vIiBpKQorICAgICAgICAgOzsgLi9hYmMgLT4gYWJjCisgICAgICAgICAoc2V0cSBpIChz
dWJzdHJpbmcgaSAyKSkKKyAgICAgICA7OyBhYmMgLT4gKiovYWJjCisgICAgICAgKHNldHEg
aSAoY29uY2F0ICIqKi8iIGkpKQorICAgICAgIDs7IEZJWE1FOiAnKiovYWJjJyBzaG91bGQg
YWxzbworICAgICAgIDs7IG1hdGNoIGEgZGlyZWN0b3J5IHdpdGggdGhhdAorICAgICAgIDs7
IG5hbWUsIGJ1dCBkb2Vzbid0IChnaXQgMi4yNS4xKS4KKyAgICAgICA7OyBNYXliZSB3ZSBz
aG91bGQgcmVwbGFjZQorICAgICAgIDs7IHN1Y2ggZW50cmllcyB3aXRoIHR3by4KKyAgICAg
ICAoaWYgKHN0cmluZy1tYXRjaCAiL1xcJyIgaSkKKyAgICAgICAgICAgOzsgYWJjLyAtPiBh
YmMvKioKKyAgICAgICAgICAgKHNldHEgaSAoY29uY2F0IGkgIioqIikpKSkKKyAgICAgaSkp
KQorCisoZGVmdW4gcHJvamVjdC0tdmMtbGlzdC1maWxlcyAoZGlyIGJhY2tlbmQgZXh0cmEt
aWdub3JlcyAmb3B0aW9uYWwgbmFtZXMgbm8tZ2l0aWdub3JlKQogICAoZGVmdmFyIHZjLWdp
dC11c2UtbGl0ZXJhbC1wYXRoc3BlY3MpCiAgIChwY2FzZSBiYWNrZW5kCiAgICAgKGBHaXQK
ICAgICAgKGxldCogKChkZWZhdWx0LWRpcmVjdG9yeSAoZXhwYW5kLWZpbGUtbmFtZSAoZmls
ZS1uYW1lLWFzLWRpcmVjdG9yeSBkaXIpKSkKLSAgICAgICAgICAgIChhcmdzICcoIi16IiAi
LWMiICItLWV4Y2x1ZGUtc3RhbmRhcmQiKSkKKyAgICAgICAgICAgIChhcmdzICcoIi16Iikp
CiAgICAgICAgICAgICAodmMtZ2l0LXVzZS1saXRlcmFsLXBhdGhzcGVjcyBuaWwpCiAgICAg
ICAgICAgICAoaW5jbHVkZS11bnRyYWNrZWQgKHByb2plY3QtLXZhbHVlLWluLWRpcgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdC12Yy1pbmNsdWRlLXVudHJh
Y2tlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXIpKQogICAgICAgICAg
ICAgKHN1Ym1vZHVsZXMgKHByb2plY3QtLWdpdC1zdWJtb2R1bGVzKSkKICAgICAgICAgICAg
IGZpbGVzKQorICAgICAgIDs7IEluY2x1ZGUgdW5yZWdpc3RlcmVkLgogICAgICAgIChzZXRx
IGFyZ3MgKGFwcGVuZCBhcmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICcoIi1jIikK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoPD0gMzEgZW1hY3MtbWFqb3ItdmVy
c2lvbikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVyc2lvbjw9ICIyLjM1
IiAodmMtZ2l0LS1wcm9ncmFtLXZlcnNpb24pKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcoIi0tc3BhcnNlIikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQg
aW5jbHVkZS11bnRyYWNrZWQgJygiLW8iKSkpKQotICAgICAgICh3aGVuIGV4dHJhLWlnbm9y
ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCBpbmNsdWRlLXVudHJhY2tlZCAn
KCItbyIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIG5vLWdpdGlnbm9y
ZSAnKCItLWV4Y2x1ZGUtc3RhbmRhcmQiKSkpKQorICAgICAgICh3aGVuIChvciBuYW1lcyBl
eHRyYS1pZ25vcmVzKQogICAgICAgICAgKHNldHEgYXJncyAoYXBwZW5kIGFyZ3MKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAiLS0iCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKG1hcGNhcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobGFtYmRhIChpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChmb3JtYXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjooZXhj
bHVkZSxnbG9iLHRvcCklcyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGlmIChzdHJpbmctbWF0Y2ggIlxcKlxcKiIgaSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDs7IExvb2tzIGxpa2UgcGF0aHNwZWMgZ2xvYgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgZm9ybWF0IGFscmVh
ZHkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gg
IlxcLi8iIGkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDs7IC4vYWJjIC0+IGFiYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2V0cSBpIChzdWJzdHJpbmcgaSAyKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDs7IGFiYyAtPiAqKi9hYmMKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGkgKGNvbmNhdCAiKiovIiBpKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEZJWE1FOiAn
KiovYWJjJyBzaG91bGQgYWxzbwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOzsgbWF0Y2ggYSBkaXJlY3Rvcnkgd2l0aCB0aGF0Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBuYW1lLCBidXQgZG9lc24ndCAoZ2l0
IDIuMjUuMSkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7
OyBNYXliZSB3ZSBzaG91bGQgcmVwbGFjZQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOzsgc3VjaCBlbnRyaWVzIHdpdGggdHdvLgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2ggIi9cXCci
IGkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg
YWJjLyAtPiBhYmMvKioKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2V0cSBpIChjb25jYXQgaSAiKioiKSkpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXh0cmEtaWdub3JlcykpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJygiLS0iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKG1hcGNhcgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjJ3Byb2plY3QtLXZjLWdpdC1pZ25vcmUtdG8tc3BlYworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHRyYS1pZ25vcmVzKSkpKQogICAgICAgIChzZXRxIGZpbGVzCiAg
ICAgICAgICAgICAgKGRlbHEgbmlsCiAgICAgICAgICAgICAgICAgICAgKG1hcGNhcgpAQCAt
NzYzLDcgKzc5NCw4IEBAIHByb2plY3QtLXZjLWxpc3QtZmlsZXMKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAocHJvamVjdC0tdmMtbGlzdC1maWxlcwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoY29uY2F0IGRlZmF1bHQtZGlyZWN0b3J5IG1vZHVsZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmFja2VuZAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBleHRyYS1pZ25vcmVzKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4dHJhLWlnbm9yZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXMpKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHByb2plY3QtZmlsZXMtcmVsYXRpdmUtbmFt
ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoZmlsZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IChmaWxlLW5h
bWUtYXMtZGlyZWN0b3J5IG1vZHVsZSkgZmlsZSkpCg==
--------------RSeqIi8S1A50gC1uYvp909hf--
bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.Received: (at 79809) by debbugs.gnu.org; 18 Nov 2025 16:32:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 18 11:32:08 2025 Received: from localhost ([127.0.0.1]:58749 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vLOch-0001ON-Py for submit <at> debbugs.gnu.org; Tue, 18 Nov 2025 11:32:08 -0500 Received: from mail-oo1-xc2a.google.com ([2607:f8b0:4864:20::c2a]:56788) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <joaotavora@HIDDEN>) id 1vLOce-0001Nb-In for 79809 <at> debbugs.gnu.org; Tue, 18 Nov 2025 11:32:05 -0500 Received: by mail-oo1-xc2a.google.com with SMTP id 006d021491bc7-6571763793bso2409832eaf.1 for <79809 <at> debbugs.gnu.org>; Tue, 18 Nov 2025 08:32:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763483518; x=1764088318; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ixYeMYeuMWIWRr4b9ZQc3ptngdNdryEvex+VtQHbY8Q=; b=kUlstN/QokoNSA88ovl/n5HRwmDYWW0kCL8syM0g2pYToLVt/18Ibns1nAWAp0wZBP 8njbsSm6Lr1PHzBYj5t14A61LTh9HPe2KVLtz8xbOod42/DGdoCbwNZbCATbLwxVBEC9 qy2goLScnecM85ZDPcQ0SvV6tZ0M/5LVEGF6Xqj/ju72ftmBYyncTrd8+z8FAFvCJnqQ b3zZbp1hOQG9vc/KLJFcfjQJh8lK4FRliOg+VywsdShl214E/tfkRzTDLoNoChlgiUN1 a3iVkoqkvwzUFwK+JKIAjP/nttzORHoc4TNP06Gc9gKquwnkMfOzNUTdhd/oG7OTDWTK m79g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763483518; x=1764088318; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ixYeMYeuMWIWRr4b9ZQc3ptngdNdryEvex+VtQHbY8Q=; b=Yrz+X2GR89Z9JD+PvHQ798sxXA9mqaskw/rbUXv1dJMDKbxTHuAFPzWRZQXVFNMNOD yk8BWXkLCNuvyIJZtbwVwFyjO79T03BJIOCl4sDsyCcWWZ/rrCB6sU5pkiJHJ59d2KlD Li1OHev4VeeRqmI4GKXuaqxYoL5RmRtjvnMnqfRktNYfX4V6btUUr7+fiGjp5jstPnPu m8nz7y/dq+rd7d0k5NRL5q4utsAPHRnBi6vO8Xve82VTKVzoJIgZJ/Ualr6tZstJ5J/n 9JwOMq0YwPBP4gQ6ya69XpAIllvyqwLAyvjrPKmDOJTqZ9V7hVkQbnKAq0/Pk+oL01qv SL/w== X-Gm-Message-State: AOJu0YxsWxJjiRuxXnuzkUfWzamqPQdu2aH7CgXHYCckdFzmTUvvo+QK Ec32xqx8k258Du5nY63Xwy74dlF7jArJYlKn5QcMQ0/MloZLrKrRAnmlVNsV6asLVdfxfnVq/ww cuEazcN2XwYIzwf6MWGEejjXK9/0YGK8= X-Gm-Gg: ASbGncsOlmWDdzlV3RT6qPDBjjypEshA0tYWOvb63PJ0BrC5z9e3qKW3bQqvmWw8sRF eEkRc8AogtNtmZt31uDkzsn0GSZxfYbL8E37+9vCUmnDZkv8sGr426zkOrrHte1LYhJD6H8KZQd cyJEXdWSR2/FFFX2PitPuMtRSv26D1Sr0Uwt23JYfIuevlzkEon40glfpJ2wQWbPFIcgX/Xprvr 52wzdE3SGHsm7jl8U7WerVJcq/G6StjO2eK5CGDzy6u4nBYeRfr8v+qjEQyYt8Sme6nI4ORgGoG 6/SeLA== X-Google-Smtp-Source: AGHT+IGfDeapgpTUG8n42MZEYhj/tb5Fj4s5zVbtLbsdi2gaArywIwrmv69x0h+XE0Kt9oxaPWRrTJvtxePX174E8V0= X-Received: by 2002:a05:6808:2203:b0:450:bc7e:85f4 with SMTP id 5614622812f47-450bc7e8bc8mr5562017b6e.5.1763483518353; Tue, 18 Nov 2025 08:31:58 -0800 (PST) MIME-Version: 1.0 References: <878qg7kmpw.fsf@HIDDEN> <CALDnm53i_=_XNZmb=5Rp341wfSAQyk=1pgQAoH3CeEwbnwb2yw@HIDDEN> <b985a791-7cb0-405f-961f-1ccaed0821f8@HIDDEN> <CALDnm5060Kim3grTiPxCpS5zPr-fYp_8TCJh9R5FG9SOWE=L4Q@HIDDEN> <4f25e76e-1503-4781-ba49-d3c9c45f0010@HIDDEN> In-Reply-To: <4f25e76e-1503-4781-ba49-d3c9c45f0010@HIDDEN> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> Date: Tue, 18 Nov 2025 16:31:47 +0000 X-Gm-Features: AWmQ_bl8GRhoHKL9yhGLsRKhskFf9JtpkNDRk9Da6bOYs0vpCi7Dqe_jKVfe68I Message-ID: <CALDnm53DH3h2FY2TH3sbWscqkNDxAQKFvZ-SOoq6W9Fenu3-Ug@HIDDEN> Subject: Re: bug#79809: Eglot does not yet parse LSP protocol parts FileSystemWatcher->GlobPattern->RelativePattern To: Dmitry Gutov <dgutov@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000adc7c90643e10029" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79809 Cc: 79809 <at> debbugs.gnu.org, Andreas Kurth <emacs@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 (-) --000000000000adc7c90643e10029 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Nov 18, 2025, 16:07 Dmitry Gutov <dgutov@HIDDEN> wrote: > On 18/11/2025 12:05, Jo=C3=A3o T=C3=A1vora wrote: > > Big projects aren't exactly on short supply :) can you try with, say, a > > checkout of the Linux kernel? > > I have a checkout of the kernel, sure. > > What kind of test would you like me to do? > > If you can wrap it in a form to evaluate, that would be great. > Preferably this form would include not just listing the files, but also > the corresponding additional work (also in Lisp) that you would do on the= m. > Ah, I understand what your point is, but that's hard to predict, or disentangle from Eglot's use. It's also possible that the string allocation costs (both immediate and the GC consequences) dominate here... Just speculating... So I think just listing the files at a deep enough level vs listing them at the top and filtering then by the same subdir in elisp. It's probably enough. Or just post the patch here, and I can checkout a Linux and try this myself. Jo=C3=A3o > --000000000000adc7c90643e10029 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"auto"><div dir=3D"auto"><br></div><div dir=3D"auto">On Tue, Nov= 18, 2025, 16:07 Dmitry Gutov <<a href=3D"mailto:dgutov@HIDDEN">dguto= v@HIDDEN</a>> wrote:</div><div class=3D"gmail_quote gmail_quote_conta= iner" dir=3D"auto"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p= x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 18/= 11/2025 12:05, Jo=C3=A3o T=C3=A1vora wrote:<br> > Big projects aren't exactly on short supply :) can you try with, s= ay, a <br> > checkout of the Linux kernel?<br> <br> I have a checkout of the kernel, sure.<br> <br> What kind of test would you like me to do?<br> <br> If you can wrap it in a form to evaluate, that would be great. <br> Preferably this form would include not just listing the files, but also <br= > the corresponding additional work (also in Lisp) that you would do on them.= <br></blockquote></div><div dir=3D"auto"><br></div><div dir=3D"auto">Ah, I = understand what your point is, but that's hard to predict, or disentang= le from Eglot's use.=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D= "auto">It's also possible that the string allocation costs (both immedi= ate and the GC consequences)=C2=A0 dominate here... Just speculating...</di= v><div dir=3D"auto"><br></div><div dir=3D"auto">So I think just listing the= files at a deep enough level vs listing them at the top and filtering then= by the same subdir in elisp. It's probably enough.=C2=A0</div><div dir= =3D"auto"><br></div><div dir=3D"auto">Or just post the patch here, and I ca= n checkout a Linux and try this myself.=C2=A0</div><div dir=3D"auto"><br></= div><div dir=3D"auto">Jo=C3=A3o</div><div class=3D"gmail_quote gmail_quote_= container" dir=3D"auto"><blockquote class=3D"gmail_quote" style=3D"margin:0= px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> </blockquote></div></div> --000000000000adc7c90643e10029--
bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.Received: (at 79809) by debbugs.gnu.org; 18 Nov 2025 16:07:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 18 11:07:26 2025 Received: from localhost ([127.0.0.1]:58627 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vLOEo-00085W-E4 for submit <at> debbugs.gnu.org; Tue, 18 Nov 2025 11:07:26 -0500 Received: from forward501a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d501]:47656) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <dgutov@HIDDEN>) id 1vLOEl-00084w-71 for 79809 <at> debbugs.gnu.org; Tue, 18 Nov 2025 11:07:24 -0500 Received: from mail-nwsmtp-smtp-production-main-95.vla.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-95.vla.yp-c.yandex.net [IPv6:2a02:6b8:c15:340d:0:640:ad51:0]) by forward501a.mail.yandex.net (Yandex) with ESMTPS id A7085820F2; Tue, 18 Nov 2025 19:07:13 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-95.vla.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id 97Ybjc5LBSw0-AQmNVvkz; Tue, 18 Nov 2025 19:07:13 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1763482033; bh=iFmkKQVE/7eC+MPwUPKJ/tmmxLitTVKKvkg6n9IA9Y8=; h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To; b=NJTeH9ogX88oLLNJqKwlvCWwR1kVQEgqL7DB7sf+z06b8nD6YbUiQq1VXSobaZFcE hKqiBVgcP+D1VnMIr9qcU7xrsNhYj8M5WHyR4a6ImUXeoJ/LSWKczRi0VZ9voLMiew +1S/xtibRJJQ+LyJwnX8XkIyxQ4crXnjYqfLa0aI= Authentication-Results: mail-nwsmtp-smtp-production-main-95.vla.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfauth.phl.internal (Postfix) with ESMTP id C6E9EF4006E; Tue, 18 Nov 2025 11:07:08 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-06.internal (MEProxy); Tue, 18 Nov 2025 11:07:08 -0500 X-ME-Sender: <xms:rJkcaZ3kYPh2Q3iXj-hh_6a6iVEEB_Towrt1v5vgrZvdKfmUXzItoA> <xme:rJkcaXhcNGfXF54OExu4zrbpwEvR1QLkGlyJHeshF4BcwJLjAspmIVWtHAzeoqpdQ B2ZXkUzvBIbsEOVu-qSd85Iz5UXN98PMUTVYDNqHGEZjzQ6S-YG> X-ME-Received: <xmr:rJkcaXQ3fX_t9dW6ScONYeJ1EBrnL26u_MA-P00Eok41mA63SRaffSQudTYK_lLI5w> X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvvddujeeiucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtvdejnecuhfhrohhmpeffmhhithhr hicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrthhtvg hrnhepheegleejudegueffudejtdeukeelheduiefhleevkeeifeeugefhtdevvdegueel necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepughguh htohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleehhedv qddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmhgrih hlrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphht thhopehjohgrohhtrghvohhrrgesghhmrghilhdrtghomhdprhgtphhtthhopeejleektd elseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohepvghmrggtshesrghkuhhr thhhrdguvg X-ME-Proxy: <xmx:rJkcaQhY3WcG28NaTUrd7QPfUSsPgaCQ-mAKTzpX-ysGujsPWAoJNw> <xmx:rJkcaf4mF5hZ7VXnwd3YxZocx0uok1RVWWESi6b8wXDJeKCE0fFarw> <xmx:rJkcaVBPnc-wEadRUoxxVKtk_gP_qnP5j6LwKaJ0ivfyc3AnYtVMtQ> <xmx:rJkcaeauz6ZX0yH4OuBhAZ0_FI7hs2QVYK7d7kpf5PmIsC-0iS3xEw> <xmx:rJkcaYbcxrDyPKj0y-LbEuBP8-aX6YtS9dpXfnrLQAKWttVoNdDMeFCA> Feedback-ID: ib1d9465d:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 18 Nov 2025 11:07:07 -0500 (EST) Message-ID: <4f25e76e-1503-4781-ba49-d3c9c45f0010@HIDDEN> Date: Tue, 18 Nov 2025 18:07:05 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#79809: Eglot does not yet parse LSP protocol parts FileSystemWatcher->GlobPattern->RelativePattern To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> References: <878qg7kmpw.fsf@HIDDEN> <CALDnm53i_=_XNZmb=5Rp341wfSAQyk=1pgQAoH3CeEwbnwb2yw@HIDDEN> <b985a791-7cb0-405f-961f-1ccaed0821f8@HIDDEN> <CALDnm5060Kim3grTiPxCpS5zPr-fYp_8TCJh9R5FG9SOWE=L4Q@HIDDEN> Content-Language: en-US From: Dmitry Gutov <dgutov@HIDDEN> In-Reply-To: <CALDnm5060Kim3grTiPxCpS5zPr-fYp_8TCJh9R5FG9SOWE=L4Q@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 79809 Cc: 79809 <at> debbugs.gnu.org, Andreas Kurth <emacs@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 18/11/2025 12:05, João Távora wrote: > Big projects aren't exactly on short supply :) can you try with, say, a > checkout of the Linux kernel? I have a checkout of the kernel, sure. What kind of test would you like me to do? If you can wrap it in a form to evaluate, that would be great. Preferably this form would include not just listing the files, but also the corresponding additional work (also in Lisp) that you would do on them.
bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.Received: (at 79809) by debbugs.gnu.org; 18 Nov 2025 10:05:44 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 18 05:05:44 2025 Received: from localhost ([127.0.0.1]:56354 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vLIal-00011e-RV for submit <at> debbugs.gnu.org; Tue, 18 Nov 2025 05:05:44 -0500 Received: from mail-ot1-x336.google.com ([2607:f8b0:4864:20::336]:51351) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <joaotavora@HIDDEN>) id 1vLIah-00011K-I3 for 79809 <at> debbugs.gnu.org; Tue, 18 Nov 2025 05:05:42 -0500 Received: by mail-ot1-x336.google.com with SMTP id 46e09a7af769-7c7634863a7so432438a34.2 for <79809 <at> debbugs.gnu.org>; Tue, 18 Nov 2025 02:05:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763460333; x=1764065133; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ejdnuPoewNOre2bGRiybDNpFYo649zsIMXUAmc4UruQ=; b=E/mt6jTneW+v7e3yB16s8zTk20BwuzEyYaBf9dbhrSEy3MuAJEBpBHGNR+4Xw2g/vH 3RP06Lt/6/3bblOczy44lThrHHjszg6feUx9139vwIWLzygfRDt23pIv34FWtKQBeKDO r56R8Jdt8utM/h3GPSMC+GGYwyPS1zOw1hPMzzg//z+cKWXQYdvZ69tPp/afZ5BKqQ19 iSc8EZ3PgBWIWKNQ8h1TfvSzx8eca7zMlLTWst9XPeKyNwWj6QLsgLqZO1wgj4lfY13m 16fOplfxRfaQ7kUUjB0U2tvy2gljw7XhnBY9Jydkh2EsZ/7vRw4tIiTqn8bXPpTSrSZ+ bxQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763460333; x=1764065133; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ejdnuPoewNOre2bGRiybDNpFYo649zsIMXUAmc4UruQ=; b=pSf6aYtyl3iWaZ/i2+pVHjmUAtkqyyd7wYkWM7sstS7xXv5X5gcrcpm261CO3Tmdni NRRCHRLRZbyR3Ts3UruPcGuOmR6XrJjUu+UNnNNu7PtCJomF+ifO4R2OzJONz6fv7HoE +XJkIj/uxTLkXeVXTLXe1c1klBMvj+mKTiYh8U0Oe75pUjSr+YvP1dDzj/pFvkarVA47 C58+QKaaQG8H5Y3zd3ptDYSBJ/OeWap/PSqF32CtND3URtwiJIjlmnEHYb/SfdvKnjsU wXmmbzFPmo2bohF6eYcVe4WxgOao7CqUtutI49WyKWDDtZP6zlz9GImFAy3KHvQmnOUt HpnA== X-Forwarded-Encrypted: i=1; AJvYcCWkF4/liMILK94HX14j8Vsm9F6ru0HZtJn3I5PoYFUhnt1afxJ0bd1I2bva9MlNYOVBA75YBA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yx3DS9RrMZfMJVZTOqzvHEvBlFQ88N245Upa7R4buryDP/rVt7U CsOcCGECpvziwnmQAOnBMjc8TpjY63fg86ZO58NclJkYQXdy4ZDQ6YNvC26wDVSeLa/zZH7iY03 OodVbdR4e0T75AOgEIunqXqUQzmIRK0o= X-Gm-Gg: ASbGncvw2/NUlCUDDG5+fd5GeXC1L9ObtMRlOjCwtZ+k31EE2/9AMr6/tzljecEF5np nEd6TIm/V8aVYbU3TF/2fbqRGjkDTHrGsI3Y55HtTt4CqWBi3za5buj5jhL/HFJ4oDhTXtKl4/u a+uO1SU7lyBPDciwIfoF4a9Tqo+fWBfJjY6coCs9E5OJKuT+XzgxneLh5jwcf5Le8Ybn3+n/QZe CiKERtDf1+LU0L5v3uTgqz3UplQgnQM4ABwZkhMJUDeL6I9qS/AuOogpq9LEqlrQLLNUAw= X-Google-Smtp-Source: AGHT+IFwSPztySQwg/Y2/KjGStnbo/FNM7Wk+PBieONhZyNkBMjpbQQmmJGMahlKBiPnTz128CoNctb3Gt5j1Me4uKw= X-Received: by 2002:a05:6808:1a29:b0:450:d1ba:1533 with SMTP id 5614622812f47-450d1ba320fmr2117307b6e.48.1763460333363; Tue, 18 Nov 2025 02:05:33 -0800 (PST) MIME-Version: 1.0 References: <878qg7kmpw.fsf@HIDDEN> <CALDnm53i_=_XNZmb=5Rp341wfSAQyk=1pgQAoH3CeEwbnwb2yw@HIDDEN> <b985a791-7cb0-405f-961f-1ccaed0821f8@HIDDEN> In-Reply-To: <b985a791-7cb0-405f-961f-1ccaed0821f8@HIDDEN> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> Date: Tue, 18 Nov 2025 10:05:21 +0000 X-Gm-Features: AWmQ_bk8AU8Pfeg3qLCUH1mgrOPc03v8o9Aes6lj9CgNDVnzES2CAt4u5ZQGjZo Message-ID: <CALDnm5060Kim3grTiPxCpS5zPr-fYp_8TCJh9R5FG9SOWE=L4Q@HIDDEN> Subject: Re: bug#79809: Eglot does not yet parse LSP protocol parts FileSystemWatcher->GlobPattern->RelativePattern To: Dmitry Gutov <dgutov@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000bf02c10643db9a1d" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79809 Cc: 79809 <at> debbugs.gnu.org, Andreas Kurth <emacs@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 (-) --000000000000bf02c10643db9a1d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable [sorry for the dup message, Dmitry] Big projects aren't exactly on short supply :) can you try with, say, a checkout of the Linux kernel? Jo=C3=A3o On Tue, Nov 18, 2025, 01:22 Dmitry Gutov <dgutov@HIDDEN> wrote: > Hi! > > On 16/11/2025 00:08, Jo=C3=A3o T=C3=A1vora wrote: > > Now, the file names are taken from a project-files call, and I don't kn= ow > > if it has some kind of built in "filter" option (where we would pass th= e > > aforementioned pathified based-uri). It could for example leverage som= e > > Git flag under the hood and which would probably also increase > performance. > > Let's ask Dmitry Gutov, project.el maintainer, what he thinks. > > I've had a feature like that in a branch for a while, but the few times > I've tested it, the subsequent processing in Lisp more or less dominated > the performance profile, so the migration to the new calling convention > didn't seem valuable enough. > > It should bring more benefit if the project is large enough, though. If > someone working on a big internal project would like to test the > resulting performance, I'm happy to resurrect the patches. > --000000000000bf02c10643db9a1d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"auto"><div dir=3D"auto">[sorry for the dup message, Dmitry]</di= v><div dir=3D"auto"><br></div><div>Big projects aren't exactly on short= supply :) can you try with, say, a checkout of the Linux kernel?</div><div= ><br></div><div data-smartmail=3D"gmail_signature">Jo=C3=A3o=C2=A0</div></d= iv><br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" cl= ass=3D"gmail_attr">On Tue, Nov 18, 2025, 01:22 Dmitry Gutov <<a href=3D"= mailto:dgutov@HIDDEN">dgutov@HIDDEN</a>> wrote:<br></div><blockquo= te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px = solid rgb(204,204,204);padding-left:1ex">Hi!<br> <br> On 16/11/2025 00:08, Jo=C3=A3o T=C3=A1vora wrote:<br> > Now, the file names are taken from a project-files call, and I don'= ;t know<br> > if it has some kind of built in "filter" option (where we wo= uld pass the<br> > aforementioned pathified based-uri).=C2=A0 It could for example levera= ge some<br> > Git flag under the hood and which would probably also increase perform= ance.<br> > Let's ask Dmitry Gutov, project.el=C2=A0maintainer, what he thinks= .<br> <br> I've had a feature like that in a branch for a while, but the few times= <br> I've tested it, the subsequent processing in Lisp more or less dominate= d <br> the performance profile, so the migration to the new calling convention <br= > didn't seem valuable enough.<br> <br> It should bring more benefit if the project is large enough, though. If <br= > someone working on a big internal project would like to test the <br> resulting performance, I'm happy to resurrect the patches.<br> </blockquote></div> --000000000000bf02c10643db9a1d--
bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.Received: (at 79809) by debbugs.gnu.org; 18 Nov 2025 01:22:56 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 17 20:22:56 2025 Received: from localhost ([127.0.0.1]:54743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vLAQp-0005Lg-Ki for submit <at> debbugs.gnu.org; Mon, 17 Nov 2025 20:22:55 -0500 Received: from forward501a.mail.yandex.net ([178.154.239.81]:60642) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <dgutov@HIDDEN>) id 1vLAQm-0005LC-4s for 79809 <at> debbugs.gnu.org; Mon, 17 Nov 2025 20:22:54 -0500 Received: from mail-nwsmtp-smtp-production-main-95.iva.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-95.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:7427:0:640:66aa:0]) by forward501a.mail.yandex.net (Yandex) with ESMTPS id A854582594; Tue, 18 Nov 2025 04:22:44 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-95.iva.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id fMJrP9nLLuQ0-6W2wKZCD; Tue, 18 Nov 2025 04:22:44 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1763428964; bh=sebOtfg8Y7uTfv3lNtSAXcS2srM8d15Z95HIFiXzEwY=; h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To; b=WlMpXj/tiPZT2H1YSqO5otDCpCE+BgTKj/tko1y89rY5+PbUOD4NQQUf1G4mF798Z 6RWmiyemMp/8UpTQxIwcaB0eUP/PMZD1qmcPC8ZnS+X8/lEYlyawB2jG7WAnaqeVa/ GlEIGv1YA2kZ2shVPa3UafzImpIbqLLlOaEjCB8M= Authentication-Results: mail-nwsmtp-smtp-production-main-95.iva.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfauth.phl.internal (Postfix) with ESMTP id 97849F40072; Mon, 17 Nov 2025 20:22:41 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Mon, 17 Nov 2025 20:22:41 -0500 X-ME-Sender: <xms:YcobaU3uFz-USk3fTXDZzzNSv96Cj7R3I0sKMJPLClYd120tbZFNkg> <xme:YcobaWicF4TG9yNv_cIVj4YJZvVJCLuF0epMrrXM1Fgr_UlGxgt_6FGVBa7Xj5A9Z 1KdWD5e3QWbWN9Si72D68uIsMNSwDXzETuKDM4WFoMsH5EtTYtR8R4> X-ME-Received: <xmr:YcobaaQQ8QgnECDJXXFvt-ypcI1Dh3fAnsqNKBxV0ccgH0E80Yp6sh-bgeHwlGSSWw> X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvvddttdduucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtvdejnecuhfhrohhmpeffmhhithhr hicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrthhtvg hrnhepheegleejudegueffudejtdeukeelheduiefhleevkeeifeeugefhtdevvdegueel necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepughguh htohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleehhedv qddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmhgrih hlrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphht thhopehjohgrohhtrghvohhrrgesghhmrghilhdrtghomhdprhgtphhtthhopegvmhgrtg hssegrkhhurhhthhdruggvpdhrtghpthhtohepjeelkedtleesuggvsggsuhhgshdrghhn uhdrohhrgh X-ME-Proxy: <xmx:YcobaXjxkduONZDtlZ-dRGFxQ38AgZKgR-4mFfr_VgTCHssiUd9VXg> <xmx:Ycobaa4bF7EHcLOtEWNaSGaZcGuo8nTJ_GDmDfuGwJkfm80MAZxQJQ> <xmx:YcobaUCerpwcMWZIKpkV6HAycPPn4j2igcEePIpsDmMvxnXj3kNseg> <xmx:YcobaRbrWWlw3McGrdwU2iGlk2zwVwoN6Tk2eRX2AOTwcjKozOTXeA> <xmx:Ycobafac9dMQL192TcMDA1TjTBF6pw1Eia5enzMknyta22Wrt7tVlG90> Feedback-ID: ib1d9465d:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 17 Nov 2025 20:22:40 -0500 (EST) Message-ID: <b985a791-7cb0-405f-961f-1ccaed0821f8@HIDDEN> Date: Tue, 18 Nov 2025 03:22:38 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#79809: Eglot does not yet parse LSP protocol parts FileSystemWatcher->GlobPattern->RelativePattern To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Andreas Kurth <emacs@HIDDEN> References: <878qg7kmpw.fsf@HIDDEN> <CALDnm53i_=_XNZmb=5Rp341wfSAQyk=1pgQAoH3CeEwbnwb2yw@HIDDEN> Content-Language: en-US From: Dmitry Gutov <dgutov@HIDDEN> In-Reply-To: <CALDnm53i_=_XNZmb=5Rp341wfSAQyk=1pgQAoH3CeEwbnwb2yw@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79809 Cc: 79809 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi! On 16/11/2025 00:08, João Távora wrote: > Now, the file names are taken from a project-files call, and I don't know > if it has some kind of built in "filter" option (where we would pass the > aforementioned pathified based-uri). It could for example leverage some > Git flag under the hood and which would probably also increase performance. > Let's ask Dmitry Gutov, project.el maintainer, what he thinks. I've had a feature like that in a branch for a while, but the few times I've tested it, the subsequent processing in Lisp more or less dominated the performance profile, so the migration to the new calling convention didn't seem valuable enough. It should bring more benefit if the project is large enough, though. If someone working on a big internal project would like to test the resulting performance, I'm happy to resurrect the patches.
bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.Received: (at 79809) by debbugs.gnu.org; 15 Nov 2025 22:07:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 15 17:07:16 2025 Received: from localhost ([127.0.0.1]:37946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vKOQO-0001PP-BU for submit <at> debbugs.gnu.org; Sat, 15 Nov 2025 17:07:16 -0500 Received: from mail-oi1-x22b.google.com ([2607:f8b0:4864:20::22b]:46263) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <joaotavora@HIDDEN>) id 1vKOQL-0001PJ-P4 for 79809 <at> debbugs.gnu.org; Sat, 15 Nov 2025 17:07:14 -0500 Received: by mail-oi1-x22b.google.com with SMTP id 5614622812f47-45074d0010aso769629b6e.0 for <79809 <at> debbugs.gnu.org>; Sat, 15 Nov 2025 14:07:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763244428; x=1763849228; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=wZXvnV97K+ndaaYCeEMwk1Ys9jHEo5rxOQQjvQt/8OA=; b=Mz+lSOIsleebwheiifCShIY35B1DlsD70m41twPhQ8kBi4sBbOYtEhSVm6tnrp/hGS J2X8174MWNqsbfW3SQhR8UD0gwi24d2zBZBblZO9VOzo90/c1QtEXLaYtvC3Cpr0aLEH oO/8ACmNuY5O7qDq2F0AWQAUxLgashZOENMHBUcTDDnDVhDkpNTULFRdoF9i3zd/YHE8 bCHgZG02fTnuJaxbvkJVNubLSPMA1MbRdGetR4aET2QGw9P2K+9/QICTmtKR3/1Gm+LX X/ALL0K1lRlNG0Upb+A2uuHmOIanw1NYMLMNVE06d7h6uVpAYCucYwCeUvPQUX71Rh1u FqSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763244428; x=1763849228; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=wZXvnV97K+ndaaYCeEMwk1Ys9jHEo5rxOQQjvQt/8OA=; b=lFadHP9hqwdADGw9SFo6+IxbNpckmo0BuXhJ8rzAXF6sLusq8p6Xxtf12X+JB4I4v9 kwMUUpbbFO519E1x4Vy/qLW034Z4jZ7jlv5Qc13bVfbQULFRk+LrTOxgNH+RNA72Wuji m2oSJ66FuSDmkGUsYGB/mZnFAUUWpQ0NvLrM2T0omr9mtsVjJPWzQB7+FJRQ3ZxvfTMX dk6DEKP7JXRWkzksOYVr606LHlCHIBFWodh7Fdm/EkjV40QB0rrqSN6bEb99b2Rif6gv CCXWbeVerQCbdmazLUNJsWgzyCjTNX62rpXoHeN9AouXw5wueBMA1e3iuIAlM1ild07I 6Z0A== X-Gm-Message-State: AOJu0YykEiw5mjq3/Aejc1L6nCwwwPH/TVUSQt1GvSof1nbieuCHpFBe D1mwG7vKFFXabQgPXXXa0/Lt7jrdGRwc/oPIeoD08wTVzLgGHm8ArhKi3QIdZ7DB/kiOMXcUJ1E BgY5fFyRRhRY7XBdrN8Ochg5EiF68f34= X-Gm-Gg: ASbGnct97/kbAvfWtyVg/JjekWj+NGi5pm0SFI5ZegEmrfjdBMRaYpCFV9YfHNLE0bK Qi0FQMjOWHhBO6pJBkaQ94oB9ygb4FXG8pLBLV3TcdJGYjh3pLMy4j6Y+kzfjuyKKOTjoeWoz8V /7IdHu76CdO3NM5JvXFPdeTAOOqmeOEU1VsiLsK1LR4a1VClpchhBd4xeyVWixNn7JlMoa+N1dd /1z+lmv4CHlg++00Bhzmz/vABoTRHGFdQFhZsoqOMddDM3sBRSc1IYWmOeFjsZuTmdzXcU= X-Google-Smtp-Source: AGHT+IHlkW04nlNUMyJ6PPLvSc3fx33YHsg8PGw3EautRJBzeXzOCkda+UeJdhBOmWYBWJjYvvreD1fdITQlDVHb2PY= X-Received: by 2002:a05:6808:5386:b0:44f:eb07:5042 with SMTP id 5614622812f47-450975470demr3294385b6e.44.1763244427946; Sat, 15 Nov 2025 14:07:07 -0800 (PST) MIME-Version: 1.0 References: <878qg7kmpw.fsf@HIDDEN> In-Reply-To: <878qg7kmpw.fsf@HIDDEN> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN> Date: Sat, 15 Nov 2025 22:08:30 +0000 X-Gm-Features: AWmQ_bmnGjW6-sCpI_mSxzA7c1MimHWuhQtw-IiggNIMPvlVQIO54Q46rjUR4rs Message-ID: <CALDnm53i_=_XNZmb=5Rp341wfSAQyk=1pgQAoH3CeEwbnwb2yw@HIDDEN> Subject: Re: bug#79809: Eglot does not yet parse LSP protocol parts FileSystemWatcher->GlobPattern->RelativePattern To: Andreas Kurth <emacs@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000c7af4b0643a955ae" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79809 Cc: 79809 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000c7af4b0643a955ae Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Nov 15, 2025 at 9:31=E2=80=AFPM Andreas Kurth <emacs@HIDDEN> wro= te: > This naive patch makes at least the error vanish; don=E2=80=99t know if i= t=E2=80=99s > enough. Hey! It's pretty good. Doesn't look that naive to me :-) I mean, it seems functionally correct, though I haven't tried it. But if I'm understanding it correctly, instead of concatenating the: (eglot-uri-to-path base-uri) onto the pattern and compiling _that_, which I think is your approach, I wonder if you could change it so that only the shorter pattern is compiled. And only later, when "feeding" file names to that pattern, we would select only files from within the `base-uri` subdirectory. Now, the file names are taken from a project-files call, and I don't know if it has some kind of built in "filter" option (where we would pass the aforementioned pathified based-uri). It could for example leverage some Git flag under the hood and which would probably also increase performance. Let's ask Dmitry Gutov, project.el maintainer, what he thinks. But if I had to guess I'd say it doesn't, and it isn't trivial to implement, so pre-filtering in Eglot based on string-prefix-p or something like that is the best we can do to service my approach of compiling a shorter pattern. And in that case, it's possible that my approach isn't much better than the one you have come up with. Jo=C3=A3o --000000000000c7af4b0643a955ae Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><br><div class=3D"gmail_quote gmail_quote_container"><div = dir=3D"ltr" class=3D"gmail_attr">On Sat, Nov 15, 2025 at 9:31=E2=80=AFPM An= dreas Kurth <<a href=3D"mailto:emacs@HIDDEN">emacs@HIDDEN</a>> = wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0= px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This naiv= e patch makes at least the error vanish; don=E2=80=99t know if it=E2=80=99s= <br> enough.</blockquote><div></div><div><br></div><div>Hey! It's pretty goo= d. Doesn't look that naive to me :-) I mean, it seems=C2=A0</div><div>f= unctionally correct, though I=C2=A0haven't tried it.</div><div><br></di= v><div>But if I'm understanding it correctly, instead of concatenating = the:</div><div><br></div><div>=C2=A0 =C2=A0(eglot-uri-to-path base-uri)</di= v><div><br></div><div>onto the pattern and compiling _that_, which I think = is your approach,=C2=A0</div><div>I wonder if you could change it so that o= nly the shorter pattern is=C2=A0</div><div>compiled.=C2=A0 And only later, = when "feeding" file names to that pattern,=C2=A0</div><div>we wou= ld select only files from=C2=A0within the `base-uri` subdirectory.</div><di= v><br></div><div>Now, the file names are taken from a project-files call, a= nd I don't know=C2=A0</div><div>if it has some kind of built in "f= ilter" option (where we would pass the=C2=A0</div><div>aforementioned = pathified based-uri).=C2=A0 It could for example leverage some</div><div>Gi= t flag under the hood and which would probably also increase performance.</= div><div>Let's ask Dmitry Gutov, project.el=C2=A0maintainer, what he th= inks.</div><div><br></div><div>But if I had to guess I'd say it doesn&#= 39;t, and it isn't trivial to implement, so=C2=A0</div><div>pre-filteri= ng in Eglot based on string-prefix-p or something like that is the=C2=A0</d= iv><div>best we can do to service my approach of compiling a shorter patter= n.=C2=A0</div><div><br></div><div>And in that case, it's possible that = my=C2=A0approach isn't much better than=C2=A0</div><div>the one you hav= e come up with.</div><br></div><div class=3D"gmail_quote gmail_quote_contai= ner"></div><div class=3D"gmail_quote gmail_quote_container">Jo=C3=A3o<div><= br></div></div></div> --000000000000c7af4b0643a955ae--
bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.
Received: (at submit) by debbugs.gnu.org; 15 Nov 2025 21:31:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 15 16:31:10 2025
Received: from localhost ([127.0.0.1]:37667 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vKNrS-0008N9-Dc
for submit <at> debbugs.gnu.org; Sat, 15 Nov 2025 16:31:10 -0500
Received: from lists.gnu.org ([2001:470:142::17]:51078)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <emacs@HIDDEN>) id 1vKNrQ-0008Mv-N8
for submit <at> debbugs.gnu.org; Sat, 15 Nov 2025 16:31:09 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <emacs@HIDDEN>) id 1vKNrK-0000rA-DF
for bug-gnu-emacs@HIDDEN; Sat, 15 Nov 2025 16:31:02 -0500
Received: from mout.kundenserver.de ([217.72.192.73])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <emacs@HIDDEN>) id 1vKNrH-0002yz-8A
for bug-gnu-emacs@HIDDEN; Sat, 15 Nov 2025 16:31:02 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akurth.de;
s=s1-ionos; t=1763242238; x=1763847038; i=emacs@HIDDEN;
bh=rRaJjpMzYDexUqve5vUkUUdXfk+Xhl7tgEp6NVf3sjo=;
h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:Date:Message-ID:
MIME-Version:Content-Type:Content-Transfer-Encoding:cc:
content-transfer-encoding:content-type:date:from:message-id:
mime-version:reply-to:subject:to;
b=VUPrtOZGVdBnxpiMJDBKRsTb6elZ2nK2qcxy5E1ze7uFuO3rhoo23AcrnCmi8U6x
3W8s7NeRSYqfXna+WyhcVfd4/ptF3VlMohqe2xhtt3DFIajALSqZAbbrvTXifp6lv
bky8EXdq+swkJpyAITt1WlrcP6KqlQC5//+iLOmn94PWfP9k2HZNAwfAkpFaCzbBA
qpFGY6nq/MDYqAWikNdIgKnio9rep8KAMJHVz3jejhRFnPGCs6tReOokbK2wb3258
0hpUewfHpJp3k5XuAIW3fux2rlppwHwpoWXMfokA/nwgBVDqULMAXe/YJ/b+FuRW4
Wrxm1C7/k9bfr83UoQ==
X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6
Received: from ravel ([109.250.31.208]) by mrelayeu.kundenserver.de (mreue109
[213.165.67.113]) with ESMTPSA (Nemesis) id 1MspyA-1w8mXt3kbo-00yebG; Sat, 15
Nov 2025 22:30:37 +0100
From: Andreas Kurth <emacs@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: bug#79809: Eglot does not yet parse LSP protocol parts
FileSystemWatcher->GlobPattern->RelativePattern
In-Reply-To: CALDnm52DUmn+GOo5n9M2ieG80PkkaweHUtLakjNCB8bNDbTXpw@HIDDEN
User-Agent: mu4e 1.12.13; emacs 31.0.50
OpenPGP: id=42E6E88E86E24E19; url=https://akurth.de/gpg/ak/pubkey.asc
Date: Sat, 15 Nov 2025 22:30:35 +0100
Message-ID: <878qg7kmpw.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:2eJ0CmsOgts3oizrUMH/CtjWYqs2SAHopBLjvQnQKaBBLosZpcu
P12jjc7DckVWqR5jEziwOdsBqv213/JqbIGjUwiMWKKNISU+gSIdUeK4AYSciov5/LfRPOX
ijAdKLycFenFrskEZ7qKedmK/3h8esAjq4i7JVnPfIywWYjMlSJl/yd5VslaSJPs5JXN0L8
a/7ZwQ/XSyvd5ubi+KUOA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:gv15x9JaKSE=;7hnkYtfOucd6KMLuTaIOV4+aa10
Inbb8cOUj8uRui1bZGDREvM5mNDszw8V/1D44rX5pm2axC32kuezlanSUDyjLCAIH6A4jnovV
De8YI7QlhQ3CSvXMQLI9sfBJ630ZdMh8zjp8ihXimdT0D2ECieKMDfIHw+46uRDeBdPgzPij8
9lhttJfjKVR5QaGEdn6IP5LGtolP5FuRqJfBGJH32g89uoVe4ef3xb3EqY0IZn8i8GTGxQ5Un
9ZKP11Szo7PbbdkN08InRqY0bYv7CJm86O9dQzg08n9vZymy8RLJl2UDyzmbgOuqgYUNumjG4
YkEt8++PsTry3/8XmSFYibcPHiD0UOPNVUNa2foSsPHS9wWnJASWTvcvxVvkWaA3EIygKvI+U
idWF1I8i7O8PWRM9SZTuabv/h7G4B3Txy7v0NOyfuygiOr3/dpp4KDuUKsSok+R0NeNk4wQnL
f6x/Bp+zZy7Z1Ad5uy2fOZPQa8WFoVFxcJHT6ye04NuA03LAtArRdjANELHZDePNtvDKLwSYA
uOh2bkYRsFw6OpQgBaFS8dG84MJeXilNedGtskgto6+hMXVykwoAW+Ay/e2QQVDXm3iC2MWlJ
7cIEM+5N7vyTdLqVuHCrSw7omaaw2Wc5ZVaygQ41aeWowulsojWx822Mb6hu9FKHd4NCGaFfX
XWVwWZxYoC+k5xkQraHHaRs9PPIwMbgPYO/WswBzLARS0czaPwE5soGHENstwm8zrWVDBIA6I
/g8ge65vPHkmP/iQP7lUH+SztmM9XMdfFltpRZztfmcodgcUymP+1wCWmz6q2HPkGMnBSgzxN
rDc0nEDBblEm6YsrrMEo6MwuwN0QzD+c9LOplPxO6Mb1ushp3uHqS43jvedpr1wcBkg45zhyK
KsfO58L1T8L5zs7OFxv/NhPQsZ+F/1PTVuMno7j/A5qseQKVyRprXtcPm1y/UUqd9dAw9BR5S
+FGCIxEzR0m2aQFXLuiAevjsvg9/PgFs14ZcvADmZ+9252wN5QS6UT+KJBNQ1xLrkMWcAelmj
1HlIEegM49RNmFSKrorAL7RS1tMXGAY0k47N9tu4jIzeRJCur2COEWLUd97aGaYzlVu7EWYFI
rrPiC2U0QkmVpgsM9etDTfECFjzZvi/h3FJRiTVehohrbtpgdR03Co1APu9UPzYZXjAyQjAWq
dl9FV73vtX4Q4O10orKNApO8B+by5HorygQ1L8+g9wtFU1Ool+ExD2JOosq/yizDzfzgNMyJV
ImGmqPrly+ErYKsE741aJOEcDJgb6fqKubmCJEp4pAHKla5lgVwWhmHHCXPtE32m1SA0kpbKU
aYdj/oTHPZTvw0HQlszkKBHQB2wUH6W7y428PDbePvHXfE817/rzmfLtjoTxrjZ6n4feaDGyc
1QhHrToOqKC5Js5Tno8P3/zjX7+ykEfx85ABse2YF6OtauFQgrn5VFWOe9JI5YVhE9p+fzMLJ
2tV01Qhqb0kYcX9ymiDUwNFRsQzp+Qa+eHh6foN8MoacGaQRLsJrHATbGN/p8hHlgGqp5EClc
N1euUWzUbHicKgvXPhbFRrmoNcDuzsyZ/AagEe0soC7ucZhkReIdzg64/2TaJSKcKczi0xPwU
0SxofxeN5NmgUEDp4BDUsu/fyoNey84tq/E9JP3dhmdudv5WrpAXRA5An6SiwXmEmqi9T7hbi
xF3sKcSejEkKx22OVGpg68IqnyuVcDDwVZl4pigTjEj9iqBLhfjHOhvcslOOBD8aUsEOB0KsM
wjkoWfa/lfzW4y97hwRDBlgUE+DW1fxqxKGcNLHaw/LKCOFLnh5EKkos=
Received-SPF: pass client-ip=217.72.192.73; envelope-from=emacs@HIDDEN;
helo=mout.kundenserver.de
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_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: submit
Cc: joaotavora@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: -0.0 (/)
This naive patch makes at least the error vanish; don=E2=80=99t know if it=
=E2=80=99s
enough.
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 2b901ed7875..4de52255e53 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -1059,7 +1059,8 @@ eglot-client-capabilities
:workspaceEdit `(:documentChanges t)
:didChangeWatchedFiles
`(:dynamicRegistration
- ,(if (eglot--trampish-p s) :json-false t))
+ ,(if (eglot--trampish-p s) :json-false t)
+ :relativePatternSupport t)
:symbol `(:dynamicRegistration :json-false)
:semanticTokens '(:refreshSupport t)
:configuration t
@@ -4257,11 +4258,24 @@ eglot-register-capability
(let* (success
(globs (mapcar
(eglot--lambda ((FileSystemWatcher) globPattern kind)
- (cons (eglot--glob-compile globPattern t t)
- ;; the default "7" means bitwise OR of
- ;; WatchKind.Create (1), WatchKind.Change
- ;; (2), WatchKind.Delete (4)
- (or kind 7)))
+ (let ((glob-string
+ ;; globPattern can be either a string or an obje=
ct
+ ;; with 'pattern' and optional 'baseUri' fields
+ (if (stringp globPattern)
+ globPattern
+ (let ((pattern (plist-get globPattern :pattern=
))
+ (base-uri (plist-get globPattern :baseUr=
i)))
+ (if base-uri
+ ;; Combine baseUri path with pattern
+ (concat (file-name-as-directory
+ (eglot-uri-to-path base-uri))
+ pattern)
+ pattern)))))
+ (cons (eglot--glob-compile glob-string t t)
+ ;; the default "7" means bitwise OR of
+ ;; WatchKind.Create (1), WatchKind.Change
+ ;; (2), WatchKind.Delete (4)
+ (or kind 7))))
watchers))
(dirs-to-watch
(delete-dups (mapcar #'file-name-directory
Cheers, Andreas.
bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.
Received: (at 79809) by debbugs.gnu.org; 15 Nov 2025 10:06:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 15 05:06:38 2025
Received: from localhost ([127.0.0.1]:33852 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vKDAy-0007F7-NA
for submit <at> debbugs.gnu.org; Sat, 15 Nov 2025 05:06:38 -0500
Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]:59577)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <joaotavora@HIDDEN>)
id 1vKDAv-0007Ex-5O
for 79809 <at> debbugs.gnu.org; Sat, 15 Nov 2025 05:06:35 -0500
Received: by mail-ot1-x331.google.com with SMTP id
46e09a7af769-7c7533dbd87so200526a34.2
for <79809 <at> debbugs.gnu.org>; Sat, 15 Nov 2025 02:06:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1763201187; x=1763805987; darn=debbugs.gnu.org;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:from:to:cc:subject:date:message-id:reply-to;
bh=Zvp800ud1UBp1YfqwdkSAlJkTJ8MaPfD2tFXRBBWezs=;
b=OvkK0LZXotUWtOoy/603MffzAGTR80NkO6PRRM77q80OEO4USeNT1+udvK8mhEUrs+
39PkO175nhgwjz4GJt4pJYZveBISzTJm9MVvQl4RUqCtaZurSfF+cQAjsK9HuiwySHn3
HAacridF8fIT/EAOcGWLZs8OkS0a3+H/CAfdwLB3d5dUdnoUmyF1POjKpQ3BWe/amyRh
5UP2oqnvMpG5gN60Nq6XZaEpIh1kWhShFlTwrG7hnpLMtOXmFBvKTTlMgX9tRUXDg8OW
nEgwO4uEQk6KpFEiFKigC2OF33rhx0RdVGbJHqG0krztfZZw8RPBZuKp9vM2phj9Arcd
yywg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1763201187; x=1763805987;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=Zvp800ud1UBp1YfqwdkSAlJkTJ8MaPfD2tFXRBBWezs=;
b=emJX3MZ8y+M1a4mQJ09bn5AX4VnztdCCgCQIxOGwWZ9RgzRxoX1UArGR1d7GFN6nIW
Fn5rV76oIQLKaPWkhKl+655sDKmPzGkgXwlHzRfzbIv1nl7IDmwYB7O8sdCxCLUJqEHy
H6Hkkqc+DHy1/XwL881CUGHKvNvUIHIJ681LX/reH3QNWSVjV2SHhcIkWteNc9OKVTtK
L5CUbVs5FABcZm9aELA8GA3qEtPDAuhiOkhzGkMPSrcvR8hdkTpVGl43EFAGW3Z7PotO
rDOn+u8w1HFe0Vnm9Vpc6uKzfGN7tVYaN+Yxm7KaFzgDVf6RtCWrrA2+95BI8ALfzPgP
Eg0g==
X-Forwarded-Encrypted: i=1;
AJvYcCVr03xntcCVphIQVdHtRPLzqtu65UgrkkNGQkLQfLtNxZHzsiqdR+y1r3CI9wGYdHCTEleqsg==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yy6iqH4D+IsQInjTx4WJOfX3PcXGKkP1Cyy56qrrFbBXtTVPDIY
zzd/9KYJvQXbBf6vfjmvuC5LUoz8ItJ4A7n/Un40Qk744S1yu+FGDAN/QPDCsI3amTCT00AsH6t
tjxKooXIEgUhu0KSqLjnBxf8yj5KtYO4=
X-Gm-Gg: ASbGncuMFVX+2XiH2xoD3XfIf6ulQXh5HzmkEPFsqICAhj0gdP6yahmTQexG+iVeKwl
g8EYUurNw8DBXMWbm91UUYJeCcsmBtyuz1M/e5P9b6O7D993wjKiLuYbcSe6OkCAY2cf7a6E4fZ
JLW2OSXES3hQtSrub+cllz9ExF2vxBpnCxvaT4tYltgwgbmg9HVTrcYGwkeb1HVV6YiQDLyTuWM
d94SQK3MFP2XKfg+G4uOTx1hy1i7WMAnIXVoN22YtH2xvY+mZdYnZGlfSlPnpcaJRFFZ+LE5Z2b
iqskYw==
X-Google-Smtp-Source: AGHT+IGb6fvcHe20L/gcDqpU7vcJCa/6zS29ZULMHVsXVg0Z4cFbCV51rlT2LrJhar4NmvLPrlJ7WV77u/OIBclr1so=
X-Received: by 2002:a05:6808:1649:b0:44d:aa8b:58f2 with SMTP id
5614622812f47-450973fabecmr2919766b6e.9.1763201187004; Sat, 15 Nov 2025
02:06:27 -0800 (PST)
MIME-Version: 1.0
References: <e310ac57-2b2c-4f68-944f-a88c843bab66@HIDDEN>
<86tsyvockr.fsf@HIDDEN>
In-Reply-To: <86tsyvockr.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Date: Sat, 15 Nov 2025 10:07:49 +0000
X-Gm-Features: AWmQ_bmGUHFTtxHsG_-pNwZ5NbP-KhQkrgrRrIUFxyamDrqnCeckkkAVlNjn6Mc
Message-ID: <CALDnm52DUmn+GOo5n9M2ieG80PkkaweHUtLakjNCB8bNDbTXpw@HIDDEN>
Subject: Re: bug#79809: Eglot does not yet parse LSP protocol parts
FileSystemWatcher->GlobPattern->RelativePattern
To: Eli Zaretskii <eliz@HIDDEN>, Cay Horstmann <cay@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000006b458606439f4461"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79809
Cc: 79809 <at> debbugs.gnu.org, hkirsch@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 (-)
--0000000000006b458606439f4461
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
I've seen this issue before.
https://github.com/joaotavora/eglot/discussions/1542
The server is failing to check for "RelativePattern" support in the client.
So it's a server bug. But relativePatternSupport can be added to Eglot
without much difficulty. Maybe even an LLM can add it (and then I will
will review the code).
Jo=C3=A3o
On Sat, Nov 15, 2025 at 9:43=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrote:
>
> > Date: Mon, 10 Nov 2025 11:03:39 +0000
> > From: hkirsch@HIDDEN
> >
> > With recent version of eclipse.jdt.ls, Eglot throws a Lisp error during
> > initialization with a debug trace shown below indicating that it cannot
> > work with the watcher information sent back by the server.
> >
> > eclipse.jdt.ls version: at least since 1.49 (what I tested).
> > Probably since their commit 7d8b8b4fbb0b38492f289b42de19777d77606440 Th=
u
> > Mar 6 15:23:22 2025 -0500
> > which has:
> >
> > - public static String toGlobPattern(IPath path) {
> > + public static Either<String, RelativePattern>
> > toGlobPattern(IPath path) {
> >
> > so here they seem to start using the RelativePattern thing.
>
> Thanks. Jo=C3=A3o, any comments or suggestions?
>
> > eglot-version: 1.19
> >
> > emacs-version: GNU Emacs 30.2 (build 1, x86_64-pc-linux-gnu, GTK+
> > Version 3.24.33, cairo version 1.16.0) of 2025-08-17, modified by Debia=
n
> >
> > To reproduce:
> >
> > Download eclipse jdtls from
https://download.eclipse.org/jdtls/milestones/?d
> >
> > Direct link:
> >
https://www.eclipse.org/downloads/download.php?file=3D/jdtls/milestones/1.4=
9.0/jdt-language-server-1.49.0-202507311558.tar.gz
> >
> > After unpacking the tar.gz, configure eglot to run the bin/jdtls in the
> > unpacked directory as the LSP server, i.e. just make sure it is found a=
s
> > the executable jdtls on PATH.
> >
> >
> > 1. Extract the tgz containing:
> > - a fake .git subdir to let projects find the root dir
> > - a single Java source file, src/Fail.java
> > - .classpath and .project to keep jdtls at bay
> > - debug-trace.txt as produced by Lisp error
> > - eglot-events.txt
> >
> > 2. Run: emacs -Q -f package-initialize
> > 3. Execute: M-x toggle-debug-on-error
> > 4. Find file: src/Fail.java
> > 5. Execute: M-x eglot
> >
> > This produces the following debug trace also contained in the tgz:
> >
> > Debugger entered--Lisp error: (wrong-type-argument char-or-string-p
> > (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail"))
> > eglot--glob-parse((:baseUri "file:/home/harald/work/" :pattern
> > "eglot-watchers-jdts-fail"))
> > eglot--glob-compile((:baseUri "file:/home/harald/work/" :pattern
> > "eglot-watchers-jdts-fail") t t)
> > #f(compiled-function (jsonrpc-lambda-elem79) #<bytecode
> > -0x139d9884ce9f11e6>)((:globPattern (:baseUri "file:/home/harald/work/"
> > :pattern "eglot-watchers-jdts-fail") :kind 4))
> > mapcar(#f(compiled-function (jsonrpc-lambda-elem79) #<bytecode
> > -0x139d9884ce9f11e6>) [(:globPattern "**/*.java") (:globPattern
> > "**/.project") (:globPattern "**/.classpath") (:globPattern
> > "**/.settings/*.prefs") (:globPattern "**/src/**") (:globPattern
> > "**/*.gradle") (:globPattern "**/*.gradle.kts") (:globPattern
> > "**/gradle.properties") (:globPattern "**/pom.xml") (:globPattern
> > (:baseUri "file:/home/harald/work/" :pattern "eglot-watchers-jdts-fail"=
)
> > :kind 4)])
> > #f(compiled-function (arg1 arg2 arg3 &rest rest) "Handle dynamic
> > registration of workspace/didChangeWatchedFiles." #<bytecode
> > 0x858a50cf23e1643>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> > workspace/didChangeWatchedFiles "adb8c86a-b1a1-46e9-9a63-80f4c54ff038"
> > :watchers [(:globPattern "**/*.java") (:globPattern "**/.project")
> > (:globPattern "**/.classpath") (:globPattern "**/.settings/*.prefs")
> > (:globPattern "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :patter=
n
> > "eglot-watchers-jdts-fail") :kind 4)])
> > apply(#f(compiled-function (arg1 arg2 arg3 &rest rest) "Handle
> > dynamic registration of workspace/didChangeWatchedFiles." #<bytecode
> > 0x858a50cf23e1643>) #<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> > workspace/didChangeWatchedFiles ("adb8c86a-b1a1-46e9-9a63-80f4c54ff038"
> > :watchers [(:globPattern "**/*.java") (:globPattern "**/.project")
> > (:globPattern "**/.classpath") (:globPattern "**/.settings/*.prefs")
> > (:globPattern "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :patter=
n
> > "eglot-watchers-jdts-fail") :kind 4)]))
> > eglot-register-capability(#<eglot-lsp-server
> > eglot-lsp-server-1e992dbf9f91> workspace/didChangeWatchedFiles
> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :watchers [(:globPattern
> > "**/*.java") (:globPattern "**/.project") (:globPattern "**/.classpath"=
)
> > (:globPattern "**/.settings/*.prefs") (:globPattern "**/src/**")
> > (:globPattern "**/*.gradle") (:globPattern "**/*.gradle.kts")
> > (:globPattern "**/gradle.properties") (:globPattern "**/pom.xml")
> > (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> > "eglot-watchers-jdts-fail") :kind 4)])
> > eglot--register-unregister(#<eglot-lsp-server
> > eglot-lsp-server-1e992dbf9f91> [(:id
> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> > [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> > "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> > "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :patter=
n
> > "eglot-watchers-jdts-fail") :kind 4)]))] register)
> > #f(compiled-function (arg1 arg2 &rest rest) "Handle server request
> > client/registerCapability." #<bytecode
> > -0x156012ebe0c37209>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> > client/registerCapability :registrations [(:id
> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> > [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> > "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> > "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :patter=
n
> > "eglot-watchers-jdts-fail") :kind 4)]))])
> > apply(#f(compiled-function (arg1 arg2 &rest rest) "Handle server
> > request client/registerCapability." #<bytecode -0x156012ebe0c37209>)
> > #<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> > client/registerCapability (:registrations [(:id
> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> > [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> > "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> > "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :patter=
n
> > "eglot-watchers-jdts-fail") :kind 4)]))]))
> > eglot-handle-request(#<eglot-lsp-server
> > eglot-lsp-server-1e992dbf9f91> client/registerCapability :registrations
> > [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> > [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> > "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> > "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :patter=
n
> > "eglot-watchers-jdts-fail") :kind 4)]))])
> > apply(eglot-handle-request #<eglot-lsp-server
> > eglot-lsp-server-1e992dbf9f91> client/registerCapability (:registration=
s
> > [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> > [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> > "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> > "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :patter=
n
> > "eglot-watchers-jdts-fail") :kind 4)]))]))
> > #f(compiled-function (server method params) #<bytecode
> > 0x1f1ac0b30d0648aa>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> > client/registerCapability (:registrations [(:id
> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> > [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> > "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> > "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :patter=
n
> > "eglot-watchers-jdts-fail") :kind 4)]))]))
> > jsonrpc-connection-receive(#<eglot-lsp-server
> > eglot-lsp-server-1e992dbf9f91> (:jsonrpc "2.0" :id "6" :method
> > "client/registerCapability" :params (:registrations [(:id
> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> > [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> > "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> > "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern ... :kind 4)]))])))
> > #f(compiled-function (conn msg) #<bytecode
> > -0x1cb2362863397428>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> > (:jsonrpc "2.0" :id "6" :method "client/registerCapability" :params
> > (:registrations [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> > [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> > "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> > "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> > "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> > "**/pom.xml") (:globPattern ... :kind 4)]))])))
> > apply(#f(compiled-function (conn msg) #<bytecode
> > -0x1cb2362863397428>) (#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91=
>
> > (:jsonrpc "2.0" :id "6" :method "client/registerCapability" :params
> > (:registrations [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers [... ...
> > ... ... ... ... ... ... ... ...]))]))))
> > timer-event-handler([t 26897 44860 488187 nil #f(compiled-function
> > (conn msg) #<bytecode -0x1cb2362863397428>) (#<eglot-lsp-server
> > eglot-lsp-server-1e992dbf9f91> (:jsonrpc "2.0" :id "6" :method
> > "client/registerCapability" :params (:registrations [(:id
> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> > "workspace/didChangeWatchedFiles" :registerOptions (:watchers ...))])))
> > nil 915000 nil])
> >
> >
> >
> > Further the following appears in the eglot events, also in the tgz
> > (search for baseUri):
> >
> > [jsonrpc] e[10:35:52.508] <-- client/registerCapability[5]
> >
{"jsonrpc":"2.0","id":"5","method":"client/registerCapability","params":{"r=
egistrations":[{"id":"03cb5593-e485-4fdd-83aa-e5f1c9892abe","method":"works=
pace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"=
**/*.java"},{"globPattern":"**/.project"},{"globPattern":"**/.classpath"},{=
"globPattern":"**/.settings/*.prefs"},{"globPattern":"**/src/**"},{"globPat=
tern":"**/*.gradle"},{"globPattern":"**/*.gradle.kts"},{"globPattern":"**/g=
radle.properties"},{"globPattern":"**/pom.xml"},{"globPattern":{"baseUri":"=
file:/home/harald/work/","pattern":"eglot-watchers-jdts-fail"},"kind":4}]}}=
]}}
> >
> >
> > Though the pattern seems silly in the example, it is important to have
> > for formatter and properties files read by eclipse which are not part o=
f
> > the project directory.
> >
> > Regards
> > Harald
--
Jo=C3=A3o T=C3=A1vora
--0000000000006b458606439f4461
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>I've seen this issue before.</div><div><br></div>=
<div><a href=3D"https://github.com/joaotavora/eglot/discussions/1542">https=
://github.com/joaotavora/eglot/discussions/1542</a></div><br>The server=C2=
=A0is failing to check for "RelativePattern" support in the clien=
t.<br><br><div>So it's a server bug.=C2=A0 But=C2=A0 relativePatternSup=
port can be added to Eglot=C2=A0</div><div>without much=C2=A0difficulty.=C2=
=A0 Maybe even an LLM can add it (and then I will</div><div>will review the=
code).</div><div><br></div><div>Jo=C3=A3o</div><br>On Sat, Nov 15, 2025 at=
9:43=E2=80=AFAM Eli Zaretskii <<a href=3D"mailto:eliz@HIDDEN">eliz@gnu=
.org</a>> wrote:<br>><br>> > Date: Mon, 10 Nov 2025 11:03:39 +0=
000<br>> > From: <a href=3D"mailto:hkirsch@HIDDEN">hkirsch@posteo.=
de</a><br>> ><br>> > With recent version of <a href=3D"http://e=
clipse.jdt.ls">eclipse.jdt.ls</a>, Eglot throws a Lisp error during<br>>=
> initialization with a debug trace shown below indicating that it cann=
ot<br>> > work with the watcher information sent back by the server.<=
br>> ><br>> > <a href=3D"http://eclipse.jdt.ls">eclipse.jdt.ls<=
/a> version: at least since 1.49 (what I tested).<br>> > Probably sin=
ce their commit 7d8b8b4fbb0b38492f289b42de19777d77606440 Thu<br>> > M=
ar 6 15:23:22 2025 -0500<br>> > which has:<br>> ><br>> > =
- =C2=A0 =C2=A0 =C2=A0 public static String toGlobPattern(IPath path) {<br>=
> > + =C2=A0 =C2=A0 =C2=A0 public static Either<String, RelativePa=
ttern><br>> > toGlobPattern(IPath path) {<br>> ><br>> >=
; so here they seem to start using the RelativePattern thing.<br>><br>&g=
t; Thanks.=C2=A0 Jo=C3=A3o, any comments or suggestions?<br>><br>> &g=
t; eglot-version: 1.19<br>> ><br>> > emacs-version: GNU Emacs 3=
0.2 (build 1, x86_64-pc-linux-gnu, GTK+<br>> > Version 3.24.33, cairo=
version 1.16.0) of 2025-08-17, modified by Debian<br>> ><br>> >=
; To reproduce:<br>> ><br>> > Download eclipse jdtls from <a hr=
ef=3D"https://download.eclipse.org/jdtls/milestones/?d">https://download.ec=
lipse.org/jdtls/milestones/?d</a><br>> ><br>> > Direct link:<br=
>> > <a href=3D"https://www.eclipse.org/downloads/download.php?file=
=3D/jdtls/milestones/1.49.0/jdt-language-server-1.49.0-202507311558.tar.gz"=
>https://www.eclipse.org/downloads/download.php?file=3D/jdtls/milestones/1.=
49.0/jdt-language-server-1.49.0-202507311558.tar.gz</a><br>> ><br>>=
; > After unpacking the tar.gz, configure eglot to run the bin/jdtls in =
the<br>> > unpacked directory as the LSP server, i.e. just make sure =
it is found as<br>> > the executable jdtls on PATH.<br>> ><br>&=
gt; ><br>> > 1. Extract the tgz containing:<br>> > - a fake =
.git subdir to let projects find the root dir<br>> > - a single Java =
source file, src/Fail.java<br>> > - .classpath and .project to keep j=
dtls at bay<br>> > - debug-trace.txt as produced by Lisp error<br>>=
; > - eglot-events.txt<br>> ><br>> > 2. Run: emacs -Q -f pac=
kage-initialize<br>> > 3. Execute: M-x toggle-debug-on-error<br>> =
> 4. Find file: src/Fail.java<br>> > 5. Execute: M-x eglot<br>>=
><br>> > This produces the following debug trace also contained i=
n the tgz:<br>> ><br>> > Debugger entered--Lisp error: (wrong-t=
ype-argument char-or-string-p<br>> > (:baseUri "file:/home/haral=
d/work/" :pattern "eglot-watchers-jdts-fail"))<br>> > =
=C2=A0 =C2=A0eglot--glob-parse((:baseUri "file:/home/harald/work/"=
; :pattern<br>> > "eglot-watchers-jdts-fail"))<br>> >=
=C2=A0 =C2=A0eglot--glob-compile((:baseUri "file:/home/harald/work/&q=
uot; :pattern<br>> > "eglot-watchers-jdts-fail") t t)<br>&g=
t; > =C2=A0 =C2=A0#f(compiled-function (jsonrpc-lambda-elem79) #<byte=
code<br>> > -0x139d9884ce9f11e6>)((:globPattern (:baseUri "fi=
le:/home/harald/work/"<br>> > :pattern "eglot-watchers-jdts=
-fail") :kind 4))<br>> > =C2=A0 =C2=A0mapcar(#f(compiled-functio=
n (jsonrpc-lambda-elem79) #<bytecode<br>> > -0x139d9884ce9f11e6>=
;) [(:globPattern "**/*.java") (:globPattern<br>> > "*=
*/.project") (:globPattern "**/.classpath") (:globPattern<br=
>> > "**/.settings/*.prefs") (:globPattern "**/src/**&=
quot;) (:globPattern<br>> > "**/*.gradle") (:globPattern &q=
uot;**/*.gradle.kts") (:globPattern<br>> > "**/gradle.prope=
rties") (:globPattern "**/pom.xml") (:globPattern<br>> &g=
t; (:baseUri "file:/home/harald/work/" :pattern "eglot-watch=
ers-jdts-fail")<br>> > :kind 4)])<br>> > =C2=A0 =C2=A0#f(c=
ompiled-function (arg1 arg2 arg3 &rest rest) "Handle dynamic<br>&g=
t; > registration of workspace/didChangeWatchedFiles." #<bytecod=
e<br>> > 0x858a50cf23e1643>)(#<eglot-lsp-server eglot-lsp-serve=
r-1e992dbf9f91><br>> > workspace/didChangeWatchedFiles "adb8c=
86a-b1a1-46e9-9a63-80f4c54ff038"<br>> > :watchers [(:globPattern=
"**/*.java") (:globPattern "**/.project")<br>> >=
(:globPattern "**/.classpath") (:globPattern "**/.settings/=
*.prefs")<br>> > (:globPattern "**/src/**") (:globPatt=
ern "**/*.gradle") (:globPattern<br>> > "**/*.gradle.k=
ts") (:globPattern "**/gradle.properties") (:globPattern<br>=
> > "**/pom.xml") (:globPattern (:baseUri "file:/home/=
harald/work/" :pattern<br>> > "eglot-watchers-jdts-fail&quo=
t;) :kind 4)])<br>> > =C2=A0 =C2=A0apply(#f(compiled-function (arg1 a=
rg2 arg3 &rest rest) "Handle<br>> > dynamic registration of =
workspace/didChangeWatchedFiles." #<bytecode<br>> > 0x858a50c=
f23e1643>) #<eglot-lsp-server eglot-lsp-server-1e992dbf9f91><br>&g=
t; > workspace/didChangeWatchedFiles ("adb8c86a-b1a1-46e9-9a63-80f4=
c54ff038"<br>> > :watchers [(:globPattern "**/*.java")=
(:globPattern "**/.project")<br>> > (:globPattern "**=
/.classpath") (:globPattern "**/.settings/*.prefs")<br>> =
> (:globPattern "**/src/**") (:globPattern "**/*.gradle&q=
uot;) (:globPattern<br>> > "**/*.gradle.kts") (:globPattern=
"**/gradle.properties") (:globPattern<br>> > "**/pom.=
xml") (:globPattern (:baseUri "file:/home/harald/work/" :pat=
tern<br>> > "eglot-watchers-jdts-fail") :kind 4)]))<br>>=
> =C2=A0 =C2=A0eglot-register-capability(#<eglot-lsp-server<br>> =
> eglot-lsp-server-1e992dbf9f91> workspace/didChangeWatchedFiles<br>&=
gt; > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :watchers [(:glob=
Pattern<br>> > "**/*.java") (:globPattern "**/.project=
") (:globPattern "**/.classpath")<br>> > (:globPattern=
"**/.settings/*.prefs") (:globPattern "**/src/**")<br>=
> > (:globPattern "**/*.gradle") (:globPattern "**/*.g=
radle.kts")<br>> > (:globPattern "**/gradle.properties"=
;) (:globPattern "**/pom.xml")<br>> > (:globPattern (:baseU=
ri "file:/home/harald/work/" :pattern<br>> > "eglot-wa=
tchers-jdts-fail") :kind 4)])<br>> > =C2=A0 =C2=A0eglot--registe=
r-unregister(#<eglot-lsp-server<br>> > eglot-lsp-server-1e992dbf9f=
91> [(:id<br>> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" =
:method<br>> > "workspace/didChangeWatchedFiles" :registerO=
ptions (:watchers<br>> > [(:globPattern "**/*.java") (:glob=
Pattern "**/.project") (:globPattern<br>> > "**/.class=
path") (:globPattern "**/.settings/*.prefs") (:globPattern<b=
r>> > "**/src/**") (:globPattern "**/*.gradle") (=
:globPattern<br>> > "**/*.gradle.kts") (:globPattern "=
**/gradle.properties") (:globPattern<br>> > "**/pom.xml&quo=
t;) (:globPattern (:baseUri "file:/home/harald/work/" :pattern<br=
>> > "eglot-watchers-jdts-fail") :kind 4)]))] register)<br>=
> > =C2=A0 =C2=A0#f(compiled-function (arg1 arg2 &rest rest) &quo=
t;Handle server request<br>> > client/registerCapability." #<=
bytecode<br>> > -0x156012ebe0c37209>)(#<eglot-lsp-server eglot-=
lsp-server-1e992dbf9f91><br>> > client/registerCapability :registr=
ations [(:id<br>> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" =
:method<br>> > "workspace/didChangeWatchedFiles" :registerO=
ptions (:watchers<br>> > [(:globPattern "**/*.java") (:glob=
Pattern "**/.project") (:globPattern<br>> > "**/.class=
path") (:globPattern "**/.settings/*.prefs") (:globPattern<b=
r>> > "**/src/**") (:globPattern "**/*.gradle") (=
:globPattern<br>> > "**/*.gradle.kts") (:globPattern "=
**/gradle.properties") (:globPattern<br>> > "**/pom.xml&quo=
t;) (:globPattern (:baseUri "file:/home/harald/work/" :pattern<br=
>> > "eglot-watchers-jdts-fail") :kind 4)]))])<br>> >=
=C2=A0 =C2=A0apply(#f(compiled-function (arg1 arg2 &rest rest) "H=
andle server<br>> > request client/registerCapability." #<byt=
ecode -0x156012ebe0c37209>)<br>> > #<eglot-lsp-server eglot-lsp=
-server-1e992dbf9f91><br>> > client/registerCapability (:registrat=
ions [(:id<br>> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :m=
ethod<br>> > "workspace/didChangeWatchedFiles" :registerOpt=
ions (:watchers<br>> > [(:globPattern "**/*.java") (:globPa=
ttern "**/.project") (:globPattern<br>> > "**/.classpa=
th") (:globPattern "**/.settings/*.prefs") (:globPattern<br>=
> > "**/src/**") (:globPattern "**/*.gradle") (:g=
lobPattern<br>> > "**/*.gradle.kts") (:globPattern "**=
/gradle.properties") (:globPattern<br>> > "**/pom.xml"=
) (:globPattern (:baseUri "file:/home/harald/work/" :pattern<br>&=
gt; > "eglot-watchers-jdts-fail") :kind 4)]))]))<br>> > =
=C2=A0 =C2=A0eglot-handle-request(#<eglot-lsp-server<br>> > eglot-=
lsp-server-1e992dbf9f91> client/registerCapability :registrations<br>>=
; > [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method<br>&g=
t; > "workspace/didChangeWatchedFiles" :registerOptions (:watc=
hers<br>> > [(:globPattern "**/*.java") (:globPattern "=
;**/.project") (:globPattern<br>> > "**/.classpath") (=
:globPattern "**/.settings/*.prefs") (:globPattern<br>> > &=
quot;**/src/**") (:globPattern "**/*.gradle") (:globPattern<=
br>> > "**/*.gradle.kts") (:globPattern "**/gradle.pro=
perties") (:globPattern<br>> > "**/pom.xml") (:globPat=
tern (:baseUri "file:/home/harald/work/" :pattern<br>> > &q=
uot;eglot-watchers-jdts-fail") :kind 4)]))])<br>> > =C2=A0 =C2=
=A0apply(eglot-handle-request #<eglot-lsp-server<br>> > eglot-lsp-=
server-1e992dbf9f91> client/registerCapability (:registrations<br>> &=
gt; [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method<br>> =
> "workspace/didChangeWatchedFiles" :registerOptions (:watcher=
s<br>> > [(:globPattern "**/*.java") (:globPattern "**=
/.project") (:globPattern<br>> > "**/.classpath") (:gl=
obPattern "**/.settings/*.prefs") (:globPattern<br>> > &quo=
t;**/src/**") (:globPattern "**/*.gradle") (:globPattern<br>=
> > "**/*.gradle.kts") (:globPattern "**/gradle.proper=
ties") (:globPattern<br>> > "**/pom.xml") (:globPatter=
n (:baseUri "file:/home/harald/work/" :pattern<br>> > "=
;eglot-watchers-jdts-fail") :kind 4)]))]))<br>> > =C2=A0 =C2=A0#=
f(compiled-function (server method params) #<bytecode<br>> > 0x1f1=
ac0b30d0648aa>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91><=
br>> > client/registerCapability (:registrations [(:id<br>> > &=
quot;adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method<br>> > "=
workspace/didChangeWatchedFiles" :registerOptions (:watchers<br>> &=
gt; [(:globPattern "**/*.java") (:globPattern "**/.project&q=
uot;) (:globPattern<br>> > "**/.classpath") (:globPattern &=
quot;**/.settings/*.prefs") (:globPattern<br>> > "**/src/**=
") (:globPattern "**/*.gradle") (:globPattern<br>> > &=
quot;**/*.gradle.kts") (:globPattern "**/gradle.properties")=
(:globPattern<br>> > "**/pom.xml") (:globPattern (:baseUri=
"file:/home/harald/work/" :pattern<br>> > "eglot-watc=
hers-jdts-fail") :kind 4)]))]))<br>> > =C2=A0 =C2=A0jsonrpc-conn=
ection-receive(#<eglot-lsp-server<br>> > eglot-lsp-server-1e992dbf=
9f91> (:jsonrpc "2.0" :id "6" :method<br>> > &=
quot;client/registerCapability" :params (:registrations [(:id<br>> =
> "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method<br>> > =
"workspace/didChangeWatchedFiles" :registerOptions (:watchers<br>=
> > [(:globPattern "**/*.java") (:globPattern "**/.pro=
ject") (:globPattern<br>> > "**/.classpath") (:globPat=
tern "**/.settings/*.prefs") (:globPattern<br>> > "**/=
src/**") (:globPattern "**/*.gradle") (:globPattern<br>> =
> "**/*.gradle.kts") (:globPattern "**/gradle.properties&=
quot;) (:globPattern<br>> > "**/pom.xml") (:globPattern ...=
:kind 4)]))])))<br>> > =C2=A0 =C2=A0#f(compiled-function (conn msg) =
#<bytecode<br>> > -0x1cb2362863397428>)(#<eglot-lsp-server e=
glot-lsp-server-1e992dbf9f91><br>> > (:jsonrpc "2.0" :id=
"6" :method "client/registerCapability" :params<br>>=
; > (:registrations [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038&quo=
t; :method<br>> > "workspace/didChangeWatchedFiles" :regist=
erOptions (:watchers<br>> > [(:globPattern "**/*.java") (:g=
lobPattern "**/.project") (:globPattern<br>> > "**/.cl=
asspath") (:globPattern "**/.settings/*.prefs") (:globPatter=
n<br>> > "**/src/**") (:globPattern "**/*.gradle"=
) (:globPattern<br>> > "**/*.gradle.kts") (:globPattern &qu=
ot;**/gradle.properties") (:globPattern<br>> > "**/pom.xml&=
quot;) (:globPattern ... :kind 4)]))])))<br>> > =C2=A0 =C2=A0apply(#f=
(compiled-function (conn msg) #<bytecode<br>> > -0x1cb236286339742=
8>) (#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91><br>> >=
; (:jsonrpc "2.0" :id "6" :method "client/register=
Capability" :params<br>> > (:registrations [(:id "adb8c86a-=
b1a1-46e9-9a63-80f4c54ff038" :method<br>> > "workspace/didC=
hangeWatchedFiles" :registerOptions (:watchers [... ...<br>> > .=
.. ... ... ... ... ... ... ...]))]))))<br>> > =C2=A0 =C2=A0timer-even=
t-handler([t 26897 44860 488187 nil #f(compiled-function<br>> > (conn=
msg) #<bytecode -0x1cb2362863397428>) (#<eglot-lsp-server<br>>=
> eglot-lsp-server-1e992dbf9f91> (:jsonrpc "2.0" :id "=
;6" :method<br>> > "client/registerCapability" :params=
(:registrations [(:id<br>> > "adb8c86a-b1a1-46e9-9a63-80f4c54ff=
038" :method<br>> > "workspace/didChangeWatchedFiles" =
:registerOptions (:watchers ...))])))<br>> > nil 915000 nil])<br>>=
><br>> ><br>> ><br>> > Further the following appears =
in the eglot events, also in the tgz<br>> > (search for baseUri):<br>=
> ><br>> > [jsonrpc] e[10:35:52.508] <-- client/registerCapa=
bility[5]<br>> > {"jsonrpc":"2.0","id":=
"5","method":"client/registerCapability",&quo=
t;params":{"registrations":[{"id":"03cb5593-e=
485-4fdd-83aa-e5f1c9892abe","method":"workspace/didChan=
geWatchedFiles","registerOptions":{"watchers":[{&q=
uot;globPattern":"**/*.java"},{"globPattern":"=
;**/.project"},{"globPattern":"**/.classpath"},{&q=
uot;globPattern":"**/.settings/*.prefs"},{"globPattern&=
quot;:"**/src/**"},{"globPattern":"**/*.gradle&quo=
t;},{"globPattern":"**/*.gradle.kts"},{"globPatter=
n":"**/gradle.properties"},{"globPattern":"**=
/pom.xml"},{"globPattern":{"baseUri":"file:/h=
ome/harald/work/","pattern":"eglot-watchers-jdts-fail&q=
uot;},"kind":4}]}}]}}<br>> ><br>> ><br>> > Thou=
gh the pattern seems silly in the example, it is important to have<br>> =
> for formatter and properties files read by eclipse which are not part =
of<br>> > the project directory.<br>> ><br>> > Regards<br=
>> > Harald<br><br><br><br>--<br>Jo=C3=A3o T=C3=A1vora</div>
--0000000000006b458606439f4461--
bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.
Received: (at 79809) by debbugs.gnu.org; 15 Nov 2025 09:43:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 15 04:43:59 2025
Received: from localhost ([127.0.0.1]:33767 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vKCp4-0006Ir-5h
for submit <at> debbugs.gnu.org; Sat, 15 Nov 2025 04:43:59 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:44128)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vKCp1-0006Id-Pj
for 79809 <at> debbugs.gnu.org; Sat, 15 Nov 2025 04:43:56 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
id 1vKCow-00045c-0S; Sat, 15 Nov 2025 04:43:50 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
Date; bh=FhLVFYOX/P9+p3cygokj55GDksRJqgSaLFBjwnsW6hU=; b=b/G7OEPypEw0XJ/l65wu
j3+gDQyi14/MzNDxz0pqcMADrAESrH0fQ24RvboO316AlN9fLCveMxuifOZEPIf0rT9CWAY2ovvo2
0lZwQXJJWrQGUhWUHqIBgI0wMLOmTFJtAEZ01q/kqMB7yKLcQ3f/sVLNfL4VJvxNKZYtktWo+4i7p
rJpuxOW7eEfItkKbOwuk6GcIWwJ7BSQUxpzFnMX9xiqee7z0y+odZ5YOFkQXroMtuaHPpxM5+nfta
k/o6yZHz1z6IpWxJQcDLtlQbzcMYVum5wrvuL7NH/oJe22RpGwTJliqfZvmNAgGUgO3wu8WSk3mn4
HHMfgLQFQyZMBg==;
Date: Sat, 15 Nov 2025 11:43:48 +0200
Message-Id: <86tsyvockr.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: hkirsch@HIDDEN, =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
In-Reply-To: <e310ac57-2b2c-4f68-944f-a88c843bab66@HIDDEN>
(hkirsch@HIDDEN)
Subject: Re: bug#79809: Eglot does not yet parse LSP protocol parts
FileSystemWatcher->GlobPattern->RelativePattern
References: <e310ac57-2b2c-4f68-944f-a88c843bab66@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79809
Cc: 79809 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)
> Date: Mon, 10 Nov 2025 11:03:39 +0000
> From: hkirsch@HIDDEN
>
> With recent version of eclipse.jdt.ls, Eglot throws a Lisp error during
> initialization with a debug trace shown below indicating that it cannot
> work with the watcher information sent back by the server.
>
> eclipse.jdt.ls version: at least since 1.49 (what I tested).
> Probably since their commit 7d8b8b4fbb0b38492f289b42de19777d77606440 Thu
> Mar 6 15:23:22 2025 -0500
> which has:
>
> - public static String toGlobPattern(IPath path) {
> + public static Either<String, RelativePattern>
> toGlobPattern(IPath path) {
>
> so here they seem to start using the RelativePattern thing.
Thanks. João, any comments or suggestions?
> eglot-version: 1.19
>
> emacs-version: GNU Emacs 30.2 (build 1, x86_64-pc-linux-gnu, GTK+
> Version 3.24.33, cairo version 1.16.0) of 2025-08-17, modified by Debian
>
> To reproduce:
>
> Download eclipse jdtls from https://download.eclipse.org/jdtls/milestones/?d
>
> Direct link:
> https://www.eclipse.org/downloads/download.php?file=/jdtls/milestones/1.49.0/jdt-language-server-1.49.0-202507311558.tar.gz
>
> After unpacking the tar.gz, configure eglot to run the bin/jdtls in the
> unpacked directory as the LSP server, i.e. just make sure it is found as
> the executable jdtls on PATH.
>
>
> 1. Extract the tgz containing:
> - a fake .git subdir to let projects find the root dir
> - a single Java source file, src/Fail.java
> - .classpath and .project to keep jdtls at bay
> - debug-trace.txt as produced by Lisp error
> - eglot-events.txt
>
> 2. Run: emacs -Q -f package-initialize
> 3. Execute: M-x toggle-debug-on-error
> 4. Find file: src/Fail.java
> 5. Execute: M-x eglot
>
> This produces the following debug trace also contained in the tgz:
>
> Debugger entered--Lisp error: (wrong-type-argument char-or-string-p
> (:baseUri "file:/home/harald/work/" :pattern "eglot-watchers-jdts-fail"))
> eglot--glob-parse((:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail"))
> eglot--glob-compile((:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") t t)
> #f(compiled-function (jsonrpc-lambda-elem79) #<bytecode
> -0x139d9884ce9f11e6>)((:globPattern (:baseUri "file:/home/harald/work/"
> :pattern "eglot-watchers-jdts-fail") :kind 4))
> mapcar(#f(compiled-function (jsonrpc-lambda-elem79) #<bytecode
> -0x139d9884ce9f11e6>) [(:globPattern "**/*.java") (:globPattern
> "**/.project") (:globPattern "**/.classpath") (:globPattern
> "**/.settings/*.prefs") (:globPattern "**/src/**") (:globPattern
> "**/*.gradle") (:globPattern "**/*.gradle.kts") (:globPattern
> "**/gradle.properties") (:globPattern "**/pom.xml") (:globPattern
> (:baseUri "file:/home/harald/work/" :pattern "eglot-watchers-jdts-fail")
> :kind 4)])
> #f(compiled-function (arg1 arg2 arg3 &rest rest) "Handle dynamic
> registration of workspace/didChangeWatchedFiles." #<bytecode
> 0x858a50cf23e1643>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> workspace/didChangeWatchedFiles "adb8c86a-b1a1-46e9-9a63-80f4c54ff038"
> :watchers [(:globPattern "**/*.java") (:globPattern "**/.project")
> (:globPattern "**/.classpath") (:globPattern "**/.settings/*.prefs")
> (:globPattern "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") :kind 4)])
> apply(#f(compiled-function (arg1 arg2 arg3 &rest rest) "Handle
> dynamic registration of workspace/didChangeWatchedFiles." #<bytecode
> 0x858a50cf23e1643>) #<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> workspace/didChangeWatchedFiles ("adb8c86a-b1a1-46e9-9a63-80f4c54ff038"
> :watchers [(:globPattern "**/*.java") (:globPattern "**/.project")
> (:globPattern "**/.classpath") (:globPattern "**/.settings/*.prefs")
> (:globPattern "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") :kind 4)]))
> eglot-register-capability(#<eglot-lsp-server
> eglot-lsp-server-1e992dbf9f91> workspace/didChangeWatchedFiles
> "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :watchers [(:globPattern
> "**/*.java") (:globPattern "**/.project") (:globPattern "**/.classpath")
> (:globPattern "**/.settings/*.prefs") (:globPattern "**/src/**")
> (:globPattern "**/*.gradle") (:globPattern "**/*.gradle.kts")
> (:globPattern "**/gradle.properties") (:globPattern "**/pom.xml")
> (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") :kind 4)])
> eglot--register-unregister(#<eglot-lsp-server
> eglot-lsp-server-1e992dbf9f91> [(:id
> "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") :kind 4)]))] register)
> #f(compiled-function (arg1 arg2 &rest rest) "Handle server request
> client/registerCapability." #<bytecode
> -0x156012ebe0c37209>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> client/registerCapability :registrations [(:id
> "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") :kind 4)]))])
> apply(#f(compiled-function (arg1 arg2 &rest rest) "Handle server
> request client/registerCapability." #<bytecode -0x156012ebe0c37209>)
> #<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> client/registerCapability (:registrations [(:id
> "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") :kind 4)]))]))
> eglot-handle-request(#<eglot-lsp-server
> eglot-lsp-server-1e992dbf9f91> client/registerCapability :registrations
> [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") :kind 4)]))])
> apply(eglot-handle-request #<eglot-lsp-server
> eglot-lsp-server-1e992dbf9f91> client/registerCapability (:registrations
> [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") :kind 4)]))]))
> #f(compiled-function (server method params) #<bytecode
> 0x1f1ac0b30d0648aa>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> client/registerCapability (:registrations [(:id
> "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
> "eglot-watchers-jdts-fail") :kind 4)]))]))
> jsonrpc-connection-receive(#<eglot-lsp-server
> eglot-lsp-server-1e992dbf9f91> (:jsonrpc "2.0" :id "6" :method
> "client/registerCapability" :params (:registrations [(:id
> "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern ... :kind 4)]))])))
> #f(compiled-function (conn msg) #<bytecode
> -0x1cb2362863397428>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> (:jsonrpc "2.0" :id "6" :method "client/registerCapability" :params
> (:registrations [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers
> [(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
> "**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
> "**/src/**") (:globPattern "**/*.gradle") (:globPattern
> "**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
> "**/pom.xml") (:globPattern ... :kind 4)]))])))
> apply(#f(compiled-function (conn msg) #<bytecode
> -0x1cb2362863397428>) (#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
> (:jsonrpc "2.0" :id "6" :method "client/registerCapability" :params
> (:registrations [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers [... ...
> ... ... ... ... ... ... ... ...]))]))))
> timer-event-handler([t 26897 44860 488187 nil #f(compiled-function
> (conn msg) #<bytecode -0x1cb2362863397428>) (#<eglot-lsp-server
> eglot-lsp-server-1e992dbf9f91> (:jsonrpc "2.0" :id "6" :method
> "client/registerCapability" :params (:registrations [(:id
> "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
> "workspace/didChangeWatchedFiles" :registerOptions (:watchers ...))])))
> nil 915000 nil])
>
>
>
> Further the following appears in the eglot events, also in the tgz
> (search for baseUri):
>
> [jsonrpc] e[10:35:52.508] <-- client/registerCapability[5]
> {"jsonrpc":"2.0","id":"5","method":"client/registerCapability","params":{"registrations":[{"id":"03cb5593-e485-4fdd-83aa-e5f1c9892abe","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.java"},{"globPattern":"**/.project"},{"globPattern":"**/.classpath"},{"globPattern":"**/.settings/*.prefs"},{"globPattern":"**/src/**"},{"globPattern":"**/*.gradle"},{"globPattern":"**/*.gradle.kts"},{"globPattern":"**/gradle.properties"},{"globPattern":"**/pom.xml"},{"globPattern":{"baseUri":"file:/home/harald/work/","pattern":"eglot-watchers-jdts-fail"},"kind":4}]}}]}}
>
>
> Though the pattern seems silly in the example, it is important to have
> for formatter and properties files read by eclipse which are not part of
> the project directory.
>
> Regards
> Harald
bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.
Received: (at submit) by debbugs.gnu.org; 10 Nov 2025 14:39:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 10 09:39:09 2025
Received: from localhost ([127.0.0.1]:37931 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vIT2x-00081K-Ht
for submit <at> debbugs.gnu.org; Mon, 10 Nov 2025 09:39:09 -0500
Received: from lists.gnu.org ([2001:470:142::17]:43220)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <hkirsch@HIDDEN>) id 1vIPh3-0004jL-OG
for submit <at> debbugs.gnu.org; Mon, 10 Nov 2025 06:04:21 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <hkirsch@HIDDEN>) id 1vIPga-0001A2-Uk
for bug-gnu-emacs@HIDDEN; Mon, 10 Nov 2025 06:03:58 -0500
Received: from mout02.posteo.de ([185.67.36.66])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <hkirsch@HIDDEN>) id 1vIPgW-0003QV-81
for bug-gnu-emacs@HIDDEN; Mon, 10 Nov 2025 06:03:48 -0500
Received: from submission (posteo.de [185.67.36.169])
by mout02.posteo.de (Postfix) with ESMTPS id 807D8240101
for <bug-gnu-emacs@HIDDEN>; Mon, 10 Nov 2025 12:03:40 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.de; s=2017;
t=1762772620; bh=sQsgMZY/5/JJW/leb4d5s/h3k++yPB6NY7z0QYeIiYk=;
h=Content-Type:Message-ID:Date:MIME-Version:To:From:Subject:From;
b=B4aY0e9rwuw2elaKGHgp7HaMZpn/ZRwMf2r4+JLkInSr1lnZHL080ilQk9QhIFhco
FQpJMfX3famBjkn27Sh45Hw9wWghsYo9yA/XfLg6Q8z0TlH3COHDR6sAol9VqpqGw7
XsiXR3JC2wrFUY5WsOf6AQ4X0O2WinLNOqiL4dZYRA0qwlfzwdDvEWidotoUWZiCc0
kLR9KvycbndjvtTqZs48z2nb4CZYeAnf0ZWBu9IlmmbQlvY2BD61zl1Oot4LwtFfa6
djLm1uRb3bRdDN9kTwI615ZF4/oZrvQa1Howoh+YjvSxSSWtetEc0VKMbguac4VVDp
zMDhiiniB3YEQ==
Received: from customer (localhost [127.0.0.1])
by submission (posteo.de) with ESMTPSA id 4d4mxR3fCpz9rxG
for <bug-gnu-emacs@HIDDEN>; Mon, 10 Nov 2025 12:03:39 +0100 (CET)
Content-Type: multipart/mixed; boundary="------------FGNCI4CGNqqpqohGyc2JEvh5"
Message-ID: <e310ac57-2b2c-4f68-944f-a88c843bab66@HIDDEN>
Date: Mon, 10 Nov 2025 11:03:39 +0000
MIME-Version: 1.0
Content-Language: en-US
To: bug-gnu-emacs@HIDDEN
From: hkirsch@HIDDEN
Subject: Eglot does not yet parse LSP protocol parts
FileSystemWatcher->GlobPattern->RelativePattern
Received-SPF: pass client-ip=185.67.36.66; envelope-from=hkirsch@HIDDEN;
helo=mout02.posteo.de
X-Spam_score_int: -43
X-Spam_score: -4.4
X-Spam_bar: ----
X-Spam_report: (-4.4 / 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_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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.0 (+)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Mon, 10 Nov 2025 09:39:01 -0500
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: -0.0 (/)
This is a multi-part message in MIME format.
--------------FGNCI4CGNqqpqohGyc2JEvh5
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Hello Team.
With recent version of eclipse.jdt.ls, Eglot throws a Lisp error during
initialization with a debug trace shown below indicating that it cannot
work with the watcher information sent back by the server.
eclipse.jdt.ls version: at least since 1.49 (what I tested).
Probably since their commit 7d8b8b4fbb0b38492f289b42de19777d77606440 Thu
Mar 6 15:23:22 2025 -0500
which has:
- public static String toGlobPattern(IPath path) {
+ public static Either<String, RelativePattern>
toGlobPattern(IPath path) {
so here they seem to start using the RelativePattern thing.
eglot-version: 1.19
emacs-version: GNU Emacs 30.2 (build 1, x86_64-pc-linux-gnu, GTK+
Version 3.24.33, cairo version 1.16.0) of 2025-08-17, modified by Debian
To reproduce:
Download eclipse jdtls from https://download.eclipse.org/jdtls/milestones/?d
Direct link:
https://www.eclipse.org/downloads/download.php?file=/jdtls/milestones/1.49.0/jdt-language-server-1.49.0-202507311558.tar.gz
After unpacking the tar.gz, configure eglot to run the bin/jdtls in the
unpacked directory as the LSP server, i.e. just make sure it is found as
the executable jdtls on PATH.
1. Extract the tgz containing:
- a fake .git subdir to let projects find the root dir
- a single Java source file, src/Fail.java
- .classpath and .project to keep jdtls at bay
- debug-trace.txt as produced by Lisp error
- eglot-events.txt
2. Run: emacs -Q -f package-initialize
3. Execute: M-x toggle-debug-on-error
4. Find file: src/Fail.java
5. Execute: M-x eglot
This produces the following debug trace also contained in the tgz:
Debugger entered--Lisp error: (wrong-type-argument char-or-string-p
(:baseUri "file:/home/harald/work/" :pattern "eglot-watchers-jdts-fail"))
eglot--glob-parse((:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail"))
eglot--glob-compile((:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") t t)
#f(compiled-function (jsonrpc-lambda-elem79) #<bytecode
-0x139d9884ce9f11e6>)((:globPattern (:baseUri "file:/home/harald/work/"
:pattern "eglot-watchers-jdts-fail") :kind 4))
mapcar(#f(compiled-function (jsonrpc-lambda-elem79) #<bytecode
-0x139d9884ce9f11e6>) [(:globPattern "**/*.java") (:globPattern
"**/.project") (:globPattern "**/.classpath") (:globPattern
"**/.settings/*.prefs") (:globPattern "**/src/**") (:globPattern
"**/*.gradle") (:globPattern "**/*.gradle.kts") (:globPattern
"**/gradle.properties") (:globPattern "**/pom.xml") (:globPattern
(:baseUri "file:/home/harald/work/" :pattern "eglot-watchers-jdts-fail")
:kind 4)])
#f(compiled-function (arg1 arg2 arg3 &rest rest) "Handle dynamic
registration of workspace/didChangeWatchedFiles." #<bytecode
0x858a50cf23e1643>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
workspace/didChangeWatchedFiles "adb8c86a-b1a1-46e9-9a63-80f4c54ff038"
:watchers [(:globPattern "**/*.java") (:globPattern "**/.project")
(:globPattern "**/.classpath") (:globPattern "**/.settings/*.prefs")
(:globPattern "**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") :kind 4)])
apply(#f(compiled-function (arg1 arg2 arg3 &rest rest) "Handle
dynamic registration of workspace/didChangeWatchedFiles." #<bytecode
0x858a50cf23e1643>) #<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
workspace/didChangeWatchedFiles ("adb8c86a-b1a1-46e9-9a63-80f4c54ff038"
:watchers [(:globPattern "**/*.java") (:globPattern "**/.project")
(:globPattern "**/.classpath") (:globPattern "**/.settings/*.prefs")
(:globPattern "**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") :kind 4)]))
eglot-register-capability(#<eglot-lsp-server
eglot-lsp-server-1e992dbf9f91> workspace/didChangeWatchedFiles
"adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :watchers [(:globPattern
"**/*.java") (:globPattern "**/.project") (:globPattern "**/.classpath")
(:globPattern "**/.settings/*.prefs") (:globPattern "**/src/**")
(:globPattern "**/*.gradle") (:globPattern "**/*.gradle.kts")
(:globPattern "**/gradle.properties") (:globPattern "**/pom.xml")
(:globPattern (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") :kind 4)])
eglot--register-unregister(#<eglot-lsp-server
eglot-lsp-server-1e992dbf9f91> [(:id
"adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers
[(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
"**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
"**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") :kind 4)]))] register)
#f(compiled-function (arg1 arg2 &rest rest) "Handle server request
client/registerCapability." #<bytecode
-0x156012ebe0c37209>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
client/registerCapability :registrations [(:id
"adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers
[(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
"**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
"**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") :kind 4)]))])
apply(#f(compiled-function (arg1 arg2 &rest rest) "Handle server
request client/registerCapability." #<bytecode -0x156012ebe0c37209>)
#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
client/registerCapability (:registrations [(:id
"adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers
[(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
"**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
"**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") :kind 4)]))]))
eglot-handle-request(#<eglot-lsp-server
eglot-lsp-server-1e992dbf9f91> client/registerCapability :registrations
[(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers
[(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
"**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
"**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") :kind 4)]))])
apply(eglot-handle-request #<eglot-lsp-server
eglot-lsp-server-1e992dbf9f91> client/registerCapability (:registrations
[(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers
[(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
"**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
"**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") :kind 4)]))]))
#f(compiled-function (server method params) #<bytecode
0x1f1ac0b30d0648aa>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
client/registerCapability (:registrations [(:id
"adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers
[(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
"**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
"**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern (:baseUri "file:/home/harald/work/" :pattern
"eglot-watchers-jdts-fail") :kind 4)]))]))
jsonrpc-connection-receive(#<eglot-lsp-server
eglot-lsp-server-1e992dbf9f91> (:jsonrpc "2.0" :id "6" :method
"client/registerCapability" :params (:registrations [(:id
"adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers
[(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
"**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
"**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern ... :kind 4)]))])))
#f(compiled-function (conn msg) #<bytecode
-0x1cb2362863397428>)(#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
(:jsonrpc "2.0" :id "6" :method "client/registerCapability" :params
(:registrations [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers
[(:globPattern "**/*.java") (:globPattern "**/.project") (:globPattern
"**/.classpath") (:globPattern "**/.settings/*.prefs") (:globPattern
"**/src/**") (:globPattern "**/*.gradle") (:globPattern
"**/*.gradle.kts") (:globPattern "**/gradle.properties") (:globPattern
"**/pom.xml") (:globPattern ... :kind 4)]))])))
apply(#f(compiled-function (conn msg) #<bytecode
-0x1cb2362863397428>) (#<eglot-lsp-server eglot-lsp-server-1e992dbf9f91>
(:jsonrpc "2.0" :id "6" :method "client/registerCapability" :params
(:registrations [(:id "adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers [... ...
... ... ... ... ... ... ... ...]))]))))
timer-event-handler([t 26897 44860 488187 nil #f(compiled-function
(conn msg) #<bytecode -0x1cb2362863397428>) (#<eglot-lsp-server
eglot-lsp-server-1e992dbf9f91> (:jsonrpc "2.0" :id "6" :method
"client/registerCapability" :params (:registrations [(:id
"adb8c86a-b1a1-46e9-9a63-80f4c54ff038" :method
"workspace/didChangeWatchedFiles" :registerOptions (:watchers ...))])))
nil 915000 nil])
Further the following appears in the eglot events, also in the tgz
(search for baseUri):
[jsonrpc] e[10:35:52.508] <-- client/registerCapability[5]
{"jsonrpc":"2.0","id":"5","method":"client/registerCapability","params":{"registrations":[{"id":"03cb5593-e485-4fdd-83aa-e5f1c9892abe","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.java"},{"globPattern":"**/.project"},{"globPattern":"**/.classpath"},{"globPattern":"**/.settings/*.prefs"},{"globPattern":"**/src/**"},{"globPattern":"**/*.gradle"},{"globPattern":"**/*.gradle.kts"},{"globPattern":"**/gradle.properties"},{"globPattern":"**/pom.xml"},{"globPattern":{"baseUri":"file:/home/harald/work/","pattern":"eglot-watchers-jdts-fail"},"kind":4}]}}]}}
Though the pattern seems silly in the example, it is important to have
for formatter and properties files read by eclipse which are not part of
the project directory.
Regards
Harald
--
--------------+---------------------------------------
Harald Kirsch | hkirsch@HIDDEN 0163/240 4 052
HaraldKi@HIDDEN
--------------FGNCI4CGNqqpqohGyc2JEvh5
Content-Type: application/x-compressed-tar;
name="eglot-watchers-jdts-fail.tgz"
Content-Disposition: attachment; filename="eglot-watchers-jdts-fail.tgz"
Content-Transfer-Encoding: base64
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
nv8FFtQvCQBAAQA=
--------------FGNCI4CGNqqpqohGyc2JEvh5--
hkirsch@HIDDEN:bug-gnu-emacs@HIDDEN.
Full text available.bug-gnu-emacs@HIDDEN:bug#79809; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.