GNU logs - #73452, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Federico Beffa <federico.beffa@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 24 Sep 2024 14:16:02 +0000
Resent-Message-ID: <handler.73452.B.172718735416120 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 73452 <at> debbugs.gnu.org
Cc: joaotavora@HIDDEN
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.172718735416120
          (code B ref -1); Tue, 24 Sep 2024 14:16:02 +0000
Received: (at submit) by debbugs.gnu.org; 24 Sep 2024 14:15:54 +0000
Received: from localhost ([127.0.0.1]:46549 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1st6KW-0004Bp-AO
	for submit <at> debbugs.gnu.org; Tue, 24 Sep 2024 10:15:54 -0400
Received: from lists.gnu.org ([209.51.188.17]:53174)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <federico.beffa@HIDDEN>) id 1st68d-0003NE-Gg
 for submit <at> debbugs.gnu.org; Tue, 24 Sep 2024 10:03:36 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <federico.beffa@HIDDEN>)
 id 1st68A-0005yg-ND
 for bug-gnu-emacs@HIDDEN; Tue, 24 Sep 2024 10:03:09 -0400
Received: from smtp-8faf.mail.infomaniak.ch ([2001:1600:7:10::8faf])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <federico.beffa@HIDDEN>)
 id 1st687-0006Qd-7o
 for bug-gnu-emacs@HIDDEN; Tue, 24 Sep 2024 10:03:05 -0400
Received: from smtp-3-0001.mail.infomaniak.ch (smtp-3-0001.mail.infomaniak.ch
 [10.4.36.108])
 by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4XChQJ4rKwzHQS;
 Tue, 24 Sep 2024 16:02:48 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fbengineering.ch;
 s=20220212; t=1727186568;
 bh=YnxCpTTfYppCvdkHwsDiFeqcE444BjatAnAfsKK5B8k=;
 h=Date:To:Cc:From:Subject:From;
 b=AGlYcIuaWe6R7WsxKHmOT2UYqKNy39ON4qLs2Z+J7zkf9KDAi2B7q5pJlYKVMjImK
 VtrEuIPZKcWOc7IoEWLKavnvFRrOppfTgprnQ+d703UMUGVCq+Q+rI0IWGu9US1V9B
 F8BF7lpZc0GnnmMlz/MCkhxH+mRVVSiR+WGe8Lrw=
Received: from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA
 id 4XChQH5bYgz5cw; Tue, 24 Sep 2024 16:02:47 +0200 (CEST)
Content-Type: multipart/alternative;
 boundary="------------fedihT3DIuo5Gw0kObL8KlVZ"
Message-ID: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
Date: Tue, 24 Sep 2024 16:02:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
From: Federico Beffa <federico.beffa@HIDDEN>
Autocrypt: addr=federico.beffa@HIDDEN; keydata=
 xsBNBFgAga0BCADIY78eSt/I4vGPo/UMBMQhcM8O2tptvlN0B2F6Z8sDAOwgWnQpd0x2AVM8
 I39VymnmbEQfWf/Y0U9XJqrmOz91NreTsZUsR9BSZy1fVIUbdoQTI8m8CGpjDBnloX+cQwwD
 PDS2RL2/a0rZciXUMunVvM/o2zLHUIyO/GeoqKN5mU4d4nZYPHtBOBpmzfvfyZLM1uyu/flb
 KGFqW0uKmS8MQWhyUdvIsiAU/Aofuf0dVp2C/Z5w01Vyw38fReZ20onxbabSjLrOT+K6vzrV
 /9P+6435Ptoek+5BoQX50f+cMYq4d2rE2PBenDy4xAloL/qOUj6XqwW9ZWAkLLiqYiJdABEB
 AAHNMEZlZGVyaWNvIEJlZmZhIDxmZWRlcmljby5iZWZmYUBmYmVuZ2luZWVyaW5nLmNoPsLA
 kQQTAQgAOxYhBDd0gCSID9P/3KLJq1iTbg4vG1pMBQJjXqXsAhsDBQsJCAcCAiICBhUKCQgL
 AgQWAgMBAh4HAheAAAoJEFiTbg4vG1pMv1sH/1K4SI0+6tmpPLGwCUqpeUk5AScmqntZ41rT
 9W8XF1QgZVsgSqFrVfQLpW+MC5VoMJJmdcPLD8gLLBhViavw8LrQzO8jO90US70MnUnniFB7
 c0YabBsd2cGa25a+LOZ/f1lZCtHvlq46Trxcn9DM+pfexlM6AyN8+FGGIstSwXC96AOfr41U
 lSQqaLbD9ecf+VzPvOPozKLOpQaakuUFLeo9KB1VmK3UxWU3JQ96fJ+Aw8PXJLJFH8bSK/an
 OCzZPPFvICGUcqBKIDirUKzRyiCHQaUx9MGVtZEWsrZeA1ZE0sNa3wIfG0DQ9tUnPHXAzxoP
 Lbni2AHCs0m43Rp7DDLOwE0EWACBrQEIAMsqA2oLmPYfdE1uhsOfDDrt72Lx7BADKqhzk8Nq
 ny45ISPe03MjOkVUwuClceuZDGByZ/u7fslcWvAzcjcLDO4thWj1a9s1PUmH5evVBfFQNaHa
 Z5gdRdIuE+O/Vkv+pbbcR1zckBSj4PCZCBF2rQgukxNaeRB4rTAC0VgozLRK/OgDV8nyCA/0
 Lx1GAFoUj+KgIIUI0mPQzPuCMJHBoOVoWQit9qANTQN089P/6r8dj/3AVPnUmnpENul1gtxa
 2k7ck9F9hH7ePD3djL2tYtQcH720eqrV70KdgSp7Q/N4Kujw7b9RgNmo2cUuTkRfiqR+grp7
 XR9BD552haU8a5EAEQEAAcLAXwQYAQIACQUCWACBrQIbDAAKCRBYk24OLxtaTBr5B/4vmneq
 SuuMYmWcurgk2sv+WKky81Q0z4OkXfwBVz+H6wdpmij0de6ZMbFqD6GjtsAMmEXKdQtbElcr
 yibSXJSCcF6zd534yOdkC0ptOH09thCE8SoZQ6QLQ+wkcqqCBQSNujN+TNG3L7a50p91wLg1
 AXYXF+cOJ2bND8p3g5RjxGk4EEjTHycc9BMA1SRvAZsJG7WB63q1oKPwdVPy7FnNvV6HOR1D
 Jeh4Fkmq0cJCoQ6AOQ4AhVBRXv74XT+rnjVblT3ISSEyneF4IfsztGboIzac7M/2czPyFWuI
 D9mjiEcRbormFsV0Pz3huJ4AMlmCb/96ZKPAWQYVa7EmPy5Q
X-Infomaniak-Routing: alpha
Received-SPF: pass client-ip=2001:1600:7:10::8faf;
 envelope-from=federico.beffa@HIDDEN;
 helo=smtp-8faf.mail.infomaniak.ch
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 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, HTML_MESSAGE=0.001,
 RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Mailman-Approved-At: Tue, 24 Sep 2024 10:15:50 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

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

Hi,

This is not a bug report, but rather an inquiry or feature request. I'm 
wondering if there are any plans for eglot to support code lens.

These provide quite useful functionality. For example, the Haskell 
language server allows putting expressions (typically for test or 
documentation) in comments with a special syntax. The server then offers 
to execute the code (in VSCode appearing as a small button above the 
expression). When pressed, it inserts the result in a comment just 
below. Here's an example after execution:

```haskell
addOne :: (Num a) => a -> a
addOne x = x + 1

-- >>> addOne 2
-- 3
```

Thanks for the great work!
Fede
--------------fedihT3DIuo5Gw0kObL8KlVZ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html data-lt-installed="true">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    Hi,<br>
    <br>
    This is not a bug report, but rather an inquiry or feature request.
    I'm wondering if there are any plans for eglot to support code lens.<br>
    <br>
    These provide quite useful functionality. For example, the Haskell
    language server allows putting expressions (typically for test or
    documentation) in comments with a special syntax. The server then
    offers to execute the code (in VSCode appearing as a small button
    above the expression). When pressed, it inserts the result in a
    comment just below. Here's an example after execution:<br>
    <br>
    ```haskell<br>
    addOne :: (Num a) =&gt; a -&gt; a<br>
    addOne x = x + 1<br>
    <br>
    -- &gt;&gt;&gt; addOne 2<br>
    -- 3<br>
    ```<br>
    <br>
    Thanks for the great work!<br>
    Fede<br>
  </body>
  <lt-container></lt-container>
</html>

--------------fedihT3DIuo5Gw0kObL8KlVZ--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Federico Beffa <federico.beffa@HIDDEN>
Subject: bug#73452: Acknowledgement (Code lens support in eglot)
Message-ID: <handler.73452.B.172718735416120.ack <at> debbugs.gnu.org>
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
X-Gnu-PR-Message: ack 73452
X-Gnu-PR-Package: emacs
Reply-To: 73452 <at> debbugs.gnu.org
Date: Tue, 24 Sep 2024 14:16:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 73452 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
73452: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D73452
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 24 Sep 2024 14:28:01 +0000
Resent-Message-ID: <handler.73452.B.172718806518419 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Federico Beffa <federico.beffa@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.172718806518419
          (code B ref -1); Tue, 24 Sep 2024 14:28:01 +0000
Received: (at submit) by debbugs.gnu.org; 24 Sep 2024 14:27:45 +0000
Received: from localhost ([127.0.0.1]:46566 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1st6W0-0004n1-Ra
	for submit <at> debbugs.gnu.org; Tue, 24 Sep 2024 10:27:45 -0400
Received: from lists.gnu.org ([209.51.188.17]:42772)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1st6Vy-0004mt-FE
 for submit <at> debbugs.gnu.org; Tue, 24 Sep 2024 10:27:43 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <joaotavora@HIDDEN>)
 id 1st6VZ-00081W-7X
 for bug-gnu-emacs@HIDDEN; Tue, 24 Sep 2024 10:27:17 -0400
Received: from mail-oo1-xc29.google.com ([2607:f8b0:4864:20::c29])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <joaotavora@HIDDEN>)
 id 1st6VS-00032G-Gw
 for bug-gnu-emacs@HIDDEN; Tue, 24 Sep 2024 10:27:11 -0400
Received: by mail-oo1-xc29.google.com with SMTP id
 006d021491bc7-5dc93fa5639so2833869eaf.1
 for <bug-gnu-emacs@HIDDEN>; Tue, 24 Sep 2024 07:27:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1727188026; x=1727792826; darn=gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=3zvjF0E+93mx5QiuSSWqq4DMubsfzxakUVUxQvlnzMM=;
 b=X47WtpGLriQHlUMbJPo3bqVEtvkXPBLEpQrmslzCqmU+tsvaK/xJgUs8tVWNNCzQB0
 R9qDx32oqYMUR6y4A8hlwOWCHc2d2Sl4k/gwR7odH6Ai/0oLq+nEkbNJ4HtcniAJOtbC
 FkRuPCFumS92aZcH4hiuk0yjbBW+wdJuUbEIES+dhua5uGyfFqDRfEtL/H37cIlttiid
 3II4+WhE74bZsEd4qIlw4YY33EnWt10tbg0C3XrlT54KfWL0A77v1o6y8pZd9xydQnQb
 ND5omO1rEL1MFWpuyokz7jX6dZXevzmWs9s3Wf28EF0Dlek5G995caCpR9Ox5Bv5c/Rb
 garQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1727188026; x=1727792826;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=3zvjF0E+93mx5QiuSSWqq4DMubsfzxakUVUxQvlnzMM=;
 b=dH1hGy4pZhNOlWKZIlKo9f0s/wZsv6yR1iooUW4dQxjwpr9i6TjltrwCQE3TJYp1OT
 6leYQbpvD5xOlvJ4+UiYgl6fIcI4dRJ5WQ/UB3/8vXqxG96VxF0CgFwR64uAgobGJaUC
 gOOq0DvqDkTMkw5BOMij6lSrF871RAXd3v0eTFUvLuHVLWQxMMNz96hgQ+IB+HvT3CPV
 XGobLi8WSJCCkc0FevKF5rxwB4HJNBWJVs5e57JWK6uv8FxQBRr+JpwyiX0up0TIZ1do
 E8AGToZYu44/lhDhitljINDVo2Cr6wIkWYVzsVj84ZWRr4zHqlvGPWNh+pizpKVmSKiD
 scfQ==
X-Gm-Message-State: AOJu0YxS7ITdRNRmckOhyz1MFL/m5zOX27hOHImLT4e1J4sWYsgEwpNF
 AaJ/hQbq71rpC12GKvr5lf1SKyxF4ON2GT7p3ZBzG6LHW8+BCmeSLgnLATRSue3sAfFJi+G6CAJ
 druqLqxDQ9Xoorv5re4y148scata7igwr
X-Google-Smtp-Source: AGHT+IGRTYfNO732z7/JIDyDW9kbKxbzru6Lg6csOolxCxG/uhLATTGgNIRckAYvAWZJr15jofH0n7wkzjqHo4iP7Ss=
X-Received: by 2002:a05:6820:1ac5:b0:5e5:b768:465 with SMTP id
 006d021491bc7-5e5b768067dmr2023376eaf.7.1727188026528; Tue, 24 Sep 2024
 07:27:06 -0700 (PDT)
MIME-Version: 1.0
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
In-Reply-To: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Tue, 24 Sep 2024 15:26:55 +0100
Message-ID: <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=2607:f8b0:4864:20::c29;
 envelope-from=joaotavora@HIDDEN; helo=mail-oo1-xc29.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

There is a discussion thread about this in the Eglot GitHub downstream trac=
ker.

https://github.com/joaotavora/eglot/pull/71

The current consensus there is that the feature is not _that_ useful,
and that a clean implementation isn't really trivial since there is no
underlying Emcas support structure (like there is for documentation,
cross-referencing, diagnostics, snippets, etc)

Jo=C3=A3o

On Tue, Sep 24, 2024 at 3:02=E2=80=AFPM Federico Beffa
<federico.beffa@HIDDEN> wrote:
>
> Hi,
>
> This is not a bug report, but rather an inquiry or feature request. I'm w=
ondering if there are any plans for eglot to support code lens.
>
> These provide quite useful functionality. For example, the Haskell langua=
ge server allows putting expressions (typically for test or documentation) =
in comments with a special syntax. The server then offers to execute the co=
de (in VSCode appearing as a small button above the expression). When press=
ed, it inserts the result in a comment just below. Here's an example after =
execution:
>
> ```haskell
> addOne :: (Num a) =3D> a -> a
> addOne x =3D x + 1
>
> -- >>> addOne 2
> -- 3
> ```
>
> Thanks for the great work!
> Fede



--=20
Jo=C3=A3o T=C3=A1vora




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 24 Sep 2024 16:05:01 +0000
Resent-Message-ID: <handler.73452.B73452.172719385112544 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.172719385112544
          (code B ref 73452); Tue, 24 Sep 2024 16:05:01 +0000
Received: (at 73452) by debbugs.gnu.org; 24 Sep 2024 16:04:11 +0000
Received: from localhost ([127.0.0.1]:51646 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1st81K-0003GE-Ip
	for submit <at> debbugs.gnu.org; Tue, 24 Sep 2024 12:04:11 -0400
Received: from eggs.gnu.org ([209.51.188.92]:50138)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1st81H-0003Fm-S4
 for 73452 <at> debbugs.gnu.org; Tue, 24 Sep 2024 12:04:08 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1st7lu-0006a4-Sq; Tue, 24 Sep 2024 11:48:14 -0400
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=pN4jrDV3LLj6Zgl0mJR11gm7n/DwkFijLSSGG8IpWH4=; b=sCuJS0nKROl8ubv+d8XF
 9654LOBsPZc5NSmOpt4V+1GrifTW/deW5ISUX5cwSZInnR9uH3N0UfwhxNUSRn8GceGPqsupjmVAz
 d7CRYuPUWhKxm+SFdgGp2745fsXdzjFZHC5P4XKn0XL7x/pRnFkHOXcwqdXhIRGnRvnJGjP03pD+B
 jYiDTdWpCobBkhhy8JGBlWuI26mMLMCojgdmjGWlsn6FCMiVTKfkEnY0YxkNg3o6avLtxk+HCTFRB
 49HmNnW7TW58cVzrU4MyS9eq8o0SAjE4TIDHdwCF3N6WVMDVybjcVbiKiVKe0jHD1Tkble7pFqQed
 dKZuKd2M18HRMg==;
Date: Tue, 24 Sep 2024 18:48:11 +0300
Message-Id: <86v7ylcatg.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 (message from =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= on Tue, 24 Sep 2024 15:26:55
 +0100)
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: 73452 <at> debbugs.gnu.org
> From: João Távora <joaotavora@HIDDEN>
> Date: Tue, 24 Sep 2024 15:26:55 +0100
> 
> There is a discussion thread about this in the Eglot GitHub downstream tracker.
> 
> https://github.com/joaotavora/eglot/pull/71
> 
> The current consensus there is that the feature is not _that_ useful,
> and that a clean implementation isn't really trivial since there is no
> underlying Emcas support structure (like there is for documentation,
> cross-referencing, diagnostics, snippets, etc)

What infrastructure would be needed?

Perhaps you or someone would like to describe the missing
infrastructure, and we could then at least add that to TODO.  And
maybe someone would even like to work on that.

Thanks.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 24 Sep 2024 21:02:02 +0000
Resent-Message-ID: <handler.73452.B73452.172721166729356 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.172721166729356
          (code B ref 73452); Tue, 24 Sep 2024 21:02:02 +0000
Received: (at 73452) by debbugs.gnu.org; 24 Sep 2024 21:01:07 +0000
Received: from localhost ([127.0.0.1]:39560 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1stCeh-0007dP-9n
	for submit <at> debbugs.gnu.org; Tue, 24 Sep 2024 17:01:07 -0400
Received: from mail-oi1-f176.google.com ([209.85.167.176]:43043)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1stCef-0007cZ-HL
 for 73452 <at> debbugs.gnu.org; Tue, 24 Sep 2024 17:01:06 -0400
Received: by mail-oi1-f176.google.com with SMTP id
 5614622812f47-3e06b72f3e7so132279b6e.0
 for <73452 <at> debbugs.gnu.org>; Tue, 24 Sep 2024 14:00:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1727211575; x=1727816375; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=nbyiVT5XvM+v170Z1KLZn3i5CFguDc9QrQNr6t9HzpE=;
 b=l7J6gRGNqUprvklW1Cq+XIxvqdHf9tKGZXNDLWT0ar0TlFSZvMwYwRtARLqA7SAV60
 vuxmAaNNtiaiu2eQUkDRDkCEWldcT5T6RFitVMX7EQaTTaHn8VUtnkdewor5AU9kZ4xb
 X27ZiSTL6SM8+LpBWhlNWpzZKrOe23Q0LkAgsu/+EAn/1rdr6C50pi4VqaKASIqHSuXi
 dtE50JZACe3YpeYpuSMJAMXkobkL5e7cJQ5G21Cr5oCkfxxxLGRc8B5w7KfGBx/1NqX/
 SVght/rvxifw+1RrZ0Oana+r0cfPB2rHn+qD2vpConF57aaP21GjRUQMLJFMivSUmD4O
 HO6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1727211575; x=1727816375;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=nbyiVT5XvM+v170Z1KLZn3i5CFguDc9QrQNr6t9HzpE=;
 b=FwpsdKmw2J16skc7xKzkM3P4vEAtzOGSi0unDBlyPYNPt3R8Wh3YusL/IF1Ly6y3LD
 UK7aHH3fCEHlqF2lLh4Q/8jJ1vF1ZMLgkbKOz2XLPN935O7KFQpBesjD4yLbWzA1hiva
 dN1PwH476m0LVKX5cbZX4UC7K6HeaX04ZWPOfJTQX6k+KNA0WR0fWaCwdr9k4iWeWpje
 Eo6Yb3i0sYBg+bGLYzynrnphAbWTAtaKJ9yIJSsNoKCLEK8vXD7pO3zeuqns+EDrft/U
 aIkebZOEW+aBRAoALwFvS2BcJDMvhSHVlPJvyrc6gUSoRuDaoCd1GCCigbpwCYTQPVj4
 BrYQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCVnWGrWXRNT6cGt9Eixm5vU9QVcaQE1QVBbZrdNZWMHHrwb4BLA4kaBhH+kdhiAy2bauZkPig==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yx93L0ggngU02sNPHbwOc7vD2Ov+NtHGbkE8dv7j8mgBh1vxeJX
 y7uZo3nX4roo8VkMtYuebITKj6H1NaRXlnlarZSMgj6LuyJkfIs95i7BN5JiXWVfuYUiqxHEnnb
 291WCAg+7gAnzFPIgHXaOwhTbgPxzJg==
X-Google-Smtp-Source: AGHT+IGzh2HpZsbcempvGol8etvnyjWT4c50W5vMMjGEBgWQQUGJ/bZwAg1Va5+W0lHtH+xPgpXEM4K4bNZMcti8UP8=
X-Received: by 2002:a05:6808:2018:b0:3e0:41ce:e95e with SMTP id
 5614622812f47-3e29220c245mr2147742b6e.2.1727211574711; Tue, 24 Sep 2024
 13:59:34 -0700 (PDT)
MIME-Version: 1.0
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
In-Reply-To: <86v7ylcatg.fsf@HIDDEN>
From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Tue, 24 Sep 2024 22:01:02 +0100
Message-ID: <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Tue, Sep 24, 2024 at 4:48=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote:
>
> > Cc: 73452 <at> debbugs.gnu.org
> > From: Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN>
> > Date: Tue, 24 Sep 2024 15:26:55 +0100
> >
> > There is a discussion thread about this in the Eglot GitHub downstream =
tracker.
> >
> > https://github.com/joaotavora/eglot/pull/71
> >
> > The current consensus there is that the feature is not _that_ useful,
> > and that a clean implementation isn't really trivial since there is no
> > underlying Emcas support structure (like there is for documentation,
> > cross-referencing, diagnostics, snippets, etc)
>
> What infrastructure would be needed?

It's not easy to describe, you'd have to be very familiar with how
code lens work on VSCode and Visual Studio (I'm not).  It's a cross
between Flymake and Eglot's custom inlay hints.

The lower-level infrastructure (buttons, overlays, jit-lock-register) exist=
s
and is probably enough for a decent experience (though there are
the typical annoying flaws with overlays and jit-lock-register).  The probl=
em
is knowing how to tie this together in an sensible and robust infrastructur=
e
that Eglot (or other providers) can plug into.  An abstraction that will mo=
del
something presumably more useful and practical than what is already
available through other existing Emacs means (vc-* commands, M-x compile,
Eglot code actions).  Read the last parts of the discussion I linked
to if you're
interested.

Jo=C3=A3o




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 25 Sep 2024 07:52:02 +0000
Resent-Message-ID: <handler.73452.B.172725068311071 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Federico Beffa <federico.beffa@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.172725068311071
          (code B ref -1); Wed, 25 Sep 2024 07:52:02 +0000
Received: (at submit) by debbugs.gnu.org; 25 Sep 2024 07:51:23 +0000
Received: from localhost ([127.0.0.1]:43972 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1stMnz-0002sU-4z
	for submit <at> debbugs.gnu.org; Wed, 25 Sep 2024 03:51:23 -0400
Received: from lists.gnu.org ([209.51.188.17]:48202)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1stMnx-0002sJ-OF
 for submit <at> debbugs.gnu.org; Wed, 25 Sep 2024 03:51:22 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <joaotavora@HIDDEN>)
 id 1stMnY-0002X0-0j
 for bug-gnu-emacs@HIDDEN; Wed, 25 Sep 2024 03:50:56 -0400
Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <joaotavora@HIDDEN>)
 id 1stMnW-0002k9-KG
 for bug-gnu-emacs@HIDDEN; Wed, 25 Sep 2024 03:50:55 -0400
Received: by mail-oi1-x231.google.com with SMTP id
 5614622812f47-3e049185cfeso2398036b6e.1
 for <bug-gnu-emacs@HIDDEN>; Wed, 25 Sep 2024 00:50:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1727250653; x=1727855453; darn=gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=Bvs9vqhjyasEchl+GYtinKkWirFZQ9n2gkDp7szGluY=;
 b=fjmEuxIj3PzrjhxzaeYqvngYP+faHkySKitT65HKyWH2oO2VVFJyKWZZnLxX603Eug
 o30LdElcwa8htRyN8LxR4ddVBC0ufip+Pjqgxgpj2V9bKofC8wfEYou6B/8qLSAav0J5
 U/IURobftH2ctgORMCRPXjW7teQ6O7QZacOKRw4bu9FwOvDNaOGDwATNnd6miMAnUYAn
 BgxLyNtCuFcOHkytGECeDQLRoVJZA737v654GJFhpU/xi7Z7B2s8juimQHT5MOVRR/Fl
 U+btxl+SbNO7Xv3hQ6Hh6wrsQC0z5xMMGgj5Hg0Y/qX0l59xYmxi205H8BlbwWGrm+6e
 C+oA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1727250653; x=1727855453;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=Bvs9vqhjyasEchl+GYtinKkWirFZQ9n2gkDp7szGluY=;
 b=Y7PUNsHLXAkM7v+FRTF9bU3kU7dKXsxp3yxAumyEMHZGfshsJxtZ6tiaPuMELK8bMd
 pSwq0oVvKKDygY4Ui99bDsMmCdCgUjtb2kBprmk4iUGBXK/LHg2lywsHQ0YE2aQ5cqaO
 0uXaQDTgJuYYkDcrGyVRsqHJ9+VEpMyjBQ88QrBRzFAZHaMvK5GujqLVllQEUQfXKfD0
 3SFi+tqqBPERz/heuax1DLy3PygCx5r6zphffEwDvNEGrUh1lTRJnMnxnQAQENZ399+V
 gpNLekNRZkGJQvJGsuI6ccZ7ud1qGlP2cc2FqjRLOCl1RsOi9/mgrehaLVRGiPsff87d
 w/fQ==
X-Gm-Message-State: AOJu0YwL8NL8jbkdZ+g4uecQKcDYugEOJ5m1Q42gyw+Q6SX9rqddSQFG
 y+6nczDJhD1UxS+9ppY/4HB6ZF1/mfu5hL0bb7iJNUBeefiGetO3D7Vog68ouQ+YTfJ8CMzBeTw
 eRDheUgU7tJbjgceR4gUhunkrp4mx0A==
X-Google-Smtp-Source: AGHT+IEQSBfu6qWWCTk7QOIvusssOiZe3clceGwWlKkjFdocLy7huY4bCnCWMhSMCA7hZFeX7dmQJA43CSZxXF/kh50=
X-Received: by 2002:a05:6808:3997:b0:3e2:9e00:5be7 with SMTP id
 5614622812f47-3e29e005f20mr512348b6e.22.1727250653220; Wed, 25 Sep 2024
 00:50:53 -0700 (PDT)
MIME-Version: 1.0
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <3e29b263-c6c9-415b-acae-5e42e00280df@HIDDEN>
In-Reply-To: <3e29b263-c6c9-415b-acae-5e42e00280df@HIDDEN>
From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Wed, 25 Sep 2024 08:50:42 +0100
Message-ID: <CALDnm51dPhS_pDNpkG0sPY-4ZkzHLnu5Edyaa2TqzkPbpN-pQw@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=2607:f8b0:4864:20::231;
 envelope-from=joaotavora@HIDDEN; helo=mail-oi1-x231.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

On Wed, Sep 25, 2024 at 8:04=E2=80=AFAM Federico Beffa
<federico.beffa@HIDDEN> wrote:
>
> That's an interesting conclusion, but it's up to the servers to decide ho=
w to provide the information. Imagine if a web browser implementor would de=
cide not to support an HTML tag used by a non-negligible percentage of web =
pages.

Alright, I imagined it. And I don't see the resemblance to this use case.

I'm not opposed to anyone implementing it, I just don't see a very interest=
ing
cost/benefit.   And neither do some of the people who originally proposed i=
t,
apparently.

Jo=C3=A3o




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Federico Beffa <federico.beffa@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 25 Sep 2024 09:39:02 +0000
Resent-Message-ID: <handler.73452.B.17272571029644 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.17272571029644
          (code B ref -1); Wed, 25 Sep 2024 09:39:02 +0000
Received: (at submit) by debbugs.gnu.org; 25 Sep 2024 09:38:22 +0000
Received: from localhost ([127.0.0.1]:51170 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1stOTU-0002VO-6n
	for submit <at> debbugs.gnu.org; Wed, 25 Sep 2024 05:38:22 -0400
Received: from lists.gnu.org ([209.51.188.17]:51288)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <federico.beffa@HIDDEN>) id 1stM5B-0008Og-2x
 for submit <at> debbugs.gnu.org; Wed, 25 Sep 2024 03:05:06 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <federico.beffa@HIDDEN>)
 id 1stM4k-0002xa-2C
 for bug-gnu-emacs@HIDDEN; Wed, 25 Sep 2024 03:04:38 -0400
Received: from smtp-190a.mail.infomaniak.ch ([185.125.25.10])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <federico.beffa@HIDDEN>)
 id 1stM4g-0003ea-77
 for bug-gnu-emacs@HIDDEN; Wed, 25 Sep 2024 03:04:37 -0400
Received: from smtp-4-0001.mail.infomaniak.ch (smtp-4-0001.mail.infomaniak.ch
 [10.7.10.108])
 by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4XD7586xLbztqZ;
 Wed, 25 Sep 2024 09:04:28 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fbengineering.ch;
 s=20220212; t=1727247868;
 bh=MoLfM3M+bnYX2eTUHFfDSZygZo+5QAk3Wt//wn7Al5Y=;
 h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
 b=DM6wy7YlxdaDmK8cHwQCTAOH5kAf1PksdxVZZKHU2ZuOBpF+SKxSfTicMf6ndVrRI
 Wf5fhfoPXhHtuKL+cjcZ1ewapURe7YNeVSv8a3OYqW9gzk+gD1w02IcfMOfzBEtFD2
 3D1v/+Pf7MC1B00C0slmdTmOIDduogi7N3DoLGFw=
Received: from unknown by smtp-4-0001.mail.infomaniak.ch (Postfix) with ESMTPA
 id 4XD75839Srz3Wx; Wed, 25 Sep 2024 09:04:28 +0200 (CEST)
Content-Type: multipart/alternative;
 boundary="------------h5MEkR6oGGFmxnJZPnzSZ8uy"
Message-ID: <3e29b263-c6c9-415b-acae-5e42e00280df@HIDDEN>
Date: Wed, 25 Sep 2024 09:04:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
From: Federico Beffa <federico.beffa@HIDDEN>
Autocrypt: addr=federico.beffa@HIDDEN; keydata=
 xsBNBFgAga0BCADIY78eSt/I4vGPo/UMBMQhcM8O2tptvlN0B2F6Z8sDAOwgWnQpd0x2AVM8
 I39VymnmbEQfWf/Y0U9XJqrmOz91NreTsZUsR9BSZy1fVIUbdoQTI8m8CGpjDBnloX+cQwwD
 PDS2RL2/a0rZciXUMunVvM/o2zLHUIyO/GeoqKN5mU4d4nZYPHtBOBpmzfvfyZLM1uyu/flb
 KGFqW0uKmS8MQWhyUdvIsiAU/Aofuf0dVp2C/Z5w01Vyw38fReZ20onxbabSjLrOT+K6vzrV
 /9P+6435Ptoek+5BoQX50f+cMYq4d2rE2PBenDy4xAloL/qOUj6XqwW9ZWAkLLiqYiJdABEB
 AAHNMEZlZGVyaWNvIEJlZmZhIDxmZWRlcmljby5iZWZmYUBmYmVuZ2luZWVyaW5nLmNoPsLA
 kQQTAQgAOxYhBDd0gCSID9P/3KLJq1iTbg4vG1pMBQJjXqXsAhsDBQsJCAcCAiICBhUKCQgL
 AgQWAgMBAh4HAheAAAoJEFiTbg4vG1pMv1sH/1K4SI0+6tmpPLGwCUqpeUk5AScmqntZ41rT
 9W8XF1QgZVsgSqFrVfQLpW+MC5VoMJJmdcPLD8gLLBhViavw8LrQzO8jO90US70MnUnniFB7
 c0YabBsd2cGa25a+LOZ/f1lZCtHvlq46Trxcn9DM+pfexlM6AyN8+FGGIstSwXC96AOfr41U
 lSQqaLbD9ecf+VzPvOPozKLOpQaakuUFLeo9KB1VmK3UxWU3JQ96fJ+Aw8PXJLJFH8bSK/an
 OCzZPPFvICGUcqBKIDirUKzRyiCHQaUx9MGVtZEWsrZeA1ZE0sNa3wIfG0DQ9tUnPHXAzxoP
 Lbni2AHCs0m43Rp7DDLOwE0EWACBrQEIAMsqA2oLmPYfdE1uhsOfDDrt72Lx7BADKqhzk8Nq
 ny45ISPe03MjOkVUwuClceuZDGByZ/u7fslcWvAzcjcLDO4thWj1a9s1PUmH5evVBfFQNaHa
 Z5gdRdIuE+O/Vkv+pbbcR1zckBSj4PCZCBF2rQgukxNaeRB4rTAC0VgozLRK/OgDV8nyCA/0
 Lx1GAFoUj+KgIIUI0mPQzPuCMJHBoOVoWQit9qANTQN089P/6r8dj/3AVPnUmnpENul1gtxa
 2k7ck9F9hH7ePD3djL2tYtQcH720eqrV70KdgSp7Q/N4Kujw7b9RgNmo2cUuTkRfiqR+grp7
 XR9BD552haU8a5EAEQEAAcLAXwQYAQIACQUCWACBrQIbDAAKCRBYk24OLxtaTBr5B/4vmneq
 SuuMYmWcurgk2sv+WKky81Q0z4OkXfwBVz+H6wdpmij0de6ZMbFqD6GjtsAMmEXKdQtbElcr
 yibSXJSCcF6zd534yOdkC0ptOH09thCE8SoZQ6QLQ+wkcqqCBQSNujN+TNG3L7a50p91wLg1
 AXYXF+cOJ2bND8p3g5RjxGk4EEjTHycc9BMA1SRvAZsJG7WB63q1oKPwdVPy7FnNvV6HOR1D
 Jeh4Fkmq0cJCoQ6AOQ4AhVBRXv74XT+rnjVblT3ISSEyneF4IfsztGboIzac7M/2czPyFWuI
 D9mjiEcRbormFsV0Pz3huJ4AMlmCb/96ZKPAWQYVa7EmPy5Q
In-Reply-To: <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
X-Infomaniak-Routing: alpha
Received-SPF: pass client-ip=185.125.25.10;
 envelope-from=federico.beffa@HIDDEN;
 helo=smtp-190a.mail.infomaniak.ch
X-Spam_score_int: -36
X-Spam_score: -3.7
X-Spam_bar: ---
X-Spam_report: (-3.7 / 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, HTML_MESSAGE=0.001,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.898,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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.4 (-)
X-Mailman-Approved-At: Wed, 25 Sep 2024 05:38:19 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

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

That's an interesting conclusion, but it's up to the servers to decide 
how to provide the information. Imagine if a web browser implementor 
would decide not to support an HTML tag used by a non-negligible 
percentage of web pages.


On 24/09/2024 16:26, João Távora wrote:
> There is a discussion thread about this in the Eglot GitHub downstream tracker.
>
> https://github.com/joaotavora/eglot/pull/71
>
> The current consensus there is that the feature is not _that_ useful,...

--------------h5MEkR6oGGFmxnJZPnzSZ8uy
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html data-lt-installed="true">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    <div class="moz-cite-prefix">That's an interesting conclusion, but
      it's up to the servers to decide how to provide the information.
      Imagine if a web browser implementor would decide not to support
      an HTML tag used by a non-negligible percentage of web pages.<br>
      <br>
      <br>
      On 24/09/2024 16:26, João Távora wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN">
      <pre wrap="" class="moz-quote-pre">There is a discussion thread about this in the Eglot GitHub downstream tracker.

<a class="moz-txt-link-freetext" href="https://github.com/joaotavora/eglot/pull/71">https://github.com/joaotavora/eglot/pull/71</a>

The current consensus there is that the feature is not _that_ useful,...
</pre>
    </blockquote>
    <br>
  </body>
  <lt-container></lt-container>
</html>

--------------h5MEkR6oGGFmxnJZPnzSZ8uy--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 25 Sep 2024 11:32:02 +0000
Resent-Message-ID: <handler.73452.B73452.17272639188675 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.17272639188675
          (code B ref 73452); Wed, 25 Sep 2024 11:32:02 +0000
Received: (at 73452) by debbugs.gnu.org; 25 Sep 2024 11:31:58 +0000
Received: from localhost ([127.0.0.1]:57628 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1stQFR-0002Fr-NO
	for submit <at> debbugs.gnu.org; Wed, 25 Sep 2024 07:31:58 -0400
Received: from eggs.gnu.org ([209.51.188.92]:51722)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1stQFP-0002Fa-6A
 for 73452 <at> debbugs.gnu.org; Wed, 25 Sep 2024 07:31:55 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1stQEs-0006Q1-VF; Wed, 25 Sep 2024 07:31:22 -0400
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=N9VBf4/gPXy0gvf1+snbTLwUPD0FVh62GOIARubOzmg=; b=N+SBcXZtcCx0Dd5nzs9G
 QWja9ayuKsE4S60nb0mbvSUrTCAtGb6u7manrZJzs2c6NWKtA9FoXWepkhPGtG0CjzEoNznE9KJki
 tPzPDBKyOF8mA2Y3UbpiqrLai3fqTOs1nKaR2O5BSrXsiifhHprNg5Q7HS65pH4wHWBZ+2JGzu8/9
 U9aBPSNu8Yb3tLtrIEFdd5tqmwexhyv1zt6bB09TCWO3rPVWqO3uXfcbUuSn+O1FADuvNa3Hyqa5h
 W+yV4RFlzjt8ndhNsVVgdmgSp26xGD3xm6U+XKRQGfAiCTQ+t6Eb7XBMJn1FMwnyuGmwpHQxetGS2
 aUdL29rpH7MC6Q==;
Date: Wed, 25 Sep 2024 14:31:20 +0300
Message-Id: <86ikukc6lz.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 (message from =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= on Tue, 24 Sep 2024 22:01:02
 +0100)
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: João Távora <joaotavora@HIDDEN>
> Date: Tue, 24 Sep 2024 22:01:02 +0100
> Cc: federico.beffa@HIDDEN, 73452 <at> debbugs.gnu.org
> 
> > What infrastructure would be needed?
> 
> It's not easy to describe, you'd have to be very familiar with how
> code lens work on VSCode and Visual Studio (I'm not).  It's a cross
> between Flymake and Eglot's custom inlay hints.
> 
> The lower-level infrastructure (buttons, overlays, jit-lock-register) exists
> and is probably enough for a decent experience (though there are
> the typical annoying flaws with overlays and jit-lock-register).  The problem
> is knowing how to tie this together in an sensible and robust infrastructure
> that Eglot (or other providers) can plug into.  An abstraction that will model
> something presumably more useful and practical than what is already
> available through other existing Emacs means (vc-* commands, M-x compile,
> Eglot code actions).

Then maybe someone could describe such an abstraction.

> Read the last parts of the discussion I linked to if you're
> interested.

I did, but couldn't answer my questions, because the discussion relies
heavily on VSCode features with which I'm not familiar and whose
descriptions I saw didn't clarify the issue.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 26 Sep 2024 08:12:01 +0000
Resent-Message-ID: <handler.73452.B73452.172733827016148 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.172733827016148
          (code B ref 73452); Thu, 26 Sep 2024 08:12:01 +0000
Received: (at 73452) by debbugs.gnu.org; 26 Sep 2024 08:11:10 +0000
Received: from localhost ([127.0.0.1]:52275 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1stjaf-0004CO-WB
	for submit <at> debbugs.gnu.org; Thu, 26 Sep 2024 04:11:10 -0400
Received: from mail-oa1-f41.google.com ([209.85.160.41]:45056)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1stjae-0004C7-7A
 for 73452 <at> debbugs.gnu.org; Thu, 26 Sep 2024 04:11:08 -0400
Received: by mail-oa1-f41.google.com with SMTP id
 586e51a60fabf-27c90f1e968so427286fac.2
 for <73452 <at> debbugs.gnu.org>; Thu, 26 Sep 2024 01:10:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1727338175; x=1727942975; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=gDw3Kf63sCA8fE/0EbOnmUBlJJS8h6MXTWzMcjcwAPI=;
 b=Poyp62ZS/ScjtqPvR2D0jA1FDrB5w4bOQDVNOakcz011bSjZ/gFmOEIuCwBpq1hcx1
 4XQVWhZGi4ZtEo9dwRWM7hZ+Qu1KBzXK1KRfMgfLosuPfIP3bBZ6ql3jGi7WfPOpz3Cb
 ShfLONhNHR4KDKj47TpTcCrZBam+G90PldcXWrlf468Vo2IQVV+ynoNkOFKlFbF2QdMD
 PKWKa8N0f5YC9dzaWs6MTJ3eUrBaJUEKdxZgJMdX6x52TdX3r8tL/xWlVqx5Nv8JqqRg
 THZrJwC2iZ4uLC0ohBBJlznfYr1jwTC0Hp6U8chUA3c2zh9r9cq+ozJe6qpjHhVowgO0
 vVbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1727338175; x=1727942975;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=gDw3Kf63sCA8fE/0EbOnmUBlJJS8h6MXTWzMcjcwAPI=;
 b=fQwu+zPsTWeDPTLGj5mE6CaWnj5bH+DdFobusBWqnd66zaWRQJrgqtPx8gja7lBsTq
 Y+Mcf/pbCIl5A+4RhMY5l0B65D+JZ9XFzvXzPq9mAf576ne8h/G2x/aEqvJVa7FtsWBW
 LFxG08fb4WV49tbOU5NQZo38LnGGj8h/Pc3Zq8BnYys3vHQ13AlfB3rugwFUEiqeIHGd
 Ul2MFBWu+QwRUx+n1jwutl+Yn7XvIrNZ0yJKbcSWjdzXScutkpz5YfRQHKYSersJrPG3
 9FycSEV3tFfTNj8pxyS8Z9ZO4mpiDyirUw47Am1Mh30A2X4cGExUA3XejwZNl5z6Bg5e
 Vzsg==
X-Forwarded-Encrypted: i=1;
 AJvYcCVI1fcFEoI2NOXoDYBid6964sRTlQpd573qdQetxpspy5WItWwB+RH193r7V8FkZJA2VAmbsw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxqvzYna/FcRmLcjYDKW6f/70kPmGjE/kQQhsUbDIurnXW++bi2
 AVS6RkOzxH8GFtc/HwyjhMOFacvZBL2asbRflZbqZoMFsYo6yOxdoB944NuXKCm51k6afyNJik/
 VSFNKGy+aZsdpT+3buJBxq3BBe5JAVg==
X-Google-Smtp-Source: AGHT+IG9qbljVPwsDPes/GWzffciBU9kZOhq0WjM7aikiKzPcvM2CDKGqRigr0dSD2yYuE7/KAoUqqahAmnQWwDmOqU=
X-Received: by 2002:a05:6871:28a8:b0:277:f16a:97e8 with SMTP id
 586e51a60fabf-286e1600470mr5922584fac.38.1727338175525; Thu, 26 Sep 2024
 01:09:35 -0700 (PDT)
MIME-Version: 1.0
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN>
In-Reply-To: <86ikukc6lz.fsf@HIDDEN>
From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Thu, 26 Sep 2024 09:09:24 +0100
Message-ID: <CALDnm502SfssD7HyjxEjG9co00tc1WR_tyyZAqcaMk0JWe1EFA@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Wed, Sep 25, 2024 at 12:31=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote=
:

> Then maybe someone could describe such an abstraction.

Maybe.

> > Read the last parts of the discussion I linked to if you're
> > interested.
>
> I did, but couldn't answer my questions, because the discussion relies
> heavily on VSCode features with which I'm not familiar and whose
> descriptions I saw didn't clarify the issue.

Yes, that's part of the problem.  This LSP feature is a VSCode/VStudio MS
UI thing, and I also don't know those things well.  The few times I open
these apps I get turned off by all the clutter.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Federico Beffa <federico.beffa@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 26 Sep 2024 15:36:01 +0000
Resent-Message-ID: <handler.73452.B73452.17273649612520 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.17273649612520
          (code B ref 73452); Thu, 26 Sep 2024 15:36:01 +0000
Received: (at 73452) by debbugs.gnu.org; 26 Sep 2024 15:36:01 +0000
Received: from localhost ([127.0.0.1]:40768 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1stqXA-0000eV-82
	for submit <at> debbugs.gnu.org; Thu, 26 Sep 2024 11:36:01 -0400
Received: from smtp-42aa.mail.infomaniak.ch ([84.16.66.170]:58449)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <federico.beffa@HIDDEN>) id 1stqX6-0000e3-PH
 for 73452 <at> debbugs.gnu.org; Thu, 26 Sep 2024 11:35:58 -0400
Received: from smtp-4-0001.mail.infomaniak.ch (smtp-4-0001.mail.infomaniak.ch
 [10.7.10.108])
 by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4XDyNC0TMnz1Cxq;
 Thu, 26 Sep 2024 17:35:23 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fbengineering.ch;
 s=20220212; t=1727364922;
 bh=ag0DM+5mmcEyRQ+J+EQJyX/3/uS820S72RjR8HSVio0=;
 h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
 b=Gkol7AOGOKArS8ZstdzQTKFUjAGX0fVHlQkJWuSm5ti+cHgpWGrYQPR1fFMOGZjD7
 S1IqZNgSgZYMwM72l5VYrO6QjGdxdiFaNKJWl+sjbvLuTdgHAj0NhHZ2P2757u3Aw9
 176v7JMqzXwlsalha7L5reCh/QZ+TVXGN5scQIrs=
Received: from unknown by smtp-4-0001.mail.infomaniak.ch (Postfix) with ESMTPA
 id 4XDyN96Y2Vz7bl; Thu, 26 Sep 2024 17:35:21 +0200 (CEST)
Content-Type: multipart/alternative;
 boundary="------------E2YQdam07zWoY2oLH0Kns2dW"
Message-ID: <402b37ee-8f2a-4c44-8861-be9054ed5255@HIDDEN>
Date: Thu, 26 Sep 2024 17:35:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN>
 <CALDnm502SfssD7HyjxEjG9co00tc1WR_tyyZAqcaMk0JWe1EFA@HIDDEN>
From: Federico Beffa <federico.beffa@HIDDEN>
Autocrypt: addr=federico.beffa@HIDDEN; keydata=
 xsBNBFgAga0BCADIY78eSt/I4vGPo/UMBMQhcM8O2tptvlN0B2F6Z8sDAOwgWnQpd0x2AVM8
 I39VymnmbEQfWf/Y0U9XJqrmOz91NreTsZUsR9BSZy1fVIUbdoQTI8m8CGpjDBnloX+cQwwD
 PDS2RL2/a0rZciXUMunVvM/o2zLHUIyO/GeoqKN5mU4d4nZYPHtBOBpmzfvfyZLM1uyu/flb
 KGFqW0uKmS8MQWhyUdvIsiAU/Aofuf0dVp2C/Z5w01Vyw38fReZ20onxbabSjLrOT+K6vzrV
 /9P+6435Ptoek+5BoQX50f+cMYq4d2rE2PBenDy4xAloL/qOUj6XqwW9ZWAkLLiqYiJdABEB
 AAHNMEZlZGVyaWNvIEJlZmZhIDxmZWRlcmljby5iZWZmYUBmYmVuZ2luZWVyaW5nLmNoPsLA
 kQQTAQgAOxYhBDd0gCSID9P/3KLJq1iTbg4vG1pMBQJjXqXsAhsDBQsJCAcCAiICBhUKCQgL
 AgQWAgMBAh4HAheAAAoJEFiTbg4vG1pMv1sH/1K4SI0+6tmpPLGwCUqpeUk5AScmqntZ41rT
 9W8XF1QgZVsgSqFrVfQLpW+MC5VoMJJmdcPLD8gLLBhViavw8LrQzO8jO90US70MnUnniFB7
 c0YabBsd2cGa25a+LOZ/f1lZCtHvlq46Trxcn9DM+pfexlM6AyN8+FGGIstSwXC96AOfr41U
 lSQqaLbD9ecf+VzPvOPozKLOpQaakuUFLeo9KB1VmK3UxWU3JQ96fJ+Aw8PXJLJFH8bSK/an
 OCzZPPFvICGUcqBKIDirUKzRyiCHQaUx9MGVtZEWsrZeA1ZE0sNa3wIfG0DQ9tUnPHXAzxoP
 Lbni2AHCs0m43Rp7DDLOwE0EWACBrQEIAMsqA2oLmPYfdE1uhsOfDDrt72Lx7BADKqhzk8Nq
 ny45ISPe03MjOkVUwuClceuZDGByZ/u7fslcWvAzcjcLDO4thWj1a9s1PUmH5evVBfFQNaHa
 Z5gdRdIuE+O/Vkv+pbbcR1zckBSj4PCZCBF2rQgukxNaeRB4rTAC0VgozLRK/OgDV8nyCA/0
 Lx1GAFoUj+KgIIUI0mPQzPuCMJHBoOVoWQit9qANTQN089P/6r8dj/3AVPnUmnpENul1gtxa
 2k7ck9F9hH7ePD3djL2tYtQcH720eqrV70KdgSp7Q/N4Kujw7b9RgNmo2cUuTkRfiqR+grp7
 XR9BD552haU8a5EAEQEAAcLAXwQYAQIACQUCWACBrQIbDAAKCRBYk24OLxtaTBr5B/4vmneq
 SuuMYmWcurgk2sv+WKky81Q0z4OkXfwBVz+H6wdpmij0de6ZMbFqD6GjtsAMmEXKdQtbElcr
 yibSXJSCcF6zd534yOdkC0ptOH09thCE8SoZQ6QLQ+wkcqqCBQSNujN+TNG3L7a50p91wLg1
 AXYXF+cOJ2bND8p3g5RjxGk4EEjTHycc9BMA1SRvAZsJG7WB63q1oKPwdVPy7FnNvV6HOR1D
 Jeh4Fkmq0cJCoQ6AOQ4AhVBRXv74XT+rnjVblT3ISSEyneF4IfsztGboIzac7M/2czPyFWuI
 D9mjiEcRbormFsV0Pz3huJ4AMlmCb/96ZKPAWQYVa7EmPy5Q
In-Reply-To: <CALDnm502SfssD7HyjxEjG9co00tc1WR_tyyZAqcaMk0JWe1EFA@HIDDEN>
X-Infomaniak-Routing: alpha
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

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

On 26/09/2024 10:09, João Távora wrote:
> On Wed, Sep 25, 2024 at 12:31 PM Eli Zaretskii<eliz@HIDDEN> wrote:
>
>> Then maybe someone could describe such an abstraction.
> Maybe.

Code lenses are not too different from code actions (see below). A new 
abstraction would make sense only if you plan to reorganize the entire 
`eglot` code. In that case the concept of a "code reviewer" or 
"assistant" could be useful, with functions like
- signal-error
- suggest
- exec-in-comment
- visit
- show-references
- show-type
...

>
>>> Read the last parts of the discussion I linked to if you're
>>> interested.
>> I did, but couldn't answer my questions, because the discussion relies
>> heavily on VSCode features with which I'm not familiar and whose
>> descriptions I saw didn't clarify the issue.
> Yes, that's part of the problem.  This LSP feature is a VSCode/VStudio MS
> UI thing, and I also don't know those things well.  The few times I open
> these apps I get turned off by all the clutter.

I'm not an expert, but my understanding is as follows:

A code lens represents a command that should be shown to users along 
with source code text, like the number of references, a way to run 
tests, etc. It goes like this:

1. The client sends a code lens request.
2. The server replies with commands along with the text to show to the user.
3. When/if the user chooses to run any of them, the client sends the 
request to run it to the server. (As an option it's also possible for 
the client to run the command.)
4. The server executes the command and replies with the change in the 
source code.

So, the main difference between code actions and code lens is the fact 
that the latter should show some text to the user. A few examples from 
the Haskell language server are:

- You can run some code in comments and get the result added. Here is a 
screenshot from VSCode

"Refresh..." is sent by the server. (It's "Execute..." before the first 
execution).

- An "import" lens suggests changing a library import to only import 
used symbols


- Expressions without type annotations get a lens showing the type and, 
if executed, it's added.


You may not like the VSCode UI, but Emacs doesn't have to use exactly 
the same interface. The client decides how to present the code lens 
text, and you may choose to only display it in some circumstances.

Code lenses are part of the core features of LSP since several years and 
are used by many servers. If Emacs ignores them, all those features are 
not available in Emacs. A client can't decide that it prefers to use 
actions instead of lenses. It's the server how decides how to offer the 
functionality.
--------------E2YQdam07zWoY2oLH0Kns2dW
Content-Type: multipart/related;
 boundary="------------eF90FfDIgSPlSDh8xdCUkcH9"

--------------eF90FfDIgSPlSDh8xdCUkcH9
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html data-lt-installed="true">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    <div class="moz-cite-prefix">On 26/09/2024 10:09, João Távora wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CALDnm502SfssD7HyjxEjG9co00tc1WR_tyyZAqcaMk0JWe1EFA@HIDDEN">
      <pre wrap="" class="moz-quote-pre">On Wed, Sep 25, 2024 at 12:31 PM Eli Zaretskii <a class="moz-txt-link-rfc2396E" href="mailto:eliz@HIDDEN">&lt;eliz@HIDDEN&gt;</a> wrote:

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Then maybe someone could describe such an abstraction.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Maybe.</pre>
    </blockquote>
    <br>
    Code lenses are not too different from code actions (see below). A
    new abstraction would make sense only if you plan to reorganize the
    entire `eglot` code. In that case the concept of a "code reviewer"
    or "assistant" could be useful, with functions like<br>
    - signal-error<br>
    - suggest<br>
    - exec-in-comment<br>
    - visit<br>
    - show-references<br>
    - show-type<br>
    ...<br>
    <br>
    <blockquote type="cite"
cite="mid:CALDnm502SfssD7HyjxEjG9co00tc1WR_tyyZAqcaMk0JWe1EFA@HIDDEN">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Read the last parts of the discussion I linked to if you're
interested.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I did, but couldn't answer my questions, because the discussion relies
heavily on VSCode features with which I'm not familiar and whose
descriptions I saw didn't clarify the issue.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Yes, that's part of the problem.  This LSP feature is a VSCode/VStudio MS
UI thing, and I also don't know those things well.  The few times I open
these apps I get turned off by all the clutter.
</pre>
    </blockquote>
    <br>
    I'm not an expert, but my understanding is as follows:<br>
    <br>
    A code lens represents a command that should be shown to users along
    with source code text, like the number of references, a way to run
    tests, etc. It goes like this:<br>
    <br>
    1. The client sends a code lens request.<br>
    2. The server replies with commands along with the text to show to
    the user.<br>
    3. When/if the user chooses to run any of them, the client sends the
    request to run it to the server. (As an option it's also possible
    for the client to run the command.)<br>
    4. The server executes the command and replies with the change in
    the source code.<br>
    <br>
    So, the main difference between code actions and code lens is the
    fact that the latter should show some text to the user. A few
    examples from the Haskell language server are:<br>
    <br>
    - You can run some code in comments and get the result added. Here
    is a screenshot from VSCode<br>
    <img src="cid:part1.kSdXal8w.qnSg3k5u@HIDDEN" alt=""><br>
    "Refresh..." is sent by the server. (It's "Execute..." before the
    first execution).<br>
    <br>
    - An "import" lens suggests changing a library import to only import
    used symbols<br>
    <img src="cid:part2.tHUeeCHj.RH90CPJF@HIDDEN" alt=""><br>
    <br>
    - Expressions without type annotations get a lens showing the type
    and, if executed, it's added.<br>
    <img src="cid:part3.1lOOWG4P.wfylPZ6X@HIDDEN" alt=""><br>
    <br>
    You may not like the VSCode UI, but Emacs doesn't have to use
    exactly the same interface. The client decides how to present the
    code lens text, and you may choose to only display it in some
    circumstances.<br>
    <br>
    Code lenses are part of the core features of LSP since several years
    and are used by many servers. If Emacs ignores them, all those
    features are not available in Emacs. A client can't decide that it
    prefers to use actions instead of lenses. It's the server how
    decides how to offer the functionality.<br>
  </body>
  <lt-container></lt-container>
</html>
--------------eF90FfDIgSPlSDh8xdCUkcH9
Content-Type: image/png; name="4xBEPkgoXUmaIYt5.png"
Content-Disposition: inline; filename="4xBEPkgoXUmaIYt5.png"
Content-Id: <part1.kSdXal8w.qnSg3k5u@HIDDEN>
Content-Transfer-Encoding: base64

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
--------------eF90FfDIgSPlSDh8xdCUkcH9
Content-Type: image/png; name="prAlDPTayQnnVXu0.png"
Content-Disposition: inline; filename="prAlDPTayQnnVXu0.png"
Content-Id: <part2.tHUeeCHj.RH90CPJF@HIDDEN>
Content-Transfer-Encoding: base64

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
ucbTAAAAAElFTkSuQmCC
--------------eF90FfDIgSPlSDh8xdCUkcH9
Content-Type: image/png; name="3cw4R60JKTw4gJ80.png"
Content-Disposition: inline; filename="3cw4R60JKTw4gJ80.png"
Content-Id: <part3.1lOOWG4P.wfylPZ6X@HIDDEN>
Content-Transfer-Encoding: base64

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

--------------eF90FfDIgSPlSDh8xdCUkcH9--

--------------E2YQdam07zWoY2oLH0Kns2dW--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 26 Sep 2024 17:13:01 +0000
Resent-Message-ID: <handler.73452.B73452.172737075527913 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Federico Beffa <federico.beffa@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.172737075527913
          (code B ref 73452); Thu, 26 Sep 2024 17:13:01 +0000
Received: (at 73452) by debbugs.gnu.org; 26 Sep 2024 17:12:35 +0000
Received: from localhost ([127.0.0.1]:45392 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sts2c-0007G6-7v
	for submit <at> debbugs.gnu.org; Thu, 26 Sep 2024 13:12:35 -0400
Received: from mail-ot1-f52.google.com ([209.85.210.52]:54633)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1sts2Z-0007Fj-3H
 for 73452 <at> debbugs.gnu.org; Thu, 26 Sep 2024 13:12:32 -0400
Received: by mail-ot1-f52.google.com with SMTP id
 46e09a7af769-7092dd03223so313677a34.1
 for <73452 <at> debbugs.gnu.org>; Thu, 26 Sep 2024 10:12:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1727370658; x=1727975458; 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=8WD7hpWc2I+9TePq4Na+sepc+s5AfTdat6b9byqjoZ8=;
 b=HZW9Utw7QSSt2v2HsGK9wZKREUWi2SP/Jy5ccpUd1MHr/mxOSuA5ox2Zyn6SgGk9pf
 AuEG27Wl+eVzS+9Mdar2WSugkVhPP8U3ZSO8cBCGgmmI5rtMXXqHDDGTB2m5h7jNI4Nn
 EXX2AiYCu3QVTQMGXctoQsYX2RDNWqPr4JWGeYQT2Z3Lzix1+oFIK+WF/E18KA6hJiuH
 1RocwTNYRsLFDpwQ7FjVwMUs822tXO/hyC6pDeGf5X45XFfDRNRfUn4Q/z5Staq7VoBA
 T/V9COOS7bAwMB+NzxMx8A8uz43TaORAAqbqkpE1EsljHX6F+FxP/R9to9RnS+p2eXe6
 5Ufg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1727370658; x=1727975458;
 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=8WD7hpWc2I+9TePq4Na+sepc+s5AfTdat6b9byqjoZ8=;
 b=FX6HH/6UGPmhcMBL3fBmrI68st9oYEJy3IyFfal08bfWmAmXI6yzx4d1Lt6Ka16uDj
 zyik/nO3WWxxEksEJLrarrQ6uC2/OeL/otU61xfbCnC6UBDPPKLQw69rSttnTITpL0B9
 Rfu5povlcZUfSzIucBRlApEV7AWMwEUm2FT176ZNzb2QY0l0U4nwFLV/cnHmsEChc1vL
 u9cwN8PSmohleGa/2X2hoMl/eoA/FRaKaPNh55S+N2GVWvvUIt/IGHvQ3q1z8Y7XswUn
 vpXIGYXvRwKYiOYhJYkxMQBIMpcWA4KzL25g9vS3Q/b911yl3xy1tnE9zqxNPnzWCyv5
 SrDQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCV0cHa0cKSezKD5mFI9qZn9DnBXhlfpBime7JYyyixCHoKyy6GYDeORgGaUroSuoWc+9KZSfw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yxn3llr4uQYUJf5nYNMjTlbMim0v97+NyFxlsx1ADkJaKNr3wJi
 ZnyflSVO1KbmVft5pY3ZimtZEeFuDK6ebN9Ayvc6Shqkn7V1lp2pUiwDRB8z4uuQ85HS8zssL9K
 IlajOHXMZY1+HWSiRAJZNncCo3m8=
X-Google-Smtp-Source: AGHT+IG+lZyeFe7sxORZkP5R575GsCgH5WpIy4osLECNj5CzWcldNGkIhoxroeHbb8UxPGf9nXVqayDW9J97q+j37pA=
X-Received: by 2002:a05:6830:2b0b:b0:708:b29e:e95 with SMTP id
 46e09a7af769-714fbee0335mr198840a34.20.1727370657927; Thu, 26 Sep 2024
 10:10:57 -0700 (PDT)
MIME-Version: 1.0
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN>
 <CALDnm502SfssD7HyjxEjG9co00tc1WR_tyyZAqcaMk0JWe1EFA@HIDDEN>
 <402b37ee-8f2a-4c44-8861-be9054ed5255@HIDDEN>
In-Reply-To: <402b37ee-8f2a-4c44-8861-be9054ed5255@HIDDEN>
From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Thu, 26 Sep 2024 18:12:25 +0100
Message-ID: <CALDnm50xLe2nArAw7n02EF8gATj7NagpVTXzz2FNern7Fvi0ew@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000761dfd062308d290"
X-Spam-Score: -0.0 (/)
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 (-)

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

On Thu, Sep 26, 2024 at 4:35=E2=80=AFPM Federico Beffa <
federico.beffa@HIDDEN> wrote:

> You may not like the VSCode UI, but Emacs doesn't have to use exactly the
same interface. The client decides how to present the code lens text, and
you may choose to only display it in some circumstances.

Like Eli said: design and _fully_ specify a model of user interaction with
this feature and present it.
Doesn't have to be a funcional prototype, a mockup of some sort will do, as
long as it is specified enough for future implementers to understand edge
cases.

I.e. it's not enough to say "I want this thingy here like VSCode". Think
what happens if text  is inserted before, inside or after, the locus of the
"code lens" annotation (if any).  What happens if the text is deleted. What
conditions, if any, lead to invalidation of the lens's information and what
happens
on said information.  Anticipate the all-too-frequent "this thing flickers
and its
annoying" complaint and how to possibly deal with it. How it should work
(if
at all) in non-GUI Emacs.  All of that is work that needs to be done, you
don't
need to be an Emacs/Eglot wiz.  I personally don't see enough motivation to
do it.  I had for inlay hints, and I had to answer all those questions
before
implementing it.

> Code lenses are part of the core features of LSP since several years and
are used by many servers. If Emacs ignores them, all those features are not
available in Emacs.

From what I was able to gather from other's reports , these features are
already available
to users in one form or another.  Indeed, the examples you show here could
all be done
with code actions.

Jo=C3=A3o

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

<div dir=3D"ltr">On Thu, Sep 26, 2024 at 4:35=E2=80=AFPM Federico Beffa &lt=
;<a href=3D"mailto:federico.beffa@HIDDEN">federico.beffa@fbengine=
ering.ch</a>&gt; wrote:<br><br>&gt; You may not like the VSCode UI, but Ema=
cs doesn&#39;t have to use exactly the same interface. The client decides h=
ow to present the code lens text, and you may choose to only display it in =
some circumstances.<br><br><div>Like Eli said: design and _fully_ specify a=
 model of user interaction with this feature and present it.=C2=A0</div><di=
v>Doesn&#39;t have to be a funcional prototype, a mockup of some sort will =
do, as long as it is specified enough for future implementers to understand=
 edge cases.=C2=A0=C2=A0</div><div><br></div><div>I.e. it&#39;s not enough =
to say &quot;I want this thingy here like VSCode&quot;. Think</div><div>wha=
t happens if text=C2=A0 is inserted before, inside or after,  the locus of =
the=C2=A0</div><div>&quot;code lens&quot; annotation (if any).=C2=A0 What h=
appens if the text is deleted. What=C2=A0</div><div>conditions, if any, lea=
d to invalidation of the lens&#39;s information and what happens</div><div>=
on said information.=C2=A0 Anticipate the all-too-frequent &quot;this thing=
 flickers and its=C2=A0</div><div>annoying&quot; complaint and how to possi=
bly deal with it. How it should work (if=C2=A0</div><div>at all) in non-GUI=
 Emacs.=C2=A0 All of that is work that needs to be done, you don&#39;t=C2=
=A0</div><div>need to be an Emacs/Eglot wiz.=C2=A0 I personally don&#39;t s=
ee enough motivation to=C2=A0</div><div>do it.=C2=A0 I had for inlay hints,=
 and I had to answer all those questions before=C2=A0</div><div>implementin=
g it.<br></div>=C2=A0<br>&gt; Code lenses are part of the core features of =
LSP since several years and are used by many servers. If Emacs ignores them=
, all those features are not available in Emacs.<br><br><div>From what I wa=
s able to gather from other&#39;s reports , these features are already avai=
lable=C2=A0</div><div>to users in one form or another.=C2=A0 Indeed, the ex=
amples you show here could all be done=C2=A0</div><div>with code actions.</=
div><div><br></div><div>Jo=C3=A3o<br></div></div>

--000000000000761dfd062308d290--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Federico Beffa <federico.beffa@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 26 Sep 2024 19:41:02 +0000
Resent-Message-ID: <handler.73452.B73452.17273796201843 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.17273796201843
          (code B ref 73452); Thu, 26 Sep 2024 19:41:02 +0000
Received: (at 73452) by debbugs.gnu.org; 26 Sep 2024 19:40:20 +0000
Received: from localhost ([127.0.0.1]:51756 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1stuLa-0000Ta-Oi
	for submit <at> debbugs.gnu.org; Thu, 26 Sep 2024 15:40:20 -0400
Received: from smtp-42ae.mail.infomaniak.ch ([84.16.66.174]:33169)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <federico.beffa@HIDDEN>) id 1sttyF-0007SK-To
 for 73452 <at> debbugs.gnu.org; Thu, 26 Sep 2024 15:16:13 -0400
Received: from smtp-3-0000.mail.infomaniak.ch (smtp-3-0000.mail.infomaniak.ch
 [10.4.36.107])
 by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4XF3582lbLzVGZ;
 Thu, 26 Sep 2024 21:07:40 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fbengineering.ch;
 s=20220212; t=1727377660;
 bh=tsowFBlnKaE7L+0A8WDGQqyfHL66vZmxb+BsYxSi83w=;
 h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
 b=Nc2QwLHf9cotmaWsF7ybHdQb1FSQVehmNgFlMc7fsb2SQZwq65ZYAnG2oPKHXc3Vb
 iJNkDJjieV7EzxGzlYIZ1fS0a/A2LoYHQInb525aVaq0SpWikL9LtnZf81edU3T3Op
 D2NXQtDZ5mOWsXmqSSsqsEK+FXY858A+N90hHaqc=
Received: from unknown by smtp-3-0000.mail.infomaniak.ch (Postfix) with ESMTPA
 id 4XF3571K3Kz29B; Thu, 26 Sep 2024 21:07:39 +0200 (CEST)
Content-Type: multipart/alternative;
 boundary="------------ADy2TCLe2mMoakWayMhjrvkJ"
Message-ID: <5b9344b1-82f3-4fa7-a42a-b033e374e2c2@HIDDEN>
Date: Thu, 26 Sep 2024 21:07:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN>
 <CALDnm502SfssD7HyjxEjG9co00tc1WR_tyyZAqcaMk0JWe1EFA@HIDDEN>
 <402b37ee-8f2a-4c44-8861-be9054ed5255@HIDDEN>
 <CALDnm50xLe2nArAw7n02EF8gATj7NagpVTXzz2FNern7Fvi0ew@HIDDEN>
From: Federico Beffa <federico.beffa@HIDDEN>
Autocrypt: addr=federico.beffa@HIDDEN; keydata=
 xsBNBFgAga0BCADIY78eSt/I4vGPo/UMBMQhcM8O2tptvlN0B2F6Z8sDAOwgWnQpd0x2AVM8
 I39VymnmbEQfWf/Y0U9XJqrmOz91NreTsZUsR9BSZy1fVIUbdoQTI8m8CGpjDBnloX+cQwwD
 PDS2RL2/a0rZciXUMunVvM/o2zLHUIyO/GeoqKN5mU4d4nZYPHtBOBpmzfvfyZLM1uyu/flb
 KGFqW0uKmS8MQWhyUdvIsiAU/Aofuf0dVp2C/Z5w01Vyw38fReZ20onxbabSjLrOT+K6vzrV
 /9P+6435Ptoek+5BoQX50f+cMYq4d2rE2PBenDy4xAloL/qOUj6XqwW9ZWAkLLiqYiJdABEB
 AAHNMEZlZGVyaWNvIEJlZmZhIDxmZWRlcmljby5iZWZmYUBmYmVuZ2luZWVyaW5nLmNoPsLA
 kQQTAQgAOxYhBDd0gCSID9P/3KLJq1iTbg4vG1pMBQJjXqXsAhsDBQsJCAcCAiICBhUKCQgL
 AgQWAgMBAh4HAheAAAoJEFiTbg4vG1pMv1sH/1K4SI0+6tmpPLGwCUqpeUk5AScmqntZ41rT
 9W8XF1QgZVsgSqFrVfQLpW+MC5VoMJJmdcPLD8gLLBhViavw8LrQzO8jO90US70MnUnniFB7
 c0YabBsd2cGa25a+LOZ/f1lZCtHvlq46Trxcn9DM+pfexlM6AyN8+FGGIstSwXC96AOfr41U
 lSQqaLbD9ecf+VzPvOPozKLOpQaakuUFLeo9KB1VmK3UxWU3JQ96fJ+Aw8PXJLJFH8bSK/an
 OCzZPPFvICGUcqBKIDirUKzRyiCHQaUx9MGVtZEWsrZeA1ZE0sNa3wIfG0DQ9tUnPHXAzxoP
 Lbni2AHCs0m43Rp7DDLOwE0EWACBrQEIAMsqA2oLmPYfdE1uhsOfDDrt72Lx7BADKqhzk8Nq
 ny45ISPe03MjOkVUwuClceuZDGByZ/u7fslcWvAzcjcLDO4thWj1a9s1PUmH5evVBfFQNaHa
 Z5gdRdIuE+O/Vkv+pbbcR1zckBSj4PCZCBF2rQgukxNaeRB4rTAC0VgozLRK/OgDV8nyCA/0
 Lx1GAFoUj+KgIIUI0mPQzPuCMJHBoOVoWQit9qANTQN089P/6r8dj/3AVPnUmnpENul1gtxa
 2k7ck9F9hH7ePD3djL2tYtQcH720eqrV70KdgSp7Q/N4Kujw7b9RgNmo2cUuTkRfiqR+grp7
 XR9BD552haU8a5EAEQEAAcLAXwQYAQIACQUCWACBrQIbDAAKCRBYk24OLxtaTBr5B/4vmneq
 SuuMYmWcurgk2sv+WKky81Q0z4OkXfwBVz+H6wdpmij0de6ZMbFqD6GjtsAMmEXKdQtbElcr
 yibSXJSCcF6zd534yOdkC0ptOH09thCE8SoZQ6QLQ+wkcqqCBQSNujN+TNG3L7a50p91wLg1
 AXYXF+cOJ2bND8p3g5RjxGk4EEjTHycc9BMA1SRvAZsJG7WB63q1oKPwdVPy7FnNvV6HOR1D
 Jeh4Fkmq0cJCoQ6AOQ4AhVBRXv74XT+rnjVblT3ISSEyneF4IfsztGboIzac7M/2czPyFWuI
 D9mjiEcRbormFsV0Pz3huJ4AMlmCb/96ZKPAWQYVa7EmPy5Q
In-Reply-To: <CALDnm50xLe2nArAw7n02EF8gATj7NagpVTXzz2FNern7Fvi0ew@HIDDEN>
X-Infomaniak-Routing: alpha
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

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

On 26/09/2024 19:12, João Távora wrote:
> On Thu, Sep 26, 2024 at 4:35 PM Federico Beffa 
> <federico.beffa@HIDDEN> wrote:
> ...
> Indeed, the examples you show here could all be done
> with code actions.

You are right, but, as already mentioned, many language server 
implementors decided otherwise and that's not going to change because 
Emacs doesn't like code lenses.

Anyway, you made your point and that's fair enough.

--------------ADy2TCLe2mMoakWayMhjrvkJ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html data-lt-installed="true">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body style="padding-bottom: 1px;">
    <div class="moz-cite-prefix">On 26/09/2024 19:12, João Távora wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CALDnm50xLe2nArAw7n02EF8gATj7NagpVTXzz2FNern7Fvi0ew@HIDDEN">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">On Thu, Sep 26, 2024 at 4:35 PM Federico Beffa &lt;<a
          href="mailto:federico.beffa@HIDDEN"
          moz-do-not-send="true" class="moz-txt-link-freetext">federico.beffa@HIDDEN</a>&gt;
        wrote:<br>
        ...<br>
        <div>Indeed, the examples you show here could all be done </div>
        <div>with code actions.</div>
      </div>
    </blockquote>
    <br>
    You are right, but, as already mentioned, many language server
    implementors decided otherwise and that's not going to change
    because Emacs doesn't like code lenses.<br>
    <br>
    Anyway, you made your point and that's fair enough.<br>
    <br>
  </body>
  <lt-container></lt-container>
</html>

--------------ADy2TCLe2mMoakWayMhjrvkJ--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Dmitry Gutov <dmitry@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 26 Sep 2024 23:49:02 +0000
Resent-Message-ID: <handler.73452.B73452.172739448429386 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Federico Beffa <federico.beffa@HIDDEN>, =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.172739448429386
          (code B ref 73452); Thu, 26 Sep 2024 23:49:02 +0000
Received: (at 73452) by debbugs.gnu.org; 26 Sep 2024 23:48:04 +0000
Received: from localhost ([127.0.0.1]:57985 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1styDM-0007dt-7N
	for submit <at> debbugs.gnu.org; Thu, 26 Sep 2024 19:48:04 -0400
Received: from fout-a8-smtp.messagingengine.com ([103.168.172.151]:55561)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1styDJ-0007dG-VA
 for 73452 <at> debbugs.gnu.org; Thu, 26 Sep 2024 19:48:02 -0400
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id F31021380180;
 Thu, 26 Sep 2024 19:47:26 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Thu, 26 Sep 2024 19:47:26 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1727394446;
 x=1727480846; bh=BuavdrlW6Jv/RJIg7H7UD5dORwkKvTMsTOoA1EWY0FI=; b=
 gcONfmTmBMRjHqhbFBz3PN7n54ycwV0Q0JWhU+GLzC4xRdCueWmqplY2macU6ukW
 UdUvdkHT/s99IL0ng0qiJE1SOD/g5bCyKzDc/iMOcs9c21z6eXsmbNk/FkTBR8Sg
 C8TB1submWXLku8d2lzVHDhYopTe8UOJIxRb2jpPxj4xieQQ2OVcjMAx11Ms48Tq
 A8st+++HI+oM6xHpVPto+zIKq2FDGjN3eV5G8oCZgHqtEqvzeiQQ+8CpHEBWRNKc
 M+W9dkqfCb4rnjJI/zvAWGnrFHE1CoSWpsBOHq8T+IZeM6SIfq80QE1IxRqYS4ya
 NXmtbmM5yFE4RV/c96KEEQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727394446; x=
 1727480846; bh=BuavdrlW6Jv/RJIg7H7UD5dORwkKvTMsTOoA1EWY0FI=; b=Y
 s+Rg9WON/FgtLJHLh5ad+Rl4fN8CUrqFicf/kyg/t3NaJ+W1s/+LKAsRbrtt1n+l
 ys3Xm2dIzr4utvS4DcizOkpHGmOoMR/O/JU32wu1xMMVhuUHQDWtz7lrA/8HNtT+
 druGLhe36xEPVyS9X1pJtjKmOlLkqyxh/JEBqa58kkpP7PJ/pu0SbKK4wpdKWJ0X
 a9xzI4J13/KBbxxvXP8jqUP4Fw7kihqyqDxLpH037arlzKXA7ldlP5hN204ePFP3
 wcEnQ6SedWS8TohO8dLNAwuA/Qda0CxGlITpJm96gFpVDvKEMxInrmdvdw5Rn3SU
 qNAfm+Fjl7pNrm1xtLqXg==
X-ME-Sender: <xms:jvL1Zix1b7at_x0Wd2hZfIGqHe0IY-qGRN2GNI8c8c2kmDGqSK6GrQ>
 <xme:jvL1ZuSHQEWitK5YRxdv2IdjqD1-UVAuQgVJPowTvtqwiJdYsrLNqEG1dgFmX2SBT
 9aMtzcooX2H4Fa5t20>
X-ME-Received: <xmr:jvL1ZkUMIWzb2Rutqpc0E_SWJ4jJarUyGYtTew2EQ1M8VrgT3dl9mEFrIEzq8oDphfc>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvddtkedgvdehucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdej
 necuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdrug
 gvvheqnecuggftrfgrthhtvghrnhepteduleejgeehtefgheegjeekueehvdevieekueef
 tddvtdevfefhvdevgedujeehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe
 hmrghilhhfrhhomhepughmihhtrhihsehguhhtohhvrdguvghvpdhnsggprhgtphhtthho
 peegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehfvgguvghrihgtohdrsggvfh
 hfrgesfhgsvghnghhinhgvvghrihhnghdrtghhpdhrtghpthhtohepjhhorghothgrvhho
 rhgrsehgmhgrihhlrdgtohhmpdhrtghpthhtohepjeefgeehvdesuggvsggsuhhgshdrgh
 hnuhdrohhrghdprhgtphhtthhopegvlhhiiiesghhnuhdrohhrgh
X-ME-Proxy: <xmx:jvL1ZoijlyW0xwPZ0XtpbKqANTgYKTIPjy8RUct9rf4ODdlh_y35PA>
 <xmx:jvL1ZkCVICwOtNaycc-rljiZxs17koDucYW6xnVbU391VHa1b6oa0A>
 <xmx:jvL1ZpKo3aeuXYMJGikbLqPSGEbx1wiw96JJHNdxXL4wJRDQr2Ru5Q>
 <xmx:jvL1ZrCDCRTs0gL55t6WlMKHWGnn_tFdGe6-6zxdhjTNqfdAF6jpPw>
 <xmx:jvL1Zn_YZStsR-HDp449SZbuAKIr0lfwY2WQh45zYKRUdyzdMu6-Kj96>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 26 Sep 2024 19:47:24 -0400 (EDT)
Message-ID: <ec96ec0c-3ed3-4fe5-bdbf-82f6743cb45c@HIDDEN>
Date: Fri, 27 Sep 2024 02:47:21 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN>
 <CALDnm502SfssD7HyjxEjG9co00tc1WR_tyyZAqcaMk0JWe1EFA@HIDDEN>
 <402b37ee-8f2a-4c44-8861-be9054ed5255@HIDDEN>
 <CALDnm50xLe2nArAw7n02EF8gATj7NagpVTXzz2FNern7Fvi0ew@HIDDEN>
 <5b9344b1-82f3-4fa7-a42a-b033e374e2c2@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <5b9344b1-82f3-4fa7-a42a-b033e374e2c2@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
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 (-)

Hi!

On 26/09/2024 22:07, Federico Beffa via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> You are right, but, as already mentioned, many language server 
> implementors decided otherwise and that's not going to change because 
> Emacs doesn't like code lenses.

I think the above would be a hasty conclusion: Emacs doesn't like or 
dislike them, but indeed we don't have an existing built-in UI to plug 
that feature in.

lsp-mode implements it with some custom code. Maybe we could do a 
similar thing as the first step for Eglot (someone will need to do the 
work, though), but of course it would be nice to make at least a part of 
the addition reusable.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Dmitry Gutov <dmitry@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 27 Sep 2024 00:22:02 +0000
Resent-Message-ID: <handler.73452.B73452.17273964794201 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>, =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.17273964794201
          (code B ref 73452); Fri, 27 Sep 2024 00:22:02 +0000
Received: (at 73452) by debbugs.gnu.org; 27 Sep 2024 00:21:19 +0000
Received: from localhost ([127.0.0.1]:58222 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1styjW-00015d-CW
	for submit <at> debbugs.gnu.org; Thu, 26 Sep 2024 20:21:19 -0400
Received: from fout-a8-smtp.messagingengine.com ([103.168.172.151]:52347)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1styjT-00015A-ED
 for 73452 <at> debbugs.gnu.org; Thu, 26 Sep 2024 20:21:17 -0400
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfout.phl.internal (Postfix) with ESMTP id 395EA138039F;
 Thu, 26 Sep 2024 20:20:41 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-10.internal (MEProxy); Thu, 26 Sep 2024 20:20:41 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1727396441;
 x=1727482841; bh=z2v3WBw5N8Qt99j2X13a1dKwBdoLgTNDIY6yqAGh8ok=; b=
 SgOkCvfn2DqcZLSw12QoLcxD7vTGRPlQlULn5J8iYJVHhzWSE8bA6rZioSpxmbwN
 AAUKelg0tqNBPZFY3EhBG8QTyrWuPWOJigPjY6m6zk62qo6koayYKIdQbbXEJ/ue
 SYJv/uzLKewOoPuc9bTEdQaXZyAezNQ+/12SeL4GyR+KRqNGofGRtY9eqGKSTU2d
 NNyexRCpf+NjxdrGfgACeUjeB2um1HnmNIYmFHyS0tIFMn6oEdsLtHc9AR0q5Ova
 G0YGiNWVConR5X6E1CVCuU3lM1lnECcwryTmgp5mZTrGiOuThxkGlkPLbAwWhQBM
 Wnl760FwwfsmSUg9W1u9eA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727396441; x=
 1727482841; bh=z2v3WBw5N8Qt99j2X13a1dKwBdoLgTNDIY6yqAGh8ok=; b=l
 n7Gsk/LgJYqh+9FeqDdF9j7Ibtv2UZw5Tr4JWweOy/iwR3/LPWtuQMtU10i25HES
 Xu0J84Ww3L0sWQSsy4vfzQbqP31CxVIo1JTfkzrob/jrecAn5Al1PC+o1X/dQwa5
 mpRN4E7NBiDczPvaMjgG2rkX034bk2FqDays22nLSGyIU5awNJfszkhNLVARPwaj
 Ty/bTXBBfikn+7OyxdmAefZX5uijnfc7SZs86GW9mGlonJokZmjIov45OYov48+h
 mNlfwYzIfE9jjwMadoFNMEPrh7vniLdOliZhZ45tPZ3OPfKgWNaSZP8U5mDq+Yrv
 f9ASsJqBo+WInOv8pRcfw==
X-ME-Sender: <xms:WPr1ZiSmprNmJrxXQYkXbW0ALv-eUXNuXnKkdVnrbP8UHXMkauiNtQ>
 <xme:WPr1ZnwxX-BfdeNyrInq2IbmjJmpAa-ypJUi4IfQudlKo5rr_1DrME-EkdaFtqaAF
 gxJlQGj9BCT-2LM9uY>
X-ME-Received: <xmr:WPr1Zv3RrSzjPB2znq_vgVP4PtuHvTCpDvS_QJ_I6JTGDfcZmfMzdFbvoCInJ4hNU_w>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvddtkedgfeefucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdej
 necuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdrug
 gvvheqnecuggftrfgrthhtvghrnhepieeuteejteefgffghfevffejjeeiteegkeeivefg
 ueeitdelueffudejffekhffhnecuffhomhgrihhnpehgohhoghhlvghsohhurhgtvgdrtg
 homhdptghouggvlhgvnhhsvghsrdhmugenucevlhhushhtvghrufhiiigvpedtnecurfgr
 rhgrmhepmhgrihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvhdpnhgspghrtg
 hpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepvghlihiisehgnhhu
 rdhorhhgpdhrtghpthhtohepjhhorghothgrvhhorhgrsehgmhgrihhlrdgtohhmpdhrtg
 hpthhtohepjeefgeehvdesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopehf
 vgguvghrihgtohdrsggvfhhfrgesfhgsvghnghhinhgvvghrihhnghdrtghh
X-ME-Proxy: <xmx:WPr1ZuAiy3BLoWWmid0RjYpAZSjtxc9rqKoJ8Pbq2AC608I1eDNtMA>
 <xmx:WPr1ZrjdlireMe7bHl0twJ_TnYdpi9yuV-rGsISBKYvhDIiTBz0VbQ>
 <xmx:WPr1ZqpT9iMPmxNMCvmb4rt1_3soQGFfHdvPjgDrQ4aLYNQFhdSRag>
 <xmx:WPr1ZujsYZ6FzResSuMWrr3BbWh5xeQJwGtLhQ3AM9ad5wlrPJoDrg>
 <xmx:Wfr1ZrcwPedDBvYOqfrAaP0wVdJ4_zXShSH1_U0RZ9cKUT8T1N0PE9SH>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 26 Sep 2024 20:20:38 -0400 (EDT)
Message-ID: <d0d685c6-c9a4-41ad-acc5-99827f470b6d@HIDDEN>
Date: Fri, 27 Sep 2024 03:20:35 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <86ikukc6lz.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
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 25/09/2024 14:31, Eli Zaretskii wrote:
>> Read the last parts of the discussion I linked to if you're
>> interested.
> I did, but couldn't answer my questions, because the discussion relies
> heavily on VSCode features with which I'm not familiar and whose
> descriptions I saw didn't clarify the issue.

It seems to me that a brief description would be "buttons that do 
things", but unlike Code Actions - already available in Eglot - those 
things don't typically alter the text that they act on.

A LSP-generic mechanism to position those buttons at places in code 
which are recognized by the LSP server. For the LSP spec:

/**
  * A code lens represents a command that should be shown along with
  * source text, like the number of references, a way to run tests, etc.
  * ...

Running tests is the #1 use I found for them when writing some Go 
recently. Eglot doesn't have a built-in test launcher of any sort, so 
that feels like an omission.

There are other lenses for Go (enumerated here: 
https://go.googlesource.com/tools/+/master/gopls/doc/codelenses.md), and 
they do sound useful, but less essential in comparison.

And I would probably agree that the examples from the original PR are 
not that impressive (we already know how to search for references, and 
we know that that action works with every symbol - more or less, and we 
know how to access VC information - or in any case this would be the 
same across languages, or without LSP).

It seems the strongest point of code lenses is advertising actions 
specific to language and/or to a context within the source code file 
(such as, again, launching tests). So the user is made aware of the 
capability.

Admittedly, this seems more useful with some servers than others: gopls, 
rust-analyzer and ruby-lsp have test runner (and debugger) lenses, 
whereas clangd and typescript-language-server only have the "references" 
thing - I guess the usages count is nice, but it's much less essential.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 27 Sep 2024 05:59:02 +0000
Resent-Message-ID: <handler.73452.B73452.172741668828257 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Federico Beffa <federico.beffa@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, joaotavora@HIDDEN
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.172741668828257
          (code B ref 73452); Fri, 27 Sep 2024 05:59:02 +0000
Received: (at 73452) by debbugs.gnu.org; 27 Sep 2024 05:58:08 +0000
Received: from localhost ([127.0.0.1]:45259 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1su3zU-0007Lh-C9
	for submit <at> debbugs.gnu.org; Fri, 27 Sep 2024 01:58:08 -0400
Received: from eggs.gnu.org ([209.51.188.92]:36428)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1su3zQ-0007L7-H3
 for 73452 <at> debbugs.gnu.org; Fri, 27 Sep 2024 01:58:07 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1su3wm-0001aX-4u; Fri, 27 Sep 2024 01:55:20 -0400
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=NjbewltVjoz3ORkyfHNY33ZNGjKlQDWA4UKhFI41izA=; b=rqQfEE9nwT5kKQ9OX+DU
 k/S4JL7ipx5plHloTLc6VE8hgztM78slxZZx/LKk6nqhe6c11SYitd84c7K8oyIia49iTLpuoXm4D
 Rz6LXv3SzM0eFVPL+4E38RpzPp+w5ZEKfB9gknXgYVwplMwVevkTzWvZkqCqC/CMLalDczwQ0K1jO
 bs3DeK6uy8KLy5/nBHSiMZ+2oTsGkPhaHCDRgpXa5mEi5TkV4a78loHTVkkWGU3rDM+SmVqOAy7dF
 5beoklIULkLF7SAfUrbCUxyHvN9IuTP3I+poX7LAbRodVdBhPOGGvNZD0OWrWei7yshi9cv5qZtrH
 xf4S/jsNNPTqTA==;
Date: Fri, 27 Sep 2024 08:55:16 +0300
Message-Id: <864j61abej.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <402b37ee-8f2a-4c44-8861-be9054ed5255@HIDDEN> (message
 from Federico Beffa on Thu, 26 Sep 2024 17:35:21 +0200)
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN>
 <CALDnm502SfssD7HyjxEjG9co00tc1WR_tyyZAqcaMk0JWe1EFA@HIDDEN>
 <402b37ee-8f2a-4c44-8861-be9054ed5255@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
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: Thu, 26 Sep 2024 17:35:21 +0200
> Cc: 73452 <at> debbugs.gnu.org
> From: Federico Beffa <federico.beffa@HIDDEN>
> 
> Code lenses are not too different from code actions (see below). A new 
> abstraction would make sense only if you plan to reorganize the entire 
> `eglot` code. In that case the concept of a "code reviewer" or 
> "assistant" could be useful, with functions like
> - signal-error
> - suggest
> - exec-in-comment
> - visit
> - show-references
> - show-type
> ...
> 
> >
> >>> Read the last parts of the discussion I linked to if you're
> >>> interested.
> >> I did, but couldn't answer my questions, because the discussion relies
> >> heavily on VSCode features with which I'm not familiar and whose
> >> descriptions I saw didn't clarify the issue.
> > Yes, that's part of the problem.  This LSP feature is a VSCode/VStudio MS
> > UI thing, and I also don't know those things well.  The few times I open
> > these apps I get turned off by all the clutter.
> 
> I'm not an expert, but my understanding is as follows:
> 
> A code lens represents a command that should be shown to users along 
> with source code text, like the number of references, a way to run 
> tests, etc. It goes like this:
> 
> 1. The client sends a code lens request.
> 2. The server replies with commands along with the text to show to the user.
> 3. When/if the user chooses to run any of them, the client sends the 
> request to run it to the server. (As an option it's also possible for 
> the client to run the command.)
> 4. The server executes the command and replies with the change in the 
> source code.
> 
> So, the main difference between code actions and code lens is the fact 
> that the latter should show some text to the user. A few examples from 
> the Haskell language server are:
> 
> - You can run some code in comments and get the result added. Here is a 
> screenshot from VSCode
> 
> "Refresh..." is sent by the server. (It's "Execute..." before the first 
> execution).
> 
> - An "import" lens suggests changing a library import to only import 
> used symbols
> 
> 
> - Expressions without type annotations get a lens showing the type and, 
> if executed, it's added.
> 
> 
> You may not like the VSCode UI, but Emacs doesn't have to use exactly 
> the same interface. The client decides how to present the code lens 
> text, and you may choose to only display it in some circumstances.
> 
> Code lenses are part of the core features of LSP since several years and 
> are used by many servers. If Emacs ignores them, all those features are 
> not available in Emacs. A client can't decide that it prefers to use 
> actions instead of lenses. It's the server how decides how to offer the 
> functionality.

Thanks.  So basically, code lenses are suggestions for actions, and
those suggestions are presented as a kind of overlays over the code?

If so, I think the infrastructure we need is mostly the presentation
of the lenses and how the users select the action(s) they want?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 27 Sep 2024 06:55:02 +0000
Resent-Message-ID: <handler.73452.B73452.17274200507884 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Dmitry Gutov <dmitry@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN, joaotavora@HIDDEN
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.17274200507884
          (code B ref 73452); Fri, 27 Sep 2024 06:55:02 +0000
Received: (at 73452) by debbugs.gnu.org; 27 Sep 2024 06:54:10 +0000
Received: from localhost ([127.0.0.1]:45329 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1su4ri-000235-43
	for submit <at> debbugs.gnu.org; Fri, 27 Sep 2024 02:54:10 -0400
Received: from eggs.gnu.org ([209.51.188.92]:44788)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1su4rf-00022o-GG
 for 73452 <at> debbugs.gnu.org; Fri, 27 Sep 2024 02:54:08 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1su4r7-0008BK-4Y; Fri, 27 Sep 2024 02:53:33 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=YGRLYNTmN8C3o3Bs0v5SBjoriXE3J1u/ZLKggdeB7Bs=; b=c6SDGC3b90/4
 zEPv54JmTZa3FzxEfOvBhcpLBKoTWMbEKvhKDq1QzaxuINQKstXPGlIbT0HarQUSu9XHZz8M6IH63
 lPyVvIS1c2GRZPx/ga6IG2WLz8B4qW5Dz7WXjcWc3bVyUiHK006RNGH3he9gKK3Z0r2lPxR37rFNC
 vX13zQq1iBnrvNEH2Vwed5+yQYErQkZNxjcTYpvg42RxGEIfZtM5ETLYjWJjSPaUY8JSIZm0f39wo
 bhzzaFNv23CvSLUUDELc7c1Ufba/PSVZQU8opIL6YPGE1zs09UU8q2REb/+BB+VbKUDFIZQ1E8ur6
 jEqlQe81PEJ3EK/7SnqJqQ==;
Date: Fri, 27 Sep 2024 09:53:29 +0300
Message-Id: <86tte18u52.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <d0d685c6-c9a4-41ad-acc5-99827f470b6d@HIDDEN> (message from
 Dmitry Gutov on Fri, 27 Sep 2024 03:20:35 +0300)
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN> <d0d685c6-c9a4-41ad-acc5-99827f470b6d@HIDDEN>
X-Spam-Score: -2.3 (--)
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: Fri, 27 Sep 2024 03:20:35 +0300
> Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN
> From: Dmitry Gutov <dmitry@HIDDEN>
> 
> It seems to me that a brief description would be "buttons that do 
> things", but unlike Code Actions - already available in Eglot - those 
> things don't typically alter the text that they act on.

This seems to be in contradiction with what's been said previously
(and my understanding from reading the linked pages): that code lenses
are UI sugar for server actions.  (If this is different from "Code
Actions", then I guess there's some subtlety here I don't get yet.)
You yourself say later that "the strongest point of code lenses is
advertising actions specific to language and/or to a context", which
seems to affirm my understanding.  And since Eglot already supports
actions, what seems to be missing is that UI sugar, i.e. a way of
presenting the lenses and a way for the user to select those he/she
wants to invoke.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Dmitry Gutov <dmitry@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 27 Sep 2024 19:41:02 +0000
Resent-Message-ID: <handler.73452.B73452.172746601914991 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN, joaotavora@HIDDEN
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.172746601914991
          (code B ref 73452); Fri, 27 Sep 2024 19:41:02 +0000
Received: (at 73452) by debbugs.gnu.org; 27 Sep 2024 19:40:19 +0000
Received: from localhost ([127.0.0.1]:51380 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1suGp7-0003td-Cu
	for submit <at> debbugs.gnu.org; Fri, 27 Sep 2024 15:40:19 -0400
Received: from fhigh-a2-smtp.messagingengine.com ([103.168.172.153]:49969)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1suGdH-0002y5-6g
 for 73452 <at> debbugs.gnu.org; Fri, 27 Sep 2024 15:28:04 -0400
Received: from phl-compute-09.internal (phl-compute-09.phl.internal
 [10.202.2.49])
 by mailfhigh.phl.internal (Postfix) with ESMTP id DCB6B1140151;
 Fri, 27 Sep 2024 15:27:28 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-09.internal (MEProxy); Fri, 27 Sep 2024 15:27:28 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm1; t=1727465248;
 x=1727551648; bh=ggB100lfIjN6+dfE53D62Q9ULDy33HEKwuyDI2sEKOo=; b=
 EbIO3R5B6vfIdtsui3A/k/nMBPjDjdnHUfigjQKE1q08ibq5stgDhHy4y1ZHtiV2
 TWA14sinwXhqhMHj/7kHJUOWzKsH5e0WmZ+A113743xuw0sATvnYrAMbdluQZh+P
 dnAdurgH92uE5JCYIzyclFtUoy7UsOXtFsU53mFVDsLbfgGdpqgzK1ZB7784GUEq
 MGQNBCMwoVcyCug0oc+ZlGwM7CZHTPIBeE2p+Y+9YlEow8ie0Ivi78bW/coqDotf
 yzkhecfITHWmW7hqlsHE5/M8jv6OX8r3+gq9bC4OLq1f75THg6O7aEJFPY4T4esR
 QZDJLUBkNreew19f3SBVTw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727465248; x=
 1727551648; bh=ggB100lfIjN6+dfE53D62Q9ULDy33HEKwuyDI2sEKOo=; b=H
 I+X0fIwuyUmMj3MoiAgvBQAry4NNPPSKk8y3INd39yqjHyeuyyTZelIfFfCIfRDf
 uZQJEDbWzTw6Ejnq08km+SLO93Acovyi7fjbtCAY1X/TUgwkBsx31ZOKaXR6pwje
 vgLzeKev/Z2F6jkZ8X9jVrYSmurOHJN3nqbn83NnepUCFAo8Aj/n+BQwooR1zgOK
 Sn4teHoMi/kt9Cdgd4NEqOHCmV9UG7aP1TTCDaghEwnWQ6QwGMT4giDuRuarFd6l
 s7mVnX9WkTZRkQUIEwqwtlLqryHUYj+OnMaQkj7OT+tXpi8jh+DhY3QfVIfNsVHF
 KgRB+n6sfZX+VpfA+CPGQ==
X-ME-Sender: <xms:IAf3ZsCmF3S5I-_hoWpqaIr78KMcnQUWFFGDNxD5v2yLE_Nw9Y4H8A>
 <xme:IAf3Zuib2C7trFCaU2HFA6czPDJcfBg63akYhTLmnl4363KvCxcQaqgMyYfhc29mb
 9pBSWmRVZF6BrGLTFw>
X-ME-Received: <xmr:IAf3ZvkpjW9ZogtL93fTTf0Do0lmhkYQ0FRoFJESRYtebVPShnzqPMTWIQjUoT0vHuk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvddtledgudefiecutefuodetggdotefrod
 ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp
 uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg
 hnthhsucdlqddutddtmdenucfjughrpefkffggfgfuvfevfhfhjggtgfesthekredttddv
 jeenucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrd
 guvghvqeenucggtffrrghtthgvrhhnpeekfffhkeeuheeihfekvedtieekleejueduvdeu
 hefhvefgteefiedtuedthefhieenucffohhmrghinhepghhoohhglhgvshhouhhrtggvrd
 gtohhmpdhtrhgrnhhsfhhorhhmrghtihhonhdrmhgunecuvehluhhsthgvrhfuihiivgep
 tdenucfrrghrrghmpehmrghilhhfrhhomhepughmihhtrhihsehguhhtohhvrdguvghvpd
 hnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegvlhhi
 iiesghhnuhdrohhrghdprhgtphhtthhopehjohgrohhtrghvohhrrgesghhmrghilhdrtg
 homhdprhgtphhtthhopeejfeeghedvseguvggssghughhsrdhgnhhurdhorhhgpdhrtghp
 thhtohepfhgvuggvrhhitghordgsvghffhgrsehfsggvnhhgihhnvggvrhhinhhgrdgthh
X-ME-Proxy: <xmx:IAf3ZiwBQDcenGza0jlZMEOKAoPCeONusyb9RC3Bt23SR1VhNazOcg>
 <xmx:IAf3ZhTMIYCcx19DeFO1cnICL_TpWnd6mCqhju6g0hCaoL_JDW8UgQ>
 <xmx:IAf3ZtZ4FOdEXYeAG-Kf6NmW3sg4D3xCjnIdj8aH_K24rLC5gPKX9A>
 <xmx:IAf3ZqRILTSFebXCNknBx4n7lYtKJLcV7Tqp7-vWzqA7dPJqJvX-ag>
 <xmx:IAf3ZvPHmYqpciHKvdV6_5O6JKdcrIYaaG5UFiLkRYimNR_hzUPBLRk3>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 27 Sep 2024 15:27:26 -0400 (EDT)
Message-ID: <5529baea-36d6-4ee7-9d7d-a83dfd7f71c9@HIDDEN>
Date: Fri, 27 Sep 2024 22:27:23 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN> <d0d685c6-c9a4-41ad-acc5-99827f470b6d@HIDDEN>
 <86tte18u52.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <86tte18u52.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.7 (/)
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 27/09/2024 09:53, Eli Zaretskii wrote:
>> Date: Fri, 27 Sep 2024 03:20:35 +0300
>> Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN
>> From: Dmitry Gutov <dmitry@HIDDEN>
>>
>> It seems to me that a brief description would be "buttons that do
>> things", but unlike Code Actions - already available in Eglot - those
>> things don't typically alter the text that they act on.
> 
> This seems to be in contradiction with what's been said previously
> (and my understanding from reading the linked pages): that code lenses
> are UI sugar for server actions.

There is no such term as "server action" in LSP, so the above statement 
is probably both true and false at the same time. But lenses are not 
sugar on top of code actions, if that's what you means.

 > (If this is different from "Code> Actions", then I guess there's some 
subtlety here I don't get yet.)

They are different parts of the LSP protocol, even though, practically, 
some "actions" could be implemented as either. Anyway to quote from 
https://go.googlesource.com/tools/+/master/gopls/doc/features/transformation.md:

   A code action is an action associated with a portion of the file. Each
   time the selection changes, a typical client makes a textDocument/
   codeAction request for the set of available actions, then updates its
   UI elements (menus, icons, tooltips) to reflect them. The VS Code
   manual describes code actions as “Quick fixes + Refactorings”.

   A codeAction request delivers the menu, so to speak, but it does not
   order the meal. Once the user chooses an action, one of two things
   happens. In trivial cases, the action itself contains an edit that the
   client can directly apply to the file. But in most cases the action
   contains a command, similar to the command associated with a code
   lens.

   ...

   The main difference between code lenses and code actions is this:

   * a codeLens request obtains commands for the entire file. Each
   command specifies its applicable source range, and typically appears
   as an annotation on that source range.
   * a codeAction request obtains commands only for a particular range:
   the current selection. All the commands are presented together in a
   menu at that location.

To give a couple of example: 'rename' is a code action, whereas 'run the 
test near point' is a code lens. Because the server will tell you which 
tests are defined in the current file and at which positions.

> You yourself say later that "the strongest point of code lenses is
> advertising actions specific to language and/or to a context", which
> seems to affirm my understanding.  And since Eglot already supports
> actions, what seems to be missing is that UI sugar, i.e. a way of
> presenting the lenses and a way for the user to select those he/she
> wants to invoke.

Yes, and what might be missing is not really a UI feature (we know how 
to print buttons, after all), but higher-level decisions, I guess, for 
how and when to print such buttons. It shouldn't be very difficult to 
implement, but people might disagree on the finer details of behavior.




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


Received: (at control) by debbugs.gnu.org; 30 Sep 2024 01:36:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 29 21:36:54 2024
Received: from localhost ([127.0.0.1]:43469 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sv5LJ-0007tr-Rm
	for submit <at> debbugs.gnu.org; Sun, 29 Sep 2024 21:36:54 -0400
Received: from mail-lf1-f52.google.com ([209.85.167.52]:51326)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1sv5LD-0007s7-LY
 for control <at> debbugs.gnu.org; Sun, 29 Sep 2024 21:36:48 -0400
Received: by mail-lf1-f52.google.com with SMTP id
 2adb3069b0e04-5389917ef34so4202013e87.2
 for <control <at> debbugs.gnu.org>; Sun, 29 Sep 2024 18:36:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1727660110; x=1728264910; darn=debbugs.gnu.org;
 h=to:subject:message-id:date:mime-version:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=Rn9YDPOqVggbfur4i68VU710WEiFBxBn6Wc9zNgeX98=;
 b=h4uhWQs41kkcNS8bGsEfV3pmosYd12/G2qeY6jAB+QrFsKoYwNFDXx+3fAti37TFDQ
 drtSSI6Ymx7+fVyCBVWlvJI2hSRzr4XGTE+8lHhTzS/2Na4navBS+AWq/W36KnQ9Eqx8
 DRKRudvODSANgBO1+6a4UInP2h/jJbpfxbIlifsiooRsNniErThiGvlWC+1flym2bXnd
 /wHdhAaX6SK9LkXvE1pjf5H66pCXgwRsPHnCKJlCEoHil94lF7GBl5/oR5CUJAF9DU8i
 8oZjZ/bzs9PsZ4hLRomsq6Ql8qq90hhF54TioSr5apMnrx6ktpBbfGsILL20MT7Cma1J
 SovQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1727660110; x=1728264910;
 h=to:subject:message-id:date:mime-version:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=Rn9YDPOqVggbfur4i68VU710WEiFBxBn6Wc9zNgeX98=;
 b=vgZF1JXcgMjFGEU/yejT4Exs6yuoEAk4mjmcGmeAleRpQSB7/jSNlHiHnDwTzeqHaa
 o/vfqetyZE9E9VIL7NNKHugDvXO9Lzo79QzvVpn38yg6Pk900oGPm/9mwygN37Z2rVyh
 rMqjIRe8+rCtgtTLaA0hx1olbh4E7xe6fTH4W0w55flFn5qhbyHvgHsB27IJJK4FzWHF
 i2b8AWvQ9LT6glbX8RJSl4C1cMTCykytW1TmV5JIk4uONdyElha7NNnZ9MoWtokyVwKY
 yXC4w3xVL0Gz7JGRaGZVqchcpczS7lELtjRwxCKs41t2ZP+3NxzUeI6U/NJjTB2JD/Ye
 9YsQ==
X-Gm-Message-State: AOJu0YzB0IRCtmZ5FregZOo6uaRf68PajHLK11CkCNDq64Gz7mqe+nHL
 H43xiZ8ap3ejay4wdCYT8XZ5nNV8My4karaX5llR0okVNYgw2xRhocwnLdFxEKFupmgLZdK+4pH
 dboUZ9cQbFtYC8yK/louyUW++5b3XSw==
X-Google-Smtp-Source: AGHT+IHW5BkZiYmmdVZX6gm7gg4Rnq/klRZJy8/iX4jqCujZpyfWasOUiL9mMN2ZZfsUipf+HGjnqM6XbWsr7zMHkDs=
X-Received: by 2002:a05:6512:158f:b0:535:6cbf:51a3 with SMTP id
 2adb3069b0e04-5389fc3cb56mr4857576e87.25.1727660109639; Sun, 29 Sep 2024
 18:35:09 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sun, 29 Sep 2024 18:35:09 -0700
From: Stefan Kangas <stefankangas@HIDDEN>
MIME-Version: 1.0
Date: Sun, 29 Sep 2024 18:35:09 -0700
Message-ID: <CADwFkm=hrU5pq=eRZ+jj58+4Ncj1tkBUodcpTNhvngKXU+2bzQ@HIDDEN>
Subject: control message for bug #73452
To: control <at> debbugs.gnu.org
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.9 (/)
X-Debbugs-Envelope-To: control
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.9 (-)

severity 73452 wishlist
quit




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Felician Nemeth <felician.nemeth@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 02 Oct 2024 11:59:02 +0000
Resent-Message-ID: <handler.73452.B73452.172787029514308 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Dmitry Gutov <dmitry@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, federico.beffa@HIDDEN, =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.172787029514308
          (code B ref 73452); Wed, 02 Oct 2024 11:59:02 +0000
Received: (at 73452) by debbugs.gnu.org; 2 Oct 2024 11:58:15 +0000
Received: from localhost ([127.0.0.1]:56792 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1svxzj-0003ih-2A
	for submit <at> debbugs.gnu.org; Wed, 02 Oct 2024 07:58:15 -0400
Received: from mail-wm1-f54.google.com ([209.85.128.54]:43276)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <felician.nemeth@HIDDEN>) id 1svxzh-0003iP-Af
 for 73452 <at> debbugs.gnu.org; Wed, 02 Oct 2024 07:58:14 -0400
Received: by mail-wm1-f54.google.com with SMTP id
 5b1f17b1804b1-42cba8340beso4514845e9.1
 for <73452 <at> debbugs.gnu.org>; Wed, 02 Oct 2024 04:58:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1727870227; x=1728475027; darn=debbugs.gnu.org;
 h=mime-version:face:user-agent:message-id:in-reply-to:date:references
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=6P9J25rpgmZZGxZrLh+uiIRidqFBmwqPj4kOEkEfGYA=;
 b=RvEbutqDQHLf8SuiCbNUshDntZt4yCPRmqSD7a/cugIvuPl6J6vjGxDQM8Eq/XxEeD
 Zx0jI79d9wrDN2QBYM1xr01Cd8XpnRhMMRHBudjx+BuKhsO/MTl/lchTParlLZWEDPGg
 +N9a/C9G0wT1Ij+0ZcrDytbCG5uG7HPMKLx20WOhris0h+kqGPTtbeb5Igd+sVUK4Av+
 YlK/PAYOYqhE4Iyxb+MeTrmvgvb9dLjAxHVPsWazu1MNBsoB19zq5VeG5IvKQfUAELMJ
 km/yc1OBS/LpevI0Z7/eR6ieG3h+GsIkQdk6kQ41iwkXfy6+1aBgIemjA9Gtzqvd0/ci
 ijXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1727870227; x=1728475027;
 h=mime-version:face:user-agent:message-id:in-reply-to:date:references
 :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=6P9J25rpgmZZGxZrLh+uiIRidqFBmwqPj4kOEkEfGYA=;
 b=Ogh7Yo8HlfEULcaYaznKmAWvJ0bX0gIagBuNSXkrixUCbwOcRxy7p7qjGYCubegeEN
 kWiSgj/Dv00LWxWPIKPHyM8GoXgAZb1rBzss5HBKpLXVvse1t5xPkv+TK5zh9LRJv30/
 b0NkH9MKgCTxE4zUR96YSc9OJkUNfCt7FiA5mrfb/QwkuH15fApnFHPPPSqXmwMGKD3C
 z5OVphxhOtoL0Zlarq++0TA+ek7iv4taZKfol/Qivajgtcl3imF/q28vys3hULW3IUYB
 Hvdr64bb62jRL5yNIoyODsVeB3IXgsDl+ZADmRILfgo5uNSMUYMDIyMuxFrVo2cM1h2x
 iBUA==
X-Forwarded-Encrypted: i=1;
 AJvYcCWmx7fQcnaCU7q5fB50GoRFfuGjTw1WOPFujaqnjkFtJF2xjWFiSx7bCLukZny9jvr2eOMm/w==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyrPha8fhxKe7VRQXFR+pkIZ8Y/bKx2qoRAgXLjkYKb9xNYNsgz
 31DdCwUXIgVK9C6Qb3VhD+1iZ3r9H/4F8lcGePlS+247t9ffrJFP
X-Google-Smtp-Source: AGHT+IETHfeVgDyFkVKLjLt2belJc//8IMsHNIK8LBiN53pmvUTBpFnj/oCZqBx5PyTy9+VcpFBfKA==
X-Received: by 2002:a05:600c:35cb:b0:424:8743:86b4 with SMTP id
 5b1f17b1804b1-42f71327a4emr39621475e9.6.1727870226615; 
 Wed, 02 Oct 2024 04:57:06 -0700 (PDT)
Received: from betli.gmail.com (catv-213-222-160-137.catv.fixed.vodafone.hu.
 [213.222.160.137]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-42f79d8d2d0sm16974435e9.3.2024.10.02.04.57.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 02 Oct 2024 04:57:06 -0700 (PDT)
From: Felician Nemeth <felician.nemeth@HIDDEN>
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN>
 <d0d685c6-c9a4-41ad-acc5-99827f470b6d@HIDDEN>
Date: Wed, 02 Oct 2024 13:57:05 +0200
In-Reply-To: <d0d685c6-c9a4-41ad-acc5-99827f470b6d@HIDDEN> (Dmitry Gutov's
 message of "Fri, 27 Sep 2024 03:20:35 +0300")
Message-ID: <87v7yalnu6.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAFVBMVEU2EgDVmFNHKAa4dz4q
 AwCDUSH2zWrE61tmAAACeklEQVQ4jU2UwY7jIAyGEZN5ABSFc9Ytcx6K6DmqmHsD8tyZKrz/I+xv
 yI6WKlHlj982tomiVckiWrUrgRU5jlqMpJKCkch5W419DQAiQGHDxdrWmm0/2kXCApiUmrZLq20s
 cjexq3VL25QuxjY7wOcJVEpb+jLeGLAK+OMyaa1hx9rFbkwHFWBVA2y8w1wHaLE7GuDdw5cEuOM5
 SLIdrpwBkN0ezwI7nYoiilqthbcYc89KgC5+NnaOHGbZz0T6BCEgOLJ0vmYXuNdPAIXgDZJhF2Yu
 fjnPNwAsoUTUN/P8q3AAyz4zB/xmifEfiIbvS4jh7b7QqZiSm4MJC5kXNpCRaOsoyQXAMN2XCJfs
 j94NKfo7ACKUEgKE3y+Sg4jibUZ1A0jgYpxtvYMC3gHaHPq6x32ACeALIZoZxB+l9VrRNIA1ncRg
 wwC8pvQIvYO+a2yt3VXMVyli6L0VV6aOrJa4CpilVQA+eHt0xavk61akih5BUMay/0BAqu783C5h
 FifY/3QsAIoWYk6PgpwAzLI652+96e2IfN2cF+BD1uT23F21Ghh5OUl4RlO15oh5A2iv+Zk2wsjZ
 2DtB5Sm3A4P0+kyb2vs4iEW7G9ohoN3Stl2kVat6MCkXldo6OKaE8P6GhmrKKxWZXQH1iklhhn+d
 iVeNf6mDdkV0ltFwApRbp+kXSGBFHGV2aPqnIIyQyzhD5n47khqKI08bIapcas4O+hPkct20NAEv
 ALRuZFUp3PrnQSAm+4lTdHCsYYZ/nGqQrM5z3NS3zefFxkfFPRFbsjpIfbTlvF3ibpVZQ9nzqv60
 F/KXSRLJ1AGappJulZll70N/qz6EfwEOCdYOuTHAzAAAAABJRU5ErkJggg==
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
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 (-)

Dmitry Gutov <dmitry@HIDDEN> writes:

> Running tests is the #1 use I found for them when writing some Go
> recently. Eglot doesn't have a built-in test launcher of any sort, so
> that feels like an omission.

Rust-analyzer has some protocol extensions to work together with a
remote "Test Explorer".  It seems a test explorer module is part of
Visual Studio and VS Code.  I think a similar Emacs package that lets
the user organize/run tests and review test results would be a good ELPA
package.  (Even if it does not work with Eglot at the beginning.)

https://learn.microsoft.com/en-us/visualstudio/test/run-unit-tests-with-test-explorer?view=vs-2022
https://github.com/rust-lang/rust-analyzer/blob/master/docs/dev/lsp-extensions.md#test-explorer




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Dmitry Gutov <dmitry@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 02 Oct 2024 23:27:02 +0000
Resent-Message-ID: <handler.73452.B73452.17279116141442 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Felician Nemeth <felician.nemeth@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, federico.beffa@HIDDEN, =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.17279116141442
          (code B ref 73452); Wed, 02 Oct 2024 23:27:02 +0000
Received: (at 73452) by debbugs.gnu.org; 2 Oct 2024 23:26:54 +0000
Received: from localhost ([127.0.0.1]:59499 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sw8k9-0000NC-O4
	for submit <at> debbugs.gnu.org; Wed, 02 Oct 2024 19:26:54 -0400
Received: from fhigh-a6-smtp.messagingengine.com ([103.168.172.157]:43689)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1sw8k7-0000Mz-Re
 for 73452 <at> debbugs.gnu.org; Wed, 02 Oct 2024 19:26:52 -0400
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 9CC0B114009B;
 Wed,  2 Oct 2024 19:26:45 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Wed, 02 Oct 2024 19:26:45 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm1; t=1727911605;
 x=1727998005; bh=5kUbGfMEShhchoxKfDW55N9+JpcHHIsP5/D4jchQq5c=; b=
 qJPg4UZFSFNa+8cKqLTJYyZWfOrlb0kGjkz7cBQCVHIUaJfiriaSRQ2PLa5GqjJx
 MOOv4ub4bLBrvgTZWyBdwBINOCA7y0LGDe1OsJetg5Ohl2JATzM1+gQMv7VqV/kn
 kD9l7S7ikspp0JonwI4TEar72NrmQrs7ALZIa6awK7wiOGpWAHASIdj4bkSkmMjN
 DicadVunxInB3IPqppUzMW73JMiEA2SRQZTvl/hmR38uFXwpG6hzf+la7EY2hZcA
 d5djQxR2D6olGmedqwcSq7YRr/MoRYMr/okbaGOWJIOblae5miw8wvVkYVhKhclt
 WvWyqqWgoFIf3cCK9MDMPg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727911605; x=
 1727998005; bh=5kUbGfMEShhchoxKfDW55N9+JpcHHIsP5/D4jchQq5c=; b=P
 3XfTgRnSiX0kf9i4Xh1bVdWdcyoil+IGK/jKOndRTFJ8h5hxdltiAlzvxWZ0QoIe
 D08FjuGgRb6UzRDQI5gPAaVA3fhf6N1UnCGrl+6asTuEgSHmaCv/qfcl1CQCMp5q
 LfC497Rq9stS/fXY/dfzU3AKsbvpuvDz6uuiQRBq58/HzA/PZ1g6G8bKyR2oe2Od
 I5eSSbeRc0ZzI6VaMo7dtpoDMEGGM42o0Tsy3k4AIw/QtreaYy7/vtq9+jcAD2Yq
 WFfEeMwe/Hvp959IBAO4vwepWu5X2+OOU0W92WsefXg+8GjdAGbP3+soL+pRW9E7
 QnMRkJUarYLfWr1zzg+Xw==
X-ME-Sender: <xms:tNb9ZggKCNzaAbL-vWAvF0ctPVc7WfG7vmIhogDevr3T-pvWNILTBw>
 <xme:tNb9ZpCRxV9LbMf1mb2d6Hofvg3nRC0fwCRmF2oXMWwiJ-WvXbX4Zj0RRgqPbpGRD
 2WApIxZ_CW71Dwrijs>
X-ME-Received: <xmr:tNb9ZoGyBlBG3TrmYk43qgD-vO1FxUbLwm6RmOzqnIrDmfhuuLv8wflU3vdqtcBfQFE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvddvtddgvdefucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdej
 necuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdrug
 gvvheqnecuggftrfgrthhtvghrnhepffeigfeivdetheelfedvjeeigfdvveeugfekgfek
 veeutdejueeiudffheeifffgnecuffhomhgrihhnpehmihgtrhhoshhofhhtrdgtohhmpd
 hgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
 ihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvhdpnhgspghrtghpthhtohephe
 dpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepfhgvlhhitghirghnrdhnvghmvght
 hhesghhmrghilhdrtghomhdprhgtphhtthhopegvlhhiiiesghhnuhdrohhrghdprhgtph
 htthhopehjohgrohhtrghvohhrrgesghhmrghilhdrtghomhdprhgtphhtthhopeejfeeg
 hedvseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohepfhgvuggvrhhitghord
 gsvghffhgrsehfsggvnhhgihhnvggvrhhinhhgrdgthh
X-ME-Proxy: <xmx:tNb9ZhRTCcmz8G_tuDQHI_EAxiYY2ngVMERWD9lrCdFNOuDXZYpI4A>
 <xmx:tNb9ZtwbUCTVz_mlztkuyXpZPfQ8JcivkBJO3O4PKEYeXyCdBAhSWg>
 <xmx:tNb9Zv4g2mbd0aS_69TkpdpVfo3GBCrKz1Bsa9CCqe5opbBI28zJpw>
 <xmx:tNb9ZqzRSeVIXEfLnfvSGOtjeFhAC0-l5hrL-MDcCCJ0_wlSSD7rxg>
 <xmx:tdb9ZgqYQJQcyGs6syzo4sNDOK4s1Q1KC1KNoCF3ZmRyq_u0jvSTav4z>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 2 Oct 2024 19:26:42 -0400 (EDT)
Message-ID: <6879f0f5-ca8b-4aec-83af-9d68be45a287@HIDDEN>
Date: Thu, 3 Oct 2024 02:26:40 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN> <d0d685c6-c9a4-41ad-acc5-99827f470b6d@HIDDEN>
 <87v7yalnu6.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <87v7yalnu6.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
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 02/10/2024 14:57, Felician Nemeth wrote:
> Dmitry Gutov<dmitry@HIDDEN> writes:
> 
>> Running tests is the #1 use I found for them when writing some Go
>> recently. Eglot doesn't have a built-in test launcher of any sort, so
>> that feels like an omission.
> Rust-analyzer has some protocol extensions to work together with a
> remote "Test Explorer".  It seems a test explorer module is part of
> Visual Studio and VS Code.  I think a similar Emacs package that lets
> the user organize/run tests and review test results would be a good ELPA
> package.  (Even if it does not work with Eglot at the beginning.)
> 
> https://learn.microsoft.com/en-us/visualstudio/test/run-unit-tests-with- 
> test-explorer?view=vs-2022
> https://github.com/rust-lang/rust-analyzer/blob/master/docs/dev/lsp- 
> extensions.md#test-explorer

That looks useful, thank you.

I wonder how many of the popular servers implement this, though. And 
what UI an Emacs implementation should prefer (overall that seems a fair 
bit more work than adding buttons inside Eglot-managed buffers).




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 03 Oct 2024 22:46:01 +0000
Resent-Message-ID: <handler.73452.B73452.17279955031817 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Dmitry Gutov <dmitry@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, Felician Nemeth <felician.nemeth@HIDDEN>
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.17279955031817
          (code B ref 73452); Thu, 03 Oct 2024 22:46:01 +0000
Received: (at 73452) by debbugs.gnu.org; 3 Oct 2024 22:45:03 +0000
Received: from localhost ([127.0.0.1]:34067 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1swUZD-0000TF-FB
	for submit <at> debbugs.gnu.org; Thu, 03 Oct 2024 18:45:03 -0400
Received: from mail-oa1-f50.google.com ([209.85.160.50]:52599)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1swUZC-0000ST-FC
 for 73452 <at> debbugs.gnu.org; Thu, 03 Oct 2024 18:45:02 -0400
Received: by mail-oa1-f50.google.com with SMTP id
 586e51a60fabf-2780827dbafso756564fac.1
 for <73452 <at> debbugs.gnu.org>; Thu, 03 Oct 2024 15:44:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1727995434; x=1728600234; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=3LKqe/A+rZ32smVFoPcFMmedD26n4IBCz9tqLQnYA3A=;
 b=jYaRM1z06NLHeX7uCVox0E2LlVNl9XTR2MpsJFXSyr9FrCUfBYgzrwjkamj6s0d3lS
 DBfnmSaehqaNbW4uwchGdGnAH1CtGwMR2r7jx7nqyAag2ye6b6OiTnRM0EvPkmTv/RpF
 WO8iLiR21qIac1IBLB9A8u5txSzqtEg+6n3wRcVmz2o6YRYz2w9FKvzg/w2RLKSlgAis
 NxcNzqIsl2DCpnvZGiHPFjGIcVagjzN7STMuoYAkL/Fq835vw3ZbriYK3C4LnEzgCu3R
 g2IIipPnYt8eq9tSZAL0oMgeBNs/E7h2SA5Lh7NroqDeINgyQ3X+kjPbzl00NOtFNt5u
 RiJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1727995434; x=1728600234;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=3LKqe/A+rZ32smVFoPcFMmedD26n4IBCz9tqLQnYA3A=;
 b=Obwx2Emqiz9EoeOqKY0l/QiZ2jMpLwPjm+cBvmtRHQGOyQNsGQP3nMMYaaTwvo4xFQ
 9MaEyHVFBN3haAPhtmk+p0TGaYGKyZ1LDqTOKx/SC5h6vXmfJq9MOfhZS8IqYv/lTeCd
 43zeNXZl0U8E8sxyWcBweruBQ2qvEnQckV/dqM4PyFpzFGQHYCve8ttAMcI3ONhIRJVh
 Zz7iKJIOyd0WDCWphRWyi2Vh/ijX8jpsiM+FCVYgVtb9Gwx2wntAidUl5mRojHcK+9UL
 KbWDPYXzzwThDZc12jngMTMOZ6GBkDFp6W+vttjhrvwqA4KlLsv3oOfLTh2KmB97nmFt
 HDEw==
X-Forwarded-Encrypted: i=1;
 AJvYcCXblibg35xYfw1nMyRbDBuWrgGjAoWpijjMJ1a2pxHwBp305L2GMfwiD50WqK0BqAIe0pgFLQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YzrogLjxZaMCCqoa2H2x1GTkIiBzWNm34RAXF4RG1a4QCSx3/Av
 w6Qj5iIsrGF8qDqdC+OcBtMalw0SHp2kxL5ypp2+xrvEyzjtZ5psQVzozzkcX+EigbxjbgktC+F
 sNV3+ZNPh7ZzkKw1WUUVL1yKIZAo=
X-Google-Smtp-Source: AGHT+IHTtpADBZQMEoTXV6gnur1erXn4lBjjwPAy984BWHlfEkko2973JB6mX0nKRksUTpxriPvW5hhtVzQzXB9ZEtI=
X-Received: by 2002:a05:6870:b4a6:b0:260:ebf7:d0e7 with SMTP id
 586e51a60fabf-287c1da9f8cmr762438fac.15.1727995434233; Thu, 03 Oct 2024
 15:43:54 -0700 (PDT)
MIME-Version: 1.0
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN> <d0d685c6-c9a4-41ad-acc5-99827f470b6d@HIDDEN>
 <87v7yalnu6.fsf@HIDDEN>
 <6879f0f5-ca8b-4aec-83af-9d68be45a287@HIDDEN>
In-Reply-To: <6879f0f5-ca8b-4aec-83af-9d68be45a287@HIDDEN>
From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Thu, 3 Oct 2024 23:43:43 +0100
Message-ID: <CALDnm52CvGJ1JGEXVs7PkWw42aRUMM=9K4dArZ0WarbNgFjOEA@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
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 (-)

FTR found this other discussion about code lens in Eglot.

https://github.com/joaotavora/eglot/discussions/1376

On Thu, Oct 3, 2024 at 12:26=E2=80=AFAM Dmitry Gutov <dmitry@HIDDEN> wro=
te:
>
> On 02/10/2024 14:57, Felician Nemeth wrote:
> > Dmitry Gutov<dmitry@HIDDEN> writes:
> >
> >> Running tests is the #1 use I found for them when writing some Go
> >> recently. Eglot doesn't have a built-in test launcher of any sort, so
> >> that feels like an omission.
> > Rust-analyzer has some protocol extensions to work together with a
> > remote "Test Explorer".  It seems a test explorer module is part of
> > Visual Studio and VS Code.  I think a similar Emacs package that lets
> > the user organize/run tests and review test results would be a good ELP=
A
> > package.  (Even if it does not work with Eglot at the beginning.)
> >
> > https://learn.microsoft.com/en-us/visualstudio/test/run-unit-tests-with=
-
> > test-explorer?view=3Dvs-2022
> > https://github.com/rust-lang/rust-analyzer/blob/master/docs/dev/lsp-
> > extensions.md#test-explorer
>
> That looks useful, thank you.
>
> I wonder how many of the popular servers implement this, though. And
> what UI an Emacs implementation should prefer (overall that seems a fair
> bit more work than adding buttons inside Eglot-managed buffers).



--=20
Jo=C3=A3o T=C3=A1vora




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#73452: Code lens support in eglot
Resent-From: Dmitry Gutov <dmitry@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 07 Oct 2024 23:34:01 +0000
Resent-Message-ID: <handler.73452.B73452.172834400215758 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 73452
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= <joaotavora@HIDDEN>
Cc: 73452 <at> debbugs.gnu.org, federico.beffa@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, Felician Nemeth <felician.nemeth@HIDDEN>
Received: via spool by 73452-submit <at> debbugs.gnu.org id=B73452.172834400215758
          (code B ref 73452); Mon, 07 Oct 2024 23:34:01 +0000
Received: (at 73452) by debbugs.gnu.org; 7 Oct 2024 23:33:22 +0000
Received: from localhost ([127.0.0.1]:49410 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sxxEA-000466-Du
	for submit <at> debbugs.gnu.org; Mon, 07 Oct 2024 19:33:22 -0400
Received: from fhigh-a8-smtp.messagingengine.com ([103.168.172.159]:51927)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1sxxE9-00045r-6e
 for 73452 <at> debbugs.gnu.org; Mon, 07 Oct 2024 19:33:21 -0400
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 2AD12114013D;
 Mon,  7 Oct 2024 19:33:08 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-10.internal (MEProxy); Mon, 07 Oct 2024 19:33:08 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm1; t=1728343988;
 x=1728430388; bh=tVk2jDdyC3JFUjOpiLxGt3Jmndm+f9oZmbJOKfH7lLo=; b=
 jPdW0zGLqd9ZQIXb2HLwwlXMqEq7LVLKT5qA/5J4bsO5C861XN98IlDFw5hgTaNz
 kMBjdtOxJ2UUcxl1Pm4c14c9dIRd82txkfAA/UVmwlh1O03WRaa8t5DCw0xmikTB
 5HVBdTtSYQ9zIi03EhRHyYenED31XdvH72DhtW/13okpcirSKwrFiW6wUBzu7RMV
 uUJh1iu2ziJtL6mOOf2lmmURBW45/vs9WveMETZb+3sYBMU2D4orTMAFFk5AqP13
 xtvs/NjecPrmYRmEAa+xGjxWJs66e22hE4MwgtL+sH20RHuTWSM4bjPgy16VDSrm
 TMENx/wBl3Rn+QyKC8yS1A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1728343988; x=
 1728430388; bh=tVk2jDdyC3JFUjOpiLxGt3Jmndm+f9oZmbJOKfH7lLo=; b=j
 PdsLjBe09sdNqIqAL2Z6LBHccWO/Wcm/zEJTQ2wWSDo3FhOuAbemcvf9WaKkjhXk
 5BxOodzKM8Rkhx8YE+9MWxqhQhp+pnzdI6R/cLXLmQxgPqHEWXHwNXSs6g+pkcl9
 Ymy195WSkFRJuC6QQOskFqynjs7eSH34BLkipm1ur+KxtjCXyFDYoETDFwLkCLrf
 8Pp8ex2YAawJzkoxwexG0oSHcO4MiF/4Fj1Pz11ezaBWszxtYlwO6p3UqB3u9KRd
 ZjnUfBXvtnHoHAVgikh3wuhXaaLJg5vzRHgbio+S4tl3okCLCj80GQtevxhk9HPR
 jijrX+QLChViTGoeyutOg==
X-ME-Sender: <xms:s28EZ1r4pTrZS0_GXuCuNA1v2PPTTJUN3BM2mJfdgrGQX1j17L8aiw>
 <xme:s28EZ3q2uVweU8prQZlhAiesFh_GzZN3ZTclCnIyH6K4PWXWevf94ConswgKrkpxW
 teTxlvAbqCGQOQplds>
X-ME-Received: <xmr:s28EZyOm3FDjTQS4aciXASdLg_bbcYTbYV5XyOYqqvua1n2ZNVrPUhxcQ4WxH3WZOIo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeftddgvdefucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu
 rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh
 htshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtvdej
 necuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdrug
 gvvheqnecuggftrfgrthhtvghrnhepfedvjeeviefffeeukeelveeikeegtddtveeileev
 gfdvgffhtdfggeeffeegiefgnecuffhomhgrihhnpehgihhthhhusgdrtghomhenucevlh
 hushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhithhrhies
 ghhuthhovhdruggvvhdpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpd
 hrtghpthhtohepjhhorghothgrvhhorhgrsehgmhgrihhlrdgtohhmpdhrtghpthhtohep
 fhgvlhhitghirghnrdhnvghmvghthhesghhmrghilhdrtghomhdprhgtphhtthhopegvlh
 hiiiesghhnuhdrohhrghdprhgtphhtthhopeejfeeghedvseguvggssghughhsrdhgnhhu
 rdhorhhgpdhrtghpthhtohepfhgvuggvrhhitghordgsvghffhgrsehfsggvnhhgihhnvg
 gvrhhinhhgrdgthh
X-ME-Proxy: <xmx:s28EZw6bXXIACovcmQ7Dqq0Vf6uPcN72gsWh-4j7dzaamgLMbH2oJg>
 <xmx:s28EZ05dVRyshorCEzlnL9qCjLluKiIAAxEpp1mjHg-lxzt6MiWltg>
 <xmx:s28EZ4hq--pW4wLoLJZo6Jg5imJwoOYravQbu7QJqTMjTtYdujLo6Q>
 <xmx:s28EZ24dwIYS6p8BpgL652KCd0-52nFBAzfMo05UAvv94VIwofno-A>
 <xmx:tG8EZ-R-jebuumAfuKWjVWLHRdIlfLc5J2-nuS6eSb1vTHKz_VwtRix_>
Feedback-ID: i07de48aa:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Oct 2024 19:33:04 -0400 (EDT)
Message-ID: <e3f934de-3d36-4460-bdac-441e0cac196e@HIDDEN>
Date: Tue, 8 Oct 2024 02:33:02 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <05f4d679-d2cd-409c-aafd-bfac2eda7a21@HIDDEN>
 <CALDnm51Mxo5_aTccnUBdzH2ObFJRDVBCCWQSMSRctTDSvQuLkA@HIDDEN>
 <86v7ylcatg.fsf@HIDDEN>
 <CALDnm51-7JEg9tD-7Pwz_KQQc6Nbtwpw96u-JT8a=A33MVqMHw@HIDDEN>
 <86ikukc6lz.fsf@HIDDEN> <d0d685c6-c9a4-41ad-acc5-99827f470b6d@HIDDEN>
 <87v7yalnu6.fsf@HIDDEN>
 <6879f0f5-ca8b-4aec-83af-9d68be45a287@HIDDEN>
 <CALDnm52CvGJ1JGEXVs7PkWw42aRUMM=9K4dArZ0WarbNgFjOEA@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <CALDnm52CvGJ1JGEXVs7PkWw42aRUMM=9K4dArZ0WarbNgFjOEA@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.7 (/)
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 04/10/2024 01:43, João Távora wrote:
> FTR found this other discussion about code lens in Eglot.
> 
> https://github.com/joaotavora/eglot/discussions/1376

Thanks, this one seems to have progressed less far than the other.

But in both threads there are screenshots, that seems useful. They 
mention actions like Run/Debug/Run Doctest/Refresh (for code evaluation).





Last modified: Sun, 12 Jan 2025 05:45:02 UTC

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