From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= Newsgroups: gmane.emacs.bugs Subject: bug#61412: Inlay hints implementation Date: Tue, 21 Feb 2023 15:13:03 +0000 Message-ID: References: <83edqqaf8c.fsf@gnu.org> <2B284D77-97DF-4B3E-89FB-13F0CA93D240@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000febd5005f537377c" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28476"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , 61412@debbugs.gnu.org To: Chinmay Dalal , Dimitri Belopopsky , Po Lu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Feb 21 16:14:15 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pUULO-0007AZ-8i for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 21 Feb 2023 16:14:14 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUULE-0004za-Er; Tue, 21 Feb 2023 10:14:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUULC-0004zK-Uo for bug-gnu-emacs@gnu.org; Tue, 21 Feb 2023 10:14:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUULC-00058B-MR for bug-gnu-emacs@gnu.org; Tue, 21 Feb 2023 10:14:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pUULC-0002j3-Bj for bug-gnu-emacs@gnu.org; Tue, 21 Feb 2023 10:14:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 21 Feb 2023 15:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61412 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 61412-submit@debbugs.gnu.org id=B61412.167699240410423 (code B ref 61412); Tue, 21 Feb 2023 15:14:02 +0000 Original-Received: (at 61412) by debbugs.gnu.org; 21 Feb 2023 15:13:24 +0000 Original-Received: from localhost ([127.0.0.1]:57018 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pUUKZ-0002i3-QT for submit@debbugs.gnu.org; Tue, 21 Feb 2023 10:13:24 -0500 Original-Received: from mail-oa1-f51.google.com ([209.85.160.51]:43997) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pUUKW-0002hq-L6 for 61412@debbugs.gnu.org; Tue, 21 Feb 2023 10:13:22 -0500 Original-Received: by mail-oa1-f51.google.com with SMTP id 586e51a60fabf-172094e10e3so5696179fac.10 for <61412@debbugs.gnu.org>; Tue, 21 Feb 2023 07:13:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=XaegYlL1kSHTh31PG9ER2oe0eS1DO2ti57Nl36Vffl4=; b=nCdM2rll775qNOPhaAuVmzYz3dz6hbUVm5Xbsq+JwCY87d/TJecUGj6qWJu21ZokKx CojEfazlX8feRiF7VnMSKJMQ98NxGGhehyb137ckBuOSm9R2KS1PbCZehyGHt5WVn+mZ lJ5vrZ0TCFepfiEWKVYUd/65ABTELjW6ExaGVuGCmiiWG33n9jO7iCmOMAam6GjAZ6Tt xyvcheDv1o0WPnAfc2nEBazhw9Un0XKboUU447j95/2884oE16690DSmiD2iTn1vGm00 9GAgEizUbjmdc6Z+GPDZfy76xkgtemQzAVKcK6vNKN0Y5L5FaaTN2SHA9tRN+bDMfes1 L0bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XaegYlL1kSHTh31PG9ER2oe0eS1DO2ti57Nl36Vffl4=; b=gnMdBHjrAbC8XkaXYWFnQwgWb5zhKeZ/JRIbSEccCraPRZA96t5AiZS4M4PFCk60d7 R8hMPxjmq667ucxeEjUj4miX1G0OKMh4b3D5I1T1CoUbGID36Ay2n8ei66OK+8gr1ulv XRQFj633nbb+CHHESU/+gREn8ZKFAdrUfYfVPprxgQapG+TXr2cQudJhzkdrUhT4er64 nBfmq1fwAqhibinZlKMrpaRLMm7fmbqNtRjx2pICgyGoQNj8/7jtVGmtFAWMaYBeAp4n O+4SMzPMwMuQkNrFCDwhAHNOBupKRucdxiGNLdIAFyOaD8ZoMj4L4QDVclNSus/rTIKI G8OQ== X-Gm-Message-State: AO0yUKX/jJu9WjCDrWKmRTdCGfQBOk5hE7lFUmh5ADYIxK/Ngrts6aa5 6Cd1ogCLl/gcw+zIkckjQhBLkuywfBL9LPK8ti0= X-Google-Smtp-Source: AK7set//0lKVMEYgMRyJhyWAcCvLhx+jhQSzMQy0ToaDPuwDh85yOWo9g8QU0iSsG2E9tp874iwbpKif7tgHYbd7uoo= X-Received: by 2002:a05:6870:d148:b0:16d:dc93:691d with SMTP id f8-20020a056870d14800b0016ddc93691dmr736824oac.6.1676992394978; Tue, 21 Feb 2023 07:13:14 -0800 (PST) In-Reply-To: <2B284D77-97DF-4B3E-89FB-13F0CA93D240@gmail.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:256282 Archived-At: --000000000000febd5005f537377c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable [Eli, I just noticed that this bug should be merged with 61066, but I don't know how to do that] Hello, Attached is my implementation of inlay hints for Eglot. Two patches are provided, where the first just lays some basic groundwork to make the actual inlay hint implementation simpler. Regarding copyright stuff, I did look at Chinmay's patch, but I re-started from scratch. While it was a very good effort, there were too many idiomatic Elisp and Eglot things to change. I did take Chinmay's face definitions, though. Not sure how to proceed here and if this counts as "derived work" and if we should wait for Chinmay's copyright assignment. I gave it some light testing and I kind of like it. Quite helpful for C++ with clangd (the only server I tested it with). You can bind `eglot-inlay-hint-mode` to some keybinding probably. Documentation in the manual is still missing, but shouldn't be very hard to do. Anyway, this is likely not the end of the inlay hint story because, as the second patch documents, this is likely a very naive implementation that always requests inlay hints for the entire buffer even if just a fraction of it is visible. A better implementation would probably leverage window-scroll-functions along with the Eglot-specific idle timer. That is probably much, much more tricky to get right, but is also more than likely the way to go. In the meantime, I'd like your opinion on this patch and the above topics first. Jo=C3=A3o I hope gmail doesn't mess up my attachments... --000000000000febd5005f537377c Content-Type: application/octet-stream; name="0001-Eglot-simplify-capability-checking-code.patch" Content-Disposition: attachment; filename="0001-Eglot-simplify-capability-checking-code.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_leedwtou0 RnJvbSBjYWNlZGQ2Nzg3M2JmYjA5NGQxMmMwOGZjMjNlMDE3ZmE0ZGU1ZGYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sm89QzM9QTNvPTIwVD1DMz1BMXZvcmE/PSA8 am9hb3Rhdm9yYUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjEgRmViIDIwMjMgMTM6NTk6MDQgKzAw MDAKU3ViamVjdDogW1BBVENIIDEvMl0gRWdsb3Q6IHNpbXBsaWZ5IGNhcGFiaWxpdHktY2hlY2tp bmcgY29kZQoKKiBsaXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbCAoZWdsb3QtLXNlcnZlci1jYXBhYmxl LW9yLWxvc2UpOiBOZXcgaGVscGVyLgooZWdsb3QtLXNpZ25hbC10ZXh0RG9jdW1lbnQvd2lsbFNh dmUpCihlZ2xvdC0tc2lnbmFsLXRleHREb2N1bWVudC9kaWRTYXZlKTogVHdlYWsgZG9jc3RyaW5n LgooZWdsb3QtLXdvcmtzcGFjZS1zeW1ib2xzLCB4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1hdC1w b2ludCkKKGVnbG90LWZvcm1hdCwgZWdsb3QtY29tcGxldGlvbi1hdC1wb2ludCwgZWdsb3QtcmVu YW1lKQooZWdsb3QtY29kZS1hY3Rpb25zKTogVXNlIG5ldyBlZ2xvdC0tc2VydmVyLWNhcGFibGUt b3ItbG9zZS4KLS0tCiBsaXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbCB8IDM3ICsrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbCBi L2xpc3AvcHJvZ21vZGVzL2VnbG90LmVsCmluZGV4IDgyNDAxYjY4NWNlLi40NWYwMGRhY2ExZiAx MDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvZWdsb3QuZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMv ZWdsb3QuZWwKQEAgLTE2NDEsNiArMTY0MSwxMyBAQCBlZ2xvdC0tc2VydmVyLWNhcGFibGUKICAg ICAgICAgICAgICBpZiAobm90IChsaXN0cCAoY2FkciBwcm9iZSkpKSBkbyAoY2wtcmV0dXJuIChp ZiBtb3JlIG5pbCAoY2FkciBwcm9iZSkpKQogICAgICAgICAgICAgIGZpbmFsbHkgKGNsLXJldHVy biAob3IgKGNhZHIgcHJvYmUpIHQpKSkpKQogCisoZGVmdW4gZWdsb3QtLXNlcnZlci1jYXBhYmxl LW9yLWxvc2UgKCZyZXN0IGZlYXRzKQorICAiTGlrZSBgZWdsb3QtLXNlcnZlci1jYXBhYmxlJywg YnV0IG1heWJlIGVycm9yIG91dC4iCisgIChsZXQgKChyZXR2YWwgKGFwcGx5ICMnZWdsb3QtLXNl cnZlci1jYXBhYmxlIGZlYXRzKSkpCisgICAgKHVubGVzcyByZXR2YWwKKyAgICAgIChlZ2xvdC0t ZXJyb3IgIlRoaXMgTFNQIHNlcnZlciBpc24ndCBjYXBhYmxlIG9mICVzIiBmZWF0cykpCisgICAg cmV0dmFsKSkKKwogKGRlZnVuIGVnbG90LS1yYW5nZS1yZWdpb24gKHJhbmdlICZvcHRpb25hbCBt YXJrZXJzKQogICAiUmV0dXJuIHJlZ2lvbiAoQkVHIC4gRU5EKSB0aGF0IHJlcHJlc2VudHMgTFNQ IFJBTkdFLgogSWYgb3B0aW9uYWwgTUFSS0VSUywgbWFrZSBtYXJrZXJzLiIKQEAgLTI0ODIsNyAr MjQ4OSw3IEBAIGVnbG90LS1zaWduYWwtdGV4dERvY3VtZW50L2RpZENsb3NlCiAgICAgIDp0ZXh0 RG9jdW1lbnQvZGlkQ2xvc2UgYCg6dGV4dERvY3VtZW50ICwoZWdsb3QtLVRleHREb2N1bWVudElk ZW50aWZpZXIpKSkpKQogCiAoZGVmdW4gZWdsb3QtLXNpZ25hbC10ZXh0RG9jdW1lbnQvd2lsbFNh dmUgKCkKLSAgIlNlbmQgdGV4dERvY3VtZW50L3dpbGxTYXZlIHRvIHNlcnZlci4iCisgICJNYXli ZSBzZW5kIHRleHREb2N1bWVudC93aWxsU2F2ZSB0byBzZXJ2ZXIuIgogICAobGV0ICgoc2VydmVy IChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9zZSkpCiAgICAgICAgIChwYXJhbXMgYCg6cmVh c29uIDEgOnRleHREb2N1bWVudCAsKGVnbG90LS1UZXh0RG9jdW1lbnRJZGVudGlmaWVyKSkpKQog ICAgICh3aGVuIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOnRleHREb2N1bWVudFN5bmMgOndpbGxT YXZlKQpAQCAtMjQ5NCw3ICsyNTAxLDcgQEAgZWdsb3QtLXNpZ25hbC10ZXh0RG9jdW1lbnQvd2ls bFNhdmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRpbWVvdXQgMC41KSkpKSkpCiAKIChk ZWZ1biBlZ2xvdC0tc2lnbmFsLXRleHREb2N1bWVudC9kaWRTYXZlICgpCi0gICJTZW5kIHRleHRE b2N1bWVudC9kaWRTYXZlIHRvIHNlcnZlci4iCisgICJNYXliZSBzZW5kIHRleHREb2N1bWVudC9k aWRTYXZlIHRvIHNlcnZlci4iCiAgIChlZ2xvdC0tc2lnbmFsLXRleHREb2N1bWVudC9kaWRDaGFu Z2UpCiAgICh3aGVuIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOnRleHREb2N1bWVudFN5bmMgOnNh dmUpCiAgICAgKGpzb25ycGMtbm90aWZ5CkBAIC0yNTkxLDggKzI1OTgsNyBAQCBlZ2xvdC0td29y a3NwYWNlLXN5bWJvbHMKICAgIkFzayBmb3IgOndvcmtzcGFjZS9zeW1ib2wgb24gUEFULCByZXR1 cm4gbGlzdCBvZiBmb3JtYXR0ZWQgc3RyaW5ncy4KIElmIEJVRkZFUiwgc3dpdGNoIHRvIGl0IGJl Zm9yZS4iCiAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChvciBidWZmZXIgKGN1cnJlbnQtYnVmZmVy KSkKLSAgICAodW5sZXNzIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOndvcmtzcGFjZVN5bWJvbFBy b3ZpZGVyKQotICAgICAgKGVnbG90LS1lcnJvciAiVGhpcyBMU1Agc2VydmVyIGlzbid0IGEgOndv cmtzcGFjZVN5bWJvbFByb3ZpZGVyIikpCisgICAgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZS1vci1s b3NlIDp3b3Jrc3BhY2VTeW1ib2xQcm92aWRlcikKICAgICAobWFwY2FyCiAgICAgIChsYW1iZGEg KHdzcykKICAgICAgICAoZWdsb3QtLWRiaW5kICgoV29ya3NwYWNlU3ltYm9sKSBuYW1lIGNvbnRh aW5lck5hbWUga2luZCkgd3NzCkBAIC0yNjU0LDEzICsyNjYwLDEyIEBAIGVnbG90LS1sc3AteHJl Zi1yZWZzCiAKIChjbC1kZWZ1biBlZ2xvdC0tbHNwLXhyZWZzLWZvci1tZXRob2QgKG1ldGhvZCAm a2V5IGV4dHJhLXBhcmFtcyBjYXBhYmlsaXR5KQogICAiTWFrZSBgeHJlZicncyBmb3IgTUVUSE9E LCBFWFRSQS1QQVJBTVMsIGNoZWNrIENBUEFCSUxJVFkuIgotICAodW5sZXNzIChlZ2xvdC0tc2Vy dmVyLWNhcGFibGUKLSAgICAgICAgICAgKG9yIGNhcGFiaWxpdHkKLSAgICAgICAgICAgICAgIChp bnRlcm4KLSAgICAgICAgICAgICAgICAoZm9ybWF0ICI6JXNQcm92aWRlciIKLSAgICAgICAgICAg ICAgICAgICAgICAgIChjYWRyIChzcGxpdC1zdHJpbmcgKHN5bWJvbC1uYW1lIG1ldGhvZCkKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iKSkpKSkpCi0gICAg KGVnbG90LS1lcnJvciAiU29ycnksIHRoaXMgc2VydmVyIGRvZXNuJ3QgZG8gJXMiIG1ldGhvZCkp CisgIChlZ2xvdC0tc2VydmVyLWNhcGFibGUtb3ItbG9zZQorICAgKG9yIGNhcGFiaWxpdHkKKyAg ICAgICAoaW50ZXJuCisgICAgICAgIChmb3JtYXQgIjolc1Byb3ZpZGVyIgorICAgICAgICAgICAg ICAgIChjYWRyIChzcGxpdC1zdHJpbmcgKHN5bWJvbC1uYW1lIG1ldGhvZCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIvIikpKSkpKQogICAobGV0ICgocmVzcG9uc2UKICAg ICAgICAgIChqc29ucnBjLXJlcXVlc3QKICAgICAgICAgICAoZWdsb3QtLWN1cnJlbnQtc2VydmVy LW9yLWxvc2UpCkBAIC0yNzU3LDggKzI3NjIsNyBAQCBlZ2xvdC1mb3JtYXQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6ZW5kIChlZ2xvdC0tcG9zLXRvLWxzcC1wb3NpdGlvbiBl bmQpKSkpKQogICAgICAgICAgICAgICAgICh0CiAgICAgICAgICAgICAgICAgICcoOnRleHREb2N1 bWVudC9mb3JtYXR0aW5nIDpkb2N1bWVudEZvcm1hdHRpbmdQcm92aWRlciBuaWwpKSkpKQotICAg ICh1bmxlc3MgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSBjYXApCi0gICAgICAoZWdsb3QtLWVycm9y ICJTZXJ2ZXIgY2FuJ3QgZm9ybWF0ISIpKQorICAgIChlZ2xvdC0tc2VydmVyLWNhcGFibGUtb3It bG9zZSBjYXApCiAgICAgKGVnbG90LS1hcHBseS10ZXh0LWVkaXRzCiAgICAgIChqc29ucnBjLXJl cXVlc3QKICAgICAgIChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9zZSkKQEAgLTMyMDIsOCAr MzIwNiw3IEBAIGVnbG90LXJlbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAidW5rbm93biBzeW1ib2wiKSkKICAgICAgICAgICBuaWwgbmlsIG5pbCBuaWwKICAg ICAgICAgICAoc3ltYm9sLW5hbWUgKHN5bWJvbC1hdC1wb2ludCkpKSkpCi0gICh1bmxlc3MgKGVn bG90LS1zZXJ2ZXItY2FwYWJsZSA6cmVuYW1lUHJvdmlkZXIpCi0gICAgKGVnbG90LS1lcnJvciAi U2VydmVyIGNhbid0IHJlbmFtZSEiKSkKKyAgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZS1vci1sb3Nl IDpyZW5hbWVQcm92aWRlcikKICAgKGVnbG90LS1hcHBseS13b3Jrc3BhY2UtZWRpdAogICAgKGpz b25ycGMtcmVxdWVzdCAoZWdsb3QtLWN1cnJlbnQtc2VydmVyLW9yLWxvc2UpCiAgICAgICAgICAg ICAgICAgICAgIDp0ZXh0RG9jdW1lbnQvcmVuYW1lIGAoLEAoZWdsb3QtLVRleHREb2N1bWVudFBv c2l0aW9uUGFyYW1zKQpAQCAtMzIzMCw5ICszMjMzLDcgQEAgZWdsb3QtY29kZS1hY3Rpb25zCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJygicXVpY2tmaXgiICJyZWZhY3Rvci5leHRyYWN0 IiAicmVmYWN0b3IuaW5saW5lIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmFj dG9yLnJld3JpdGUiICJzb3VyY2Uub3JnYW5pemVJbXBvcnRzIikpKQogICAgICB0KSkKLSAgKHVu bGVzcyAob3IgKG5vdCBpbnRlcmFjdGl2ZSkKLSAgICAgICAgICAgICAgKGVnbG90LS1zZXJ2ZXIt Y2FwYWJsZSA6Y29kZUFjdGlvblByb3ZpZGVyKSkKLSAgICAoZWdsb3QtLWVycm9yICJTZXJ2ZXIg Y2FuJ3QgZXhlY3V0ZSBjb2RlIGFjdGlvbnMhIikpCisgIChlZ2xvdC0tc2VydmVyLWNhcGFibGUt b3ItbG9zZSA6Y29kZUFjdGlvblByb3ZpZGVyKQogICAobGV0KiAoKHNlcnZlciAoZWdsb3QtLWN1 cnJlbnQtc2VydmVyLW9yLWxvc2UpKQogICAgICAgICAgKGFjdGlvbnMKICAgICAgICAgICAoanNv bnJwYy1yZXF1ZXN0Ci0tIAoyLjM2LjEud2luZG93cy4xCgo= --000000000000febd5005f537377c Content-Type: application/octet-stream; name="0002-Eglot-implement-inlay-hints-bug-61412.patch" Content-Disposition: attachment; filename="0002-Eglot-implement-inlay-hints-bug-61412.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_leedwtp91 RnJvbSBmZWM1MDhkNmE4Y2FiNzc4NjQ5NjIzZDNiYmIyOTU0MTYyYjRjNjI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sm89QzM9QTNvPTIwVD1DMz1BMXZvcmE/PSA8 am9hb3Rhdm9yYUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjEgRmViIDIwMjMgMTQ6MTQ6MDUgKzAw MDAKU3ViamVjdDogW1BBVENIIDIvMl0gRWdsb3Q6IGltcGxlbWVudCBpbmxheSBoaW50cyAoYnVn IzYxNDEyKQoKVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBwcm9iYWJseSB0b28gc2xvdyBmb3IgY29t cGxleCBzaXR1YXRpb25zIGFuZApiaWcgZmlsZXMgc2luY2UgaXQgcmVxdWVzdHMgaW5sYXkgaGlu dHMgZm9yIHRoZSB3aG9sZSBidWZmZXIgYXMgd2hpY2gKY2FuIHBvc3NpYmx5IG1lYW4gYSBsYXJn ZSBhbW91bnQgb2YgZGF0YS4KCkEgYmV0dGVyIGltcGxlbWVudGF0aW9uIHdpbGwgYmUgc21hcnQg ZW5vdWdoIHRvIG9ubHkgcmVxdWVzdCBpbmxheQpoaW50cyBmb3IgdGhlIHZpc2libGUgcGFydHMg b2YgdGhlIGJ1ZmZlci4KCiogbGlzcC9wcm9nbW9kZXMvZWdsb3QuZWwgKGVnbG90LS1sc3AtaW50 ZXJmYWNlLWFsaXN0KTogRGVmaW5lCklubGF5SGludC4KKGVnbG90LWNsaWVudC1jYXBhYmlsaXRp ZXMpOiBBbm5vdW5jZSAnaW5sYXlIaW50JyBjYXBhYmlsaXR5LgooZWdsb3QtaWdub3JlZC1zZXJ2 ZXItY2FwYWJpbGl0aWVzKTogQWRkIDppbmxheUhpbnRQcm92aWRlci4KKGVnbG90LS1kb2N1bWVu dC1jaGFuZ2VkLWhvb2spOiBOZXcgaGVscGVyIGhvb2suCihlZ2xvdC0tYWZ0ZXItY2hhbmdlKTog VXNlIGl0LgooZWdsb3QtaW5sYXktaGludC1mYWNlLCBlZ2xvdC10eXBlLWhpbnQtZmFjZSkKKGVn bG90LXBhcmFtZXRlci1oaW50LWZhY2UpOiBOZXcgZmFjZXMuCihlZ2xvdC0tdXBkYXRlLWhpbnRz LCBlZ2xvdC0tcGFpbnQtaGludCk6IE5ldyBoZWxwZXJzLgooZWdsb3QtaW5sYXktaGludHMtbW9k ZSk6IE5ldyBtaW5vciBtb2RlLgotLS0KIGxpc3AvcHJvZ21vZGVzL2VnbG90LmVsIHwgNzEgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21v ZGVzL2VnbG90LmVsIGIvbGlzcC9wcm9nbW9kZXMvZWdsb3QuZWwKaW5kZXggNDVmMDBkYWNhMWYu LmMwYzVkZWEyOWJlIDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbAorKysgYi9s aXNwL3Byb2dtb2Rlcy9lZ2xvdC5lbApAQCAtNDgzLDcgKzQ4Myw5IEBAIGVnbG90LS1leGVjdXRh YmxlLWZpbmQKICAgICAgIChWZXJzaW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyICg6dXJpIDp2 ZXJzaW9uKSAoKSkKICAgICAgIChXb3JrRG9uZVByb2dyZXNzICg6a2luZCkgKDp0aXRsZSA6bWVz c2FnZSA6cGVyY2VudGFnZSA6Y2FuY2VsbGFibGUpKQogICAgICAgKFdvcmtzcGFjZUVkaXQgKCkg KDpjaGFuZ2VzIDpkb2N1bWVudENoYW5nZXMpKQotICAgICAgKFdvcmtzcGFjZVN5bWJvbCAoOm5h bWUgOmtpbmQpICg6Y29udGFpbmVyTmFtZSA6bG9jYXRpb24gOmRhdGEpKSkKKyAgICAgIChXb3Jr c3BhY2VTeW1ib2wgKDpuYW1lIDpraW5kKSAoOmNvbnRhaW5lck5hbWUgOmxvY2F0aW9uIDpkYXRh KSkKKyAgICAgIChJbmxheUhpbnQgKDpwb3NpdGlvbiA6bGFiZWwpICg6a2luZCA6dGV4dEVkaXRz IDp0b29sdGlwIDpwYWRkaW5nTGVmdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDpwYWRkaW5nUmlnaHQgOmRhdGEpKSkKICAgICAiQWxpc3QgKElOVEVSRkFDRS1O QU1FIC4gSU5URVJGQUNFKSBvZiBrbm93biBleHRlcm5hbCBMU1AgaW50ZXJmYWNlcy4KIAogSU5U RVJGQUNFLU5BTUUgaXMgYSBzeW1ib2wgZGVzaWduYXRlZCBieSB0aGUgc3BlYyBhcwpAQCAtODAz LDYgKzgwNSw3IEBAIGVnbG90LWNsaWVudC1jYXBhYmlsaXRpZXMKICAgICAgICAgICAgICA6Zm9y bWF0dGluZyAgICAgICAgIGAoOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFsc2UpCiAgICAg ICAgICAgICAgOnJhbmdlRm9ybWF0dGluZyAgICBgKDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29u LWZhbHNlKQogICAgICAgICAgICAgIDpyZW5hbWUgICAgICAgICAgICAgYCg6ZHluYW1pY1JlZ2lz dHJhdGlvbiA6anNvbi1mYWxzZSkKKyAgICAgICAgICAgICA6aW5sYXlIaW50ICAgICAgICAgIGAo OmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFsc2UpCiAgICAgICAgICAgICAgOnB1Ymxpc2hE aWFnbm9zdGljcyAobGlzdCA6cmVsYXRlZEluZm9ybWF0aW9uIDpqc29uLWZhbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBUT0RPOiBXZSBjYW4gc3VwcG9ydCA6 Y29kZURlc2NyaXB0aW9uIGFmdGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7OyBhZGRpbmcgYW4gYXBwcm9wcmlhdGUgVUkgdG8KQEAgLTE2MjUsNyArMTYyOCw4IEBA IGVnbG90LWlnbm9yZWQtc2VydmVyLWNhcGFiaWxpdGllcwogICAgICAgICAgIChjb25zdCA6dGFn ICJIaWdobGlnaHQgbGlua3MgaW4gZG9jdW1lbnQiIDpkb2N1bWVudExpbmtQcm92aWRlcikKICAg ICAgICAgICAoY29uc3QgOnRhZyAiRGVjb3JhdGUgY29sb3IgcmVmZXJlbmNlcyIgOmNvbG9yUHJv dmlkZXIpCiAgICAgICAgICAgKGNvbnN0IDp0YWcgIkZvbGQgcmVnaW9ucyBvZiBidWZmZXIiIDpm b2xkaW5nUmFuZ2VQcm92aWRlcikKLSAgICAgICAgICAoY29uc3QgOnRhZyAiRXhlY3V0ZSBjdXN0 b20gY29tbWFuZHMiIDpleGVjdXRlQ29tbWFuZFByb3ZpZGVyKSkpCisgICAgICAgICAgKGNvbnN0 IDp0YWcgIkV4ZWN1dGUgY3VzdG9tIGNvbW1hbmRzIiA6ZXhlY3V0ZUNvbW1hbmRQcm92aWRlcikK KyAgICAgICAgICAoY29uc3QgOnRhZyAiSW5sYXkgaGludHMiIDppbmxheUhpbnRQcm92aWRlcikp KQogCiAoZGVmdW4gZWdsb3QtLXNlcnZlci1jYXBhYmxlICgmcmVzdCBmZWF0cykKICAgIkRldGVy bWluZSBpZiBjdXJyZW50IHNlcnZlciBpcyBjYXBhYmxlIG9mIEZFQVRTLiIKQEAgLTIyOTEsNiAr MjI5NSw5IEBAIGVnbG90LS1iZWZvcmUtY2hhbmdlCiAgICAgICAgICAgICAoLGVuZCAuICwoY29w eS1tYXJrZXIgZW5kIHQpKSkKICAgICAgICAgICBlZ2xvdC0tcmVjZW50LWNoYW5nZXMpKSkKIAor KGRlZnZhciBlZ2xvdC0tZG9jdW1lbnQtY2hhbmdlZC1ob29rICcoZWdsb3QtLXNpZ25hbC10ZXh0 RG9jdW1lbnQvZGlkQ2hhbmdlKQorICAiSW50ZXJuYWwgaG9vayBmb3IgZG9pbmcgdGhpbmdzIHdo ZW4gdGhlIGRvY3VtZW50IGNoYW5nZXMuIikKKwogKGRlZnVuIGVnbG90LS1hZnRlci1jaGFuZ2Ug KGJlZyBlbmQgcHJlLWNoYW5nZS1sZW5ndGgpCiAgICJIb29rIG9udG8gYGFmdGVyLWNoYW5nZS1m dW5jdGlvbnMnLgogUmVjb3JkcyBCRUcsIEVORCBhbmQgUFJFLUNIQU5HRS1MRU5HVEggbG9jYWxs eS4iCkBAIC0yMzMxLDcgKzIzMzgsNyBAQCBlZ2xvdC0tYWZ0ZXItY2hhbmdlCiAgICAgICAgICAg IGVnbG90LXNlbmQtY2hhbmdlcy1pZGxlLXRpbWUKICAgICAgICAgICAgbmlsIChsYW1iZGEgKCkg KGVnbG90LS13aGVuLWxpdmUtYnVmZmVyIGJ1ZgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICh3aGVuIGVnbG90LS1tYW5hZ2VkLW1vZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChlZ2xvdC0tc2lnbmFsLXRleHREb2N1bWVudC9kaWRDaGFuZ2UpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocnVuLWhvb2tzICdlZ2xvdC0tZG9jdW1lbnQtY2hhbmdlZC1ob29rKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgZWdsb3QtLWNoYW5nZS1pZGxlLXRp bWVyIG5pbCkpKSkpKSkpCiAKIDs7IEhBQ0shIExhdW5jaGluZyBhIGRlZmVycmVkIHN5bmMgcmVx dWVzdCB3aXRoIG91dHN0YW5kaW5nIGNoYW5nZXMgaXMgYQpAQCAtMzQ1OSw2ICszNDY2LDY0IEBA IGVnbG90LWxpc3QtY29ubmVjdGlvbnMKICAgICAgIChyZXZlcnQtYnVmZmVyKQogICAgICAgKHBv cC10by1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpKSkKIAorDAorOzs7IElubGF5IGhpbnRzCiso ZGVmZmFjZSBlZ2xvdC1pbmxheS1oaW50LWZhY2UgJygodCAoOmhlaWdodCAwLjggOmluaGVyaXQg c2hhZG93KSkpCisgICJGYWNlIHVzZWQgZm9yIGlubGF5IGhpbnQgb3ZlcmxheXMuIikKKworKGRl ZmZhY2UgZWdsb3QtdHlwZS1oaW50LWZhY2UgJygodCAoOmluaGVyaXQgZWdsb3QtaW5sYXktaGlu dC1mYWNlKSkpCisgICJGYWNlIHVzZWQgZm9yIHR5cGUgaW5sYXkgaGludCBvdmVybGF5cy4iKQor CisoZGVmZmFjZSBlZ2xvdC1wYXJhbWV0ZXItaGludC1mYWNlICcoKHQgKDppbmhlcml0IGVnbG90 LWlubGF5LWhpbnQtZmFjZSkpKQorICAiRmFjZSB1c2VkIGZvciBwYXJhbWV0ZXIgaW5sYXkgaGlu dCBvdmVybGF5cy4iKQorCisoZGVmdW4gZWdsb3QtLXBhaW50LWhpbnQgKGhpbnQpCisgICJQYWlu dCBpbmxheSBoaW50IEhJTlQgaW4gY3VycmVudCBidWZmZXIuIgorICAoZWdsb3QtLWRiaW5kICgo SW5sYXlIaW50KSBwb3NpdGlvbiBraW5kIGxhYmVsIHBhZGRpbmdMZWZ0IHBhZGRpbmdSaWdodCkg aGludAorICAgIChnb3RvLWNoYXIgKGVnbG90LS1sc3AtcG9zaXRpb24tdG8tcG9pbnQgcG9zaXRp b24pKQorICAgIChsZXQgKChvdiAobWFrZS1vdmVybGF5IChwb2ludCkgKHBvaW50KSkpKQorICAg ICAgKG92ZXJsYXktcHV0IG92ICdiZWZvcmUtc3RyaW5nCisgICAgICAgICAgICAgICAgICAgKHBy b3BlcnRpemUKKyAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAoYW5kIHBhZGRpbmdMZWZ0ICIg IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZ3AgbGFiZWwpIGxhYmVs IChwbGlzdC1nZXQgbGFiZWwgOnZhbHVlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo YW5kIHBhZGRpbmdSaWdodCAiICIpKQorICAgICAgICAgICAgICAgICAgICAnZmFjZSAocGNhc2Ug a2luZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxICdlZ2xvdC10eXBlLWhpbnQtZmFj ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMiAnZWdsb3QtcGFyYW1ldGVyLWhpbnQt ZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXyAnZWdsb3QtaW5sYXktaGludC1m YWNlKSkpKQorICAgICAgKG92ZXJsYXktcHV0IG92ICdlZ2xvdC0taW5sYXktaGludCB0KSkpKQor CisoZGVmdW4gZWdsb3QtLXVwZGF0ZS1oaW50cyAoKQorICAiUmVxdWVzdCBpbmxheSBoaW50cyBm b3IgY3VycmVudCBidWZmZXIgYW5kIHBhaW50IHRoZW0uIgorICAoaW50ZXJhY3RpdmUpCisgIChl Z2xvdC0tc2VydmVyLWNhcGFibGUtb3ItbG9zZSA6aW5sYXlIaW50UHJvdmlkZXIpCisgIChsZXQg KChidWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgKGpzb25ycGMtYXN5bmMtcmVxdWVzdAor ICAgICAgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKQorICAgICAgOnRleHREb2N1bWVu dC9pbmxheUhpbnQKKyAgICAgIChsaXN0IDp0ZXh0RG9jdW1lbnQgKGVnbG90LS1UZXh0RG9jdW1l bnRJZGVudGlmaWVyKQorICAgICAgICAgICAgOnJhbmdlIChsaXN0IDpzdGFydCAoZWdsb3QtLXBv cy10by1sc3AtcG9zaXRpb24gKHBvaW50LW1pbikpCisgICAgICAgICAgICAgICAgICAgICAgICAg OmVuZCAoZWdsb3QtLXBvcy10by1sc3AtcG9zaXRpb24gKHBvaW50LW1heCkpKSkKKyAgICAgIDpz dWNjZXNzLWZuIChsYW1iZGEgKGhpbnRzKQorICAgICAgICAgICAgICAgICAgICAod2l0aC1jdXJy ZW50LWJ1ZmZlciBidWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLXdpZGVuaW5n CisgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUtb3ZlcmxheXMgbmlsIG5pbCAnZWdsb3Qt LWlubGF5LWhpbnQgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgKG1hcGMgIydlZ2xvdC0tcGFp bnQtaGludCBoaW50cykpKSkKKyAgICAgIDpkZWZlcnJlZCB0KSkpCisKKyhkZWZpbmUtbWlub3It bW9kZSBlZ2xvdC1pbmxheS1oaW50cy1tb2RlCisgICJNaW5vciBtb2RlIGFubm90YXRpbmcgYnVm ZmVyIHdpdGggTFNQIGlubGF5IGhpbnRzLiIKKyAgOmdsb2JhbCBuaWwKKyAgKGlmIGVnbG90LWlu bGF5LWhpbnRzLW1vZGUKKyAgICAgIChpZiAobm90IGVnbG90LS1tYW5hZ2VkLW1vZGUpCisgICAg ICAgICAgKGVnbG90LS1lcnJvciAiQ2FuJ3QgdHVybiBvbiBgZWdsb3QtaW5sYXktaGludHMnIG1v ZGUuIikKKyAgICAgICAgKGFkZC1ob29rICdlZ2xvdC0tZG9jdW1lbnQtY2hhbmdlZC1ob29rCisg ICAgICAgICAgICAgICAgICAnZWdsb3QtLXVwZGF0ZS1oaW50cyBuaWwgdCkKKyAgICAgICAgKGVn bG90LS11cGRhdGUtaGludHMpKQorICAgIChyZW1vdmUtaG9vayAnZWdsb3QtLWRvY3VtZW50LWNo YW5nZWQtaG9vaworICAgICAgICAgICAgICAgICAnZWdsb3QtLXVwZGF0ZS1oaW50cyB0KQorICAg IChyZW1vdmUtb3ZlcmxheXMgbmlsIG5pbCAnZWdsb3QtLWlubGF5LWhpbnQgdCkpKQorCiAMCiA7 OzsgSGFja3MKIDs7OwotLSAKMi4zNi4xLndpbmRvd3MuMQoK --000000000000febd5005f537377c--