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) => a -> a<br> addOne x = x + 1<br> <br> -- >>> addOne 2<br> -- 3<br> ```<br> <br> Thanks for the great work!<br> Fede<br> </body> <lt-container></lt-container> </html> --------------fedihT3DIuo5Gw0kObL8KlVZ--
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
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
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.
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
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
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--
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.
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.
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"><eliz@HIDDEN></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 iVBORw0KGgoAAAANSUhEUgAAA0YAAABVCAYAAABtjvSwAAAABHNCSVQICAgIfAhkiAAAABl0 RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAArdEVYdENyZWF0aW9uIFRpbWUA VGh1IDI2IFNlcCAyMDI0IDE3OjAzOjU5IENFU1T07Vb7AAAgAElEQVR4nOy9d3xU553v/znT e1GZ0aig3iWQBEJIYEQzHWziGPd1Eic22TjJJvvbm2Q3m23399q92ZJNcu/deF1ixyVODNgG bEwzEIwpVgEkUEe9lymSRtPP/WN8DhrNmdGMKqDn/Xrxeolz5jznOed8n/J9nm+hEhMTaSxh Mvb/DNrMUgDAF//8EDwuxyLXiEAgEAiEmXHkyD9BLpegrq4DL77468WuDoFAINxTUEtdMZLH pEIo1wIATLcrAXpJvw4CgUAg3MMUFaWBz+djfNyGW7faF7s6BAKBcE+x5BUjAoFAIBAIBAKB QOAtdgUIBAKBQCAQCAQCYbEhihGBQCAQCAQCgUBY8hDFiEAgEAgEAoFAICx5iGJEIBAIBAKB QCAQljxEMSIQCAQCgUAgEAhLHqIYEQgEAoFAIBAIhCUPUYwIBAKBQCAQCATCkocoRgQCgUAg EAgEAmHJQxQjAoFAIBAIBAKBsOQhihGBQAgLiqKg1Wqh0WgWuyqzQiKRQKvVQiaTLXZV7iq0 Wi2EQuFiV4MQBIlEApVKtdjVINzDKBQK0vfdRdyvbVqn04V9zWLLJl+j0fz9Qt1MrVYjJiYG FotloW5JCAHyXQjhIJfL8eKLL6KwsBAXL15c7OrMmJUrV2L//v2QSCRoamqacTlKpZJVEp1O 51xVL2TEYjHUajU7qM62Dk888QRKS0tRU1MDl8s1ozLkcjm0Wi0kEgk8Hg/cbves6jRX3C99 XXl5Ofbs2YOuri6YzeaAv7tfZPNulSeDwQCZTIbx8fHFrkpYxMbG4utf/zqkUimam5sXuzpz Bo/Hg0ajgVKphNvtXhQ5kclkUKvVkMvlYdUh1DYtlUoREREBPp8Pp9MJmqbnquohEU6b3rdv H7Zs2YLa2lrY7faQyr8bZFOwUDeSSqU4cOAA+Hw+zp49i0uXLi3Ure9bXnjhBWi1Wr/jLpcL VqsVg4ODaGtrQ01NDWw2G2cZ5LvcXezYsQMrVqzwOz4xMQGLxYLBwUFUVlait7d3EWpHYMjK ysKaNWug1+vB5/PZ4263Gx0dHWhoaEBtbS0cDgcOHDgAjUaD6upqnDhxYtqydTodvvGNb8Dh cODXv/4158CjUChQXFyMtLQ0REdH+5zzeDwYGBjAzZs3UVdXF5YSkJ2dDYPBgNbWVkxMTIR8 HeCdvK5ZswZZWVlQq9U+5/r7+3Hz5k1UVFTMWNmaLfdLX6dSqbBq1So4HA709fX5nb9fZPNu l6e0tDTs378fAPD666+jp6dnUeoxEwYGBuBwOFBQUICrV69iZGRkTsrlmpPQNI2xsTFYLBZ0 d3ejoqJiThcmhEIhioqKUFRUBI1GA4qi2HN2ux0tLS1oaGhAXV0dAMyLzOv1ehQXFyMlJQUK hcLnnNPpREdHB27evInGxkY4HA6/66dr0waDAevWrUNiYiJEIhF7nKZpDAwMoKGhATU1NTCb zdi1axfy8/MxPDyMl19+edrn4/F4+O53vwupVIq3334bnZ2dfr+ZaZvu6upCdnY21q9fj6NH j05bF2D+ZDMcFkwxEolE4PG8lntSqXShbnvXo1KpwOfzYbFYwl7d4PF44PF4sFqt7ODA4/Eg l8uh0Wig0WiQnp6O9evX4/z586ioqPArg3yXuwuKosDj8WCz2diJKUVRkMvlMBgMMBgMWL58 Oaqrq3H8+PFFru3Sg8/n4/HHH0diYiIAYHh4GGazGW63GwqFAiqVCsnJyYiPj0dtbS0A4Nat W1i3bh2ysrJw8uTJaVf4cnNzwePx0NTUxDkIl5SUoLy8HAKBt/uemJjA0NAQnE4nW4eYmBjE xMRApVLh1KlTIT0bRVEoLy8HAFy4cCHkdwJ4Fapdu3ZBJBKBpmn09fVhbGwMYrEYOp0Oer0e er0eq1atwsGDBzkH/9kyXV96v/R1DzzwAPh8Pq5cueIzybqfZPNekKfJMnSvyZPL5cKlS5fw 4IMPory8HO+///6clMvMScbGxlj54PP5UCqVUKvVSEhIwOrVq3Hs2DFWBmeDWq3Gs88+C4VC AY/Hg/7+foyOjoLP57O7jDk5OVAqlaxiNJcyLxQKsX37duTn5wPwKioWiwXDw8Pg8XhQKBRQ q9VITU1FamoqDh06hIaGBr97BGrTALBhwwaUlZUBAMbGxtDX1webzQaZTAaFQsG2BWanqba2 FitWrEB0dDSio6MxODgY9PmSkpIgl8thNps5laLZtOnq6mqUlpYiLy8Ply9fnrYuwPzJZjgs mGJkNptx6NAhRERE4MaNGwt127uep556ClqtdlYrTkeOHMHt27fZ//P5fERERECv12P9+vXQ aDTYunUrIiMj/VZIyHe5O6mursbZs2d9jqnVapSWlqKoqAiFhYXo7e3FtWvXFqmGS5Nt27Yh MTERg4ODOHLkCPr7+/1+o9PpoNVq2QGupqYG69atg1wuR1JSElpbW4PeIycnh71uKjt37kRB QQE8Hg8uX76MK1eucJrx6HQ6pKSkhGWKkJKSgoiICHR1daGrqyvk6/Ly8rBnzx5QFIXGxkYc P37cp048Hg/5+fnYunUrVCoVnnnmGfzud7/jfHezYbq+9H7o6yQSCfLy8uByuVBZWelz7n6R zXtFnurq6iASieB2u6d9b3cj1dXVWL9+PTIzMyGXy+fUHPDYsWM+cxLAayK1ceNGJCYmYteu Xejv7w9pohwIgUCARx99FAqFAnV1dTh16hTGxsZ8fsPj8bBs2TIfhWauZF4kEuGZZ56BXq/H xMQEPv30U9TV1fkpNjweDwkJCUhKSuI02Q7WpnNzc1FWVgaHw4EjR46gqanJT5FjFjza2toA AO3t7bBYLFCpVMjJycH58+eDPl9ubi4AcCqqs23TLpcLFRUV2LBhA4qKikLaoQPmVzZDYUGD LzQ2NuLy5cuwWq0Ledslh9vtxuDgIGpra/Hyyy/jiy++AOD1qWBWNiZDvsu9gdlsxieffILG xkYAQEZGxiLXaGkhEAiwfPlyAMChQ4cCTsQY0wYGo9GI7u5uAN6V8GDEx8dDrVbDYrGgvb3d 51xxcTEKCgowNjaG1157DZ9++mnAAWNgYACXL1/G0NBQyM/HPBvXpDcQWq0WO3bsAEVROH/+ PA4ePOhXJ4/Hg+vXr+O1117DyMgIhEIh9u3b52PmtVDc631dbm4u+Hw+GhoafGz27xfZvJfk iZnIXrt2DR6PZ0HvPRe4XC7U1dWxiuZ809PTg/feew8WiwV8Ph8pKSmzKi8+Ph46nQ5msxkf fvihn1IEeGWlra2NlXFg7mR+79690Ov16OjowEsvvYTr169zmsl5PB60t7fj/PnznHISqE0D QFFREQDg9OnTaGxs5NzdslgsuH79us8xRslhlLpACAQCdh4xtd+fqzZdW1sLmqbZ5wyFhZbN qZCodPc5TqcTp06dQkdHBwCvg99iTEgIcwezKhMREbHINVlaxMTEgMfjwW63h233zAw6mZmZ rDkXF8xAdvPmTZ9BUCqVYv369QCAkydPYmBgINzqB0UsFiMjIwNut5s1OQmFtWvXQigUoru7 e9pAHMPDw/j4448BeGWXmcgTQoeZJNy8edPn+P0im0SeFhZmAr1Qk0+Hw8HORWY7fsXFxQHw +puFq5jOVuaTk5ORkZEBp9OJo0ePzmqhJVCb5vF4MBgMABC2NRHzXbVaLWJiYgL+Li0tDWKx GD09PT79xly2aYvFgo6ODkgkEqSnp4d83ULL5mQWzJQO8Gq/UqkUN27cwOjoKHs8NTUVUVFR uHLlChQKBXJzc2EwGCASiTA0NIT6+npWMCiKQmZmJlJSUqBSqViHvpqaGs7GMblsZssyPj4e QqEQ/f39aG1t5bSrnAwzadDr9YiIiMDIyAj6+/tRV1fH6fgpFAqxevVqDA4OorGxETKZDNnZ 2YiIiMDY2BhqamoQFRWFuLg41lFx3bp17CoGc91ccvLkSTz33HNQqVRISkpCS0sLey7QdwG8 5luZmZnQarVQq9Ww2+0wGo2ora2ddgCOiYlBcnIyO2gPDg7ixo0bcDgcKCwsRGNjo89WelRU FDIzM9Hc3Iz+/n5ERkayW6lGoxGVlZVs52QwGJCSksJGoBkdHcXQ0BCuX7/OGWiCKfvatWuw 2+3Izs5mbWuNRiM6Ojp8JoTx8fHIyspCREQE7HY7BgYGcO3ataAO6cnJyUhOToZarYZYLMb4 +DgGBwfR3Nwc1sr9dDAdudFo5Dw/m2+mUqmQkpKCmJgYqNVqjI6Oore3F/X19SE74+fm5kKj 0bD2zlPR6XRITk5GbGws3G4367g5VfYA3/Yrl8uRm5uL2NhYiMViDA0NoaWlhTUhCIRSqUR6 ejpiYmKgUChgMplw69atkJ5lMkxbF4vFbD8QKnV1dXjwwQchlUqRnJzs0/4YKIpiVzCnvreC ggKIxWK0traivr4+7LpPR2xsLPh8Prq7uwMGapmKSCRizTA+/fTTkK7p6OhAY2MjMjIysGLF ClRXV7PnmH6ztbUVPT09WLZsGbKysqDValk5rKur86tfUlJSyH1psL4O8H6D9PR0GAwG6HQ6 jI+Po7+/H42NjZy/Z8qcmJhAXV0doqOjkZOTg6ioKPb+07W7qKgo5OTksJGsbDYbTCYTbt++ zU4imfcTExMDmqb9Vq/vB9m81+SJKd/j8QQM5BGuPE2tc3JyMtLT06HVajExMYH+/n52DAtE OONQV1cXXC4XoqOjIZVKww64MhOYhdlA41eoMDIfGxsb9rWzlfmSkhIAwOeffx40gtx0BGvT NE3D7XZDIBAgNjY2LOVkaGgIvb29MBgMyMnJCeiDF8hMcK7Hm7a2NiQmJiIhISHk8hZDNhkW VDEqLi5GZGQkWltbfTqF9PR0FBUVISoqCllZWRCLxey5tLQ0lJSU4OLFi7h+/ToeeughxMfH +5RbUFCAVatW4d133/Xb6mPK5vF4WLlypU+c+PT0dKxbtw5Xr17F2bNnOR0sk5KSsHv3bs74 8mVlZThy5IhfhDCRSITy8nK0trZCIBBg586dPpFEamtrkZKSgjVr1vg8Z1paGnt+rhWjgYEB DAwMQK/XIzEx0acjCPRdHnroIeTk5PhEeWEoKyvD+fPnOQcEHo+HBx54AGVlZT7XZmZmorS0 FCMjI4iOjobZbPZRjHQ6Hev8nZubi5KSEvb6kZERVFRUQCKR4Omnnw4YG7+srAwffPCBn90w U3Z8fDw0Gg0iIyN9zq9cuRIrVqzABx98gE2bNqGgoMDnfG5uLlavXo3Dhw/7KdISiQSPP/54 wA46NjYWhw8f5jwXLjwej63b1O1zYObfDPDa9m/bts2n/QHe9pWbm4u33npr2voVFxfjwQcf xNjYGN58802fcxRFYe3atXjggQf86rd27Vp88sknfqtmTPuNjIxEVlYWJBIJey41NRUlJSW4 fv06PvroI876ZGdnY8eOHT7XAcCqVaumfZapDAwMwOl0QigUYu/evTh48CCn+QYXExMTaG5u RmZmJnJycjgHYkZR7+vr87O9T01NBQDO6+YCRnbDiXaYkJAAPp8Pm8027eLSZK5fv46MjAwY DAaIxWJ2ksf0m+np6eju7kZxcbHPdQUFBSgrK8P777/vs4IaTl8aqK8DAI1Ggz179iAhIcGv zhs2bMCJEyc4Ff3i4mJoNBokJCRg5cqVnH3eiRMnOP0Bd+7ciRUrVnC214KCAvzyl79kF4OY BSZGDidzP8jmvSZPTPmMs/hUZiJPTJl5eXkYHh72M5fOy8tDSUkJDh486LeLMJNxiAlYEBcX B4PB4OcXNNcwgQhcLpdfXx8ujB+kQqHArl278Mknn4QcwGo2Mi8QCLBs2TIAmHU46WBtmqZp dHd3IyUlBeXl5RgaGgrL97O2thYGgwHZ2dmcCw0ikQhpaWnweDx+C4VzPd4w40o4SuxCy+Zk FlQxmo4VK1agpqYGjY2N6Ovrg0QiwYoVK7Bq1SqsW7cO69atw/DwMI4fP46enh7YbDYkJCRg 8+bN0Ov1ePDBB/HBBx9wlr1x40Z0dHTg7Nmz6O7uhkwmQ1ZWFkpKSrB69Wo4HA786U9/8rkm Li4OTzzxBADg0qVL7Kp5XFwc1q9fj8jISDz11FP4zW9+wzkIJScnIykpCUajETdv3mSj6oyO jqKqqgrNzc14+umnAYCtF4B5czQbGRmBXq8POTHn6Ogo6uvr0dTUBKPRCJvNBpVKhby8POTn 52PDhg3o7Oz0a6wbNmzAmjVrYLfbce7cOXR0dMDhcCAuLg7l5eV+4R6nwihH7e3taGlpgdPp ZFcLbDYbrFYrKisr0draykYMioiIQElJCeLj47F371689NJLnCvfqamp6OrqwtGjR9Hb2wuP x4PU1FSUl5cjJSUFP/zhD9l6d3V1wWg0IioqChs2bIDBYMCePXvw8ssv+3Rie/bsQWxsLNra 2nDhwgW2E1UqlYiLi5tRuMmkpCQkJSX5HNPr9SgpKYFCoUBFRQXnystMv1lhYSF27NgBp9OJ M2fOoL29HWNjY1AqlUhKSgq4Wj6ZgoICbNmyBVarFe+8847fimB5eTnKysowODiI06dPo6+v D1KpFDk5OVi3bh327NmDgYEBTofcgoIC3Lp1C/X19ejr64NQKER2djbKysqwYsUKdHZ2+jnU p6WlYd++faBpGpcvX0ZDQwPMZjOioqJQWlqK5OTkaZ9pMh6PB8ePH8fevXsRGxuLb3/727h5 8yZu3ryJzs7Oac05amtrkZmZiYyMDPD5fL9BnFm945p8MyYVw8PDYdU5VBhzi3Ac2JnFiXDl m/k9RVHQaDR+94yNjYVOp8OFCxfQ1tYGi8UCg8GA8vJyREZG4vHHH8d//dd/sX3CXPSlYrEY zz77LORyORobG1FRUcEu4DBhePfu3QubzcY5GeLz+Vi1ahUuXbqE9vZ2DA4OQqlUoqSkBNnZ 2di2bRu6urp8VuxLSkpQUFAAs9mM06dPo6urC06nE3K5HDExMRAIBD7mO3q9HgD3N7ofZJPI 0x0iIyMhFotx+vRpdHd3w2KxQKfTYcOGDdDr9di7dy9eeeUVH4uVmY5DAwMDiIuLg16vn7PJ Z1JSko/MURSF5ORkVjk9duxYSGNKMLq7u3Ht2jUUFBRgxYoVSE1NxbVr11BfXx/S7spMZT46 Opptm7MNJR2sTQNe3yJGjp555hncvn0bN27cQEtLC6c/02Ru3ryJzZs3Q61WIy4uzsfPCvD6 KAsEAjQ2Nvrtxsz1eMM8XzCzPi7mQzZD4a5SjLq7u31inZvNZpw8eZI1gQOA1157zWdSajab YbFY8PTTTyM7OxsfffQRZxjR4eFhvP322+xAYzKZWLvKnTt3oqSkBFVVVayCQ1EUtm/fDoqi cOzYMZ9Jl8lkQnNzM5555hnodDps2rQJR44c4XymiooKnD592s9pzmQywWQywWg0QqvVor29 fd7zIDCNeOrqeSC4VhmGh4fZ3Zj8/Hzk5+f7TLIjIiJQXFwMt9uNN954w2ciYDab0dHRge99 73vT3vvDDz8MuKL0zjvv+B0bHBxES0sLnnvuOURGRiIlJSWgudSbb77p8z1GRkbgcDiwa9cu AMArr7zisz0+OjqKvr4+Nv9BQkIC20gZJ1KapnHo0CEfEwebzTbjqDsGgwFPPvlkwPNOp9Nn dZRhJt9MIpFgw4YN8Hg8eOONN3wGlbGxsZB2EfLy8rBjxw7Y7Xa88847fiYbGo0GJSUlsFqt eOONN9hOfWJiAp999hncbjc2btyI8vJyHDx40K/83t5ev0WPwcFB8Hg8lJWVoaCgwKeN8ng8 bNmyBQDw8ccf++yujY2NoaOjAz/+8Y+nfa6p1NbWwuVysQNOQUEBCgoKYLfb0djYiFu3bgVc ZWtubsbExASkUilSU1N9djL4fD4yMzPh8Xj85F4oFEIoFAIIPGmcuhs+mZaWFh+TLC6YcMPh 2MozmcnDnRwYjUZ4PB7weLyA2c1/+9vf+rQds9mM27dv42tf+xqioqKwdu1anD59GsDc9KXr 16+HXC5HTU2NzxhksVhw+/Zt7Nq1C8uXL8eDDz6I1tZWzpXpjz/+2GdXaHR0FO+//z6USiXi 4+ORm5vrEyGKsbc/efKkT7Qqh8PBaWbEfKNAJiX3umwSefLl5Zdf9vnWjPnfgQMHEBERgYSE BLZfn804xLT5uQw5vmbNGp9dt6kIhUJQFDXr5KSffPIJzGYzSktLoVAo2AV0i8WCuro61NbW BlQ6ZirzjIyNjo5yzjV5PB67uMtFZWUlm+tnujY9NDSEt956C1u3bkVCQgIb9psJKnHr1i3U 1dVx1sNqteL27dtIS0tDdna2n2LEmK1ONaObj/GGeT4+nw+hUBhyouf5kM1QuKsUo0DmY/X1 9cjLy0NfXx/nC+3o6GAFPCoqinMid+PGDc5GeO3aNRQXFyM6OhppaWnswJaYmAi9Xo+BgQHO 0K52ux1nzpzBE088gZycHHz00UecnVuoOUQWAub55yIDemNjI/Lz81lbeoaCggLw+XxUVlZy +tWMjY2hubmZNU3gwu12z2ib3eVyobW1FZGRkQF3pW7fvs0pBw0NDaxixNVJTUxMoL29HVlZ WYiOjmYVI4qi2H+xsbFzGrZ1qnmGUChEdHQ0li1bhtLSUmRnZ+O1114L2Sck0DcrLCyEVCrF 9evXZ+RkmZmZiT179sDpdOLdd9/lLKOwsJCVC66VrsrKSmzcuDHgVnsgu+S6ujqUlZX5fe/k 5GRERERgYGCA0+TQ4/HgzJkz2Lx5cyiP6FeXpqYmpKWlIScnh3VgZZTO3t5eHD9+3M+umwls UFRUhJycHJ/+LjU1FRKJBC0tLX6r0pODpXCZXAFexZRxRp6KzWabVjFizCdDzU4O3PF1m2p6 OR0ej4edyHL5aLpcLs6JnMPhwIULF7Bv3z5kZ2ezE9nZwufzsXLlSrjdbr8Q+YC33/z0009Z v734+Hg/fwAAAdtOfX094uPj/WSUeX+xsbGcYXynwixoBWvv97JsEnnyrTPXOGS1WtHZ2Yn0 9HRER0ez481sxiFGnkJdMA2F/v5+vxV+mUzG+lrt3LmTzeszGzweDy5evIiqqipkZ2cjOzsb y5Ytg0qlQklJCUpKSnDr1i2cPHnSb9FntjIfKGgDRVEoLS0NWOeGhgZWMQqlTff39+PNN99k F1cyMzOhUCiQkpLCmtmdOXOGcyG4pqaG7QvOnDnDzn1kMhmSk5M5dyznY7zxeDxwOBwQiUSQ SCQhz0HnQzZD4a5SjALBbLkG6zBHR0chlUrD7lQBoLW1FdHR0T5RUphBLNiEorW1FXa7HWKx GFqt1k8RWKyM3IFgnm+mpnoSiQRKpRISiYTdEp0qsIzvDtfEIVTCvVYul0OhUEAkErHPGK4c 2Gw21kZfLBZzTt4ZOZz8zC6XC83NzcjIyMBjjz2Guro6NDc34/bt27NyFrx06RLnoAp4A0M8 +uij0Gg02LZtGz788MOA5YTyzRgTlnDs+hlSU1Px8MMPg6Io/OEPfwi4ssooY2Kx2M9HkMFm s7HfcTozAYZAfQNzv+kUgpnidrvR0NCAhoYGCAQCJCcno6ioCCkpKTAYDHj88cfx+uuvw2Qy +VxXU1ODoqIipKen+6ycBcsPY7PZ2ImfSqXiXMU7d+6c36paaWkpaxIxHYwPZDhJppmJRrjR pdRqNZssMNxoTsxkS6lUhiUnwYiMjGSDwwTyy7Farejo6EB6ejqioqLC6qMCySijMK1duxbx 8fFoaGhAc3Ozn8wwhPqN7lXZJPIUGsykerI8zWYcYuRpsh/0bDl79mxA0yfGbDszMxMFBQVz kotvYmICVVVVqKqqglQqRWZmJlauXAm9Xs8GNnnrrbf82s5MZJ55nzKZjNMEz+PxcPoU79mz h92JYQin32Xyy504cQKxsbGs769SqcRDDz0El8vlt7nQ1NQEu90OhUKBhIQEdjzMysoCj8fD rVu3/O49X+PNTORsPmQzFO4JxSiU7dbZbMkyA4RarWaPMRN8phMKxMjICAwGAzQazZxGHpsP mAFn6pZqMOLi4lBUVISkpCQolcppf8+8t9lEagmFnJwc5OfnIz4+fkbKMBfTyVCg80eOHEF5 eTny8/ORm5uL3NxcNspMZWUlZ6br2dDV1YVPP/0Uu3btQmZmpp9JQrjfjFEiwv1mFEVh06ZN 7ApTsOzzjFysXr0aq1evDlpuOG050G8ZWZ+u/c4FLpcLTU1NaGpqQmpqKvbt2weZTIa1a9f6 BYXo7u5mTXTS0tJQV1cHoVCI9PR01uSJi+HhYURHRyMhIYEzCh/XxCovLy9kxYiZEIYzADED pkajAY/HCzlkLvNtZhJa2m63s9YBKpVqTvpcRv6nk5Xh4WGkp6eH7KPJEEhGr169CsAbCCQx MRGJiYnYunUrBgYGUFNTg8rKSp/FtZl8o3tJNok8hcZcj0OMPM2FUhgK1dXVSEhIQF5eHrKz s+c8SfnExASuXbuGa9euYe3atSgvL0dcXByys7P9/IVmIvPDw8OgaRo8Ho9zt4+maU4Lh507 d/opRjNp04A3fHdPTw8uXbqE/fv3IzIyEps3b/arL5MPqKCgANnZ2axiFMxnkHnGuR5vZiJn Cy2bDPeEYjTfMMI6uSNjBiS5XB70WmalaraOhPNNVFQUdDodaJoO2YltzZo12LhxI2iaxs2b N9HT04Ph4WE4HA4YDAZs27bN7xpmxWW69zZTKIrCV7/6VaSnp8NqteLGjRvo7e2FxWKBw+FA cXHxgse9dzgcOHXqFM6ePYusrCxkZGQgJSWFDaBQXV2N48ePz+k9me1vgUCAqKgo1lRkJt+M kf9wt6tpmsbBgwfx7LPPQiaTYd++fXjvvfc4B27GRKu5uZnTNHUyc2HqOd9yGIiWlhZUVVVh zZo1Ac0Ca2pqsH79emRnZ6Ourg4ZGRkQCvYNRtIAACAASURBVIW4fv16wF1mZle7qKgIV69e DcvkLRQmR/IKlY6ODtA0DT6fj7y8vGm/KwMTAre9vX1GC1pc/fVsWMy+/urVq7h69SqSk5OR lZWFtLQ06HQ6bN68Gbm5uXjzzTdZWZ7JN5rM3S6bRJ5mx0zHoZmY0c6W5uZm5OXlscEH5ouL Fy+yEQvj4uI4FYFwZd5qtbIRfktLS2dlHTPbNm00GnHmzBns378fWq0WMpnMb9e0trYWBQUF yMrKwsmTJ9ndI5PJFDDK3VyPN3w+n11ADaesxZBNYAkleA22Pc+sZk+OwMH8HSgsNOC1MdVq taBpet6iRc0VW7ZsAY/HQ21tbUgdMZ/PxwMPPADA67h69OhRVFZWoq2tDT09PexEfKrdfCjv bTbExcUhPT0dRqMRL730Ek6dOoXa2lp0dHSgr6+P3f0LZadkrnG5XKitrcXhw4fxi1/8AidO nABN0ygsLJzz92G329lJAGMaOdNvxqyyziThntFoxB//+Ec4nU6kpaVh+/btnL9jVmKNRiPq 6+uD/psLmGeaLzkMBuPsGyiRMpMJPC0tzSd3C5fZBkN1dTVomoZcLmcT780lzMATjpPr+Pg4 q6CvX7+enegFIzo6GitWrADgDUzDRbByVCoVBAIBxsbG5mwVkemzIiIigia/ZsaJmQZUCUZr ayuOHz+OX//61/j9738Pq9WKmJgYn7QBjL19oAADoXA3yyaRp7kh3HGIafMLOflkZHm+IvBO hrFkmEuZr6ysBOAN7Z6ZmTnjus1Fm55sqcHl99TR0QGz2Qy5XI6kpCQ2ncdCjjeMjNE0HVY7 WwzZBJaQYsR0nlORSqXIysoCTdM+PhZMAIekpKSA24MrVqyAQCBgE1HNBGZyO3WLda7g8XjY sGEDUlJSYLVafaIiBUOv10MoFMJsNnNGdQnkeMj4mBQXFwd8pqnO/+HA5IRgAm5MhelgFroh TcXtdqOyspKVo6nKSCCnxlBJSEgARVGwWCzsCtFMvxmjtBQUFATNAh6Inp4efPDBB+zgy+V4 yqxMFRQUQKFQhH2PmdQJCN5+mQSOgZjpN0pMTAQQ2GSVWakTCARYvnw5UlJS2OzggRgeHmaD SKxatQpFRUUzqluw8oHwFckLFy7A4/FApVJh586dQSehCoUCu3fvBkVR0ybmDaSkM8/Nde1M +1ImrL1IJAqY3yoqKgpJSUmw2+1BTUbngtbWVvZbT+4rmW80XbqDYNztsknkaW6ZbhyafGyq GSGPx4NUKp2XiGDMOD712cViMaRS6ZzNh3g8HnuvQLsjM5H5GzdusArt9u3b2bxG4TKXbdpi sQT0aWN2yrKzs6c1o2PqNZfjDTOuhGuqGkg255sloxgB3iSSkyc7IpEIe/bsgUgkwrVr13x2 ffr6+lBfXw+KovDwww/7CW5iYiI2bNgAmqZnFXmOWdmemshttqjVamRkZOAb3/gGysrKYLfb cejQoZDNBZhdJbVazTY8BolEgt27dwPwj3NfXV2N0dFRyOVyPPLII36danZ2dtg21Vz1Sk1N 9ZtgR0REYOXKlQAW1iY1JSWFcytcKpWyfmuTVwWzsrLw/e9/H1/72tfCHnQoikJGRgb7/ifn 3prpN/viiy/gdDqh1Wqxbds2v5U1iqKmrWdTUxNOnDgBwJvHill1Y2Ai3gmFQjzyyCM+/nwM PB4v6AprOPT19aGhoYFtv1Mn/FFRUQE7+4iICDz//PP4zne+4xMoQqlU4pFHHkFeXh7n+xAK hWzocI/HE9R2nlmt27p1K3g8XtDVO4aTJ0+ip6eHTSXw+OOPc074+Hw+cnNzw+pTGEUyXNOW vr4+NkhIXl4enn32WU7lKi0tDc899xwMBgNMJpNPCGMu9u/f7/dsaWlpbCqAqTnngJn3pR6P hy3vgQceQFZWls95lUqFhx56CBRF4cKFC3OWgT0uLo5zZ5uiKPY7TJ4QMJPbqKgoP4XhfpFN Ik8zJ9xxCPDKGvN+p0bzXbZsGX7wgx+ElF4jVMRiMYqLi1FaWgqn04nLly/7nN+/fz9+8IMf +CXj5SI9PR07duxAamoq57jBBCWIioqCxWIJmow1XJn3eDw4ePAgJiYmIJfL8dRTT2Hz5s2c 5uhSqRRr1qzhPBesTQPA3r17sXr1as45E0VRyMzMZK00mF2sYM9XUFAAg8HA5mgMxlyON0x/ Fk4C8WCyOd8sKR+j8vJyLF++HJ2dnWz2YoVCgYGBAc6O8cyZMzAYDNBqtfjGN76Brq4ujIyM ICoqip0wnT9/flYrPlVVVWwHrdPpMDIyAoVCgffeey/kMnbv3u3jl6FQKHxWXLq6unDs2LGw HFNHR0fR1NSE9PR0PPnkk7h9+zZMJhOUSiUSExNZ28+pDrJOpxOffPIJ9u3bh5SUFBw4cADd 3d2wWq1ISEiYdpV+Opqbm2GxWKBSqXDgwAE0NzfDZrMhIiLCTxlYCORyOR577DF4PB50d3fD ZDJhfHwcUqkU6enpkMvlaGpq8gnlu3LlSshkMshkMqSlpXF2wgUFBX4djVgshkwmYx2TP//8 cx87/Jl+s9HRUZw7dw5btmxBYWEhEhMT0d7ejtHRUajVaiQnJ6OzszNo9DvAK8sqlQplZWXY vXs3xsbGWPtrj8eDY8eO4bHHHkNcXBy+9a1v4fbt2+x7YZxfGdPIuWBy+/3617+O7u5uNslx sERzOTk57Ep9QUEBu9KYk5ODzMxMZGZmgqZpWCwWWCwWdnCMioqCWCwGTdM4efJk0Ch/9fX1 PkpoKM/scrnw9ttvY9euXcjJyWHb18jICJvLRaPRQKvVsoNsS0tLSGUzihGTWDScHfArV67A 4/Fg06ZN0Ov1+OY3vwmj0Qij0Qg+n4+oqCjW36KzsxOHDx+eNnqYVqvF888/j9bWVpjNZuh0 OjY87KlTpzgjt82mL62srER6ejqSk5Pxla98BX19fejr64NSqURCQgJEIhGampoCmmvNhN27 dyMiIgL9/f0YHh7G6Ogo+Hw+kpKSEB0dDZPJ5JO2wGq1wmQyQaPRIDY21mdF+36STSJP4TOT cQi4Y2UwPj7uF3yHmcgH2oUIxs6dO33mJBRFQSKRQCqVgqIo2Gw2fPTRR36KWjj3LCwsRFpa GgoLC+F2u2E2m2E2m+FyuaBSqRAdHQ0ejweHw4FDhw4FlZGZyLzRaMRvf/tbPPLII2zy9dWr V6O/v59ty1qtFmq1GjweDzRN48qVKz7fIFibNhgMyMvLQ15eHrZs2YLx8XFYLBaMjo5CLBYj MjKSXRy+deuWX3qPyYyMjKCnp4f1LQxlsWMu2zSzaxdOPrBgsjnfLBnF6PLly5DL5cjLy2Mn 5zabDZWVlThz5gznRMBsNuOVV17Bli1bkJ2dzUYO8ng86O/vx6lTp2YU4ngyzc3N+PDDD7Fh wwa2fIvFArlcHrL97eSdE5qmYbfbYTKZ0NnZifr6+qAmBsE4evQotmzZgvz8fKSmprLl19fX 4+zZs9i/fz/ndU1NTXj99dexc+dOGAwGNmfR+Pg4Tp8+jaSkJKSlpc3IUdZms+EPf/gDtm/f joSEBHZb2Ol04tKlS6itrcU3v/nNGT3vTKBpGp9//jkyMzOxbNkyny11u92OS5cu4bPPPvO5 pqWlBYmJiXA4HAG366eaMNA0jbGxMfT09KC/vx9XrlzhHMxn+s2++OILDAwMYOvWrYiKivJZ GRoYGAjZwfTcuXNQqVTIy8vDI488gjfffJMd/Pr6+vDSSy9h48aNyM7ORlZWFruaStM02tra 5tSx3WQy4dVXX8WOHTuQlpbGfh+Xy4Xq6mpcunQJL7zwgt91bW1tWLt2LXg8nk9CzKtXr6Kv rw85OTnIyMiAWq322flyuVyor6/3yTofCJvNhsbGRmRnZ2NkZCRkH0Wn04kPPvgAFRUVKC4u ZvM1Tf5eVqsVDQ0NqKqqCrl/slgs7MCZnp6Ourq6kK5j+OKLL9Dc3Iw1a9YgIyMDWq2W7Wfd bjdu377NZqWfDpfLhSNHjmDTpk0+Mjw4OIiTJ08GbDOz6Utpmsa7776L1atXY82aNYiJiWGV Z7PZjDNnzqC6ujqcVzItVVVVyMzMREJCgo+izgROOX/+vN9krr6+HmvWrEFOTo7Pe7jfZJPI U3jMZBwC7kQn43qPzPgzEz+gqck/PR4PzGYzO5ZUVFRwmrsz9wxFMTp8+DDS09ORm5uLpKQk P1mz2Wy4du0aLl++PK3iPFOZN5lMeO2115CTk4MVK1awbXlyezYajWhqakJlZSXnLk2gNt3b 24v//u//Rm5uLrKyshAREQG5XM6ahtM0je7ubly8eDHobhhDTU0NqxiF2r/PRZuWSCRITk6G x+MJGNmSi2CyOd9QiYmJs0s9fJezfft2FBUV4ezZs7h06RIkEgm0Wi1sNtu0W4lT0Wq1EIvF GBoampccRWKxmF1NuZtg8jR5PB4MDw+HleuESUrqcDgwMjICj8eDZ599FnFxcXj99dfDzig+ GblcDo1Gw64ozDaL9mwRiURQqVSQSqUYHR2FxWIJGHJWo9HAarXOm8nfbL6ZSCRCZGQk3G43 LBbLvMmjQqGARqPBxMQELBbLnESjCwSPx0NUVBQoioLRaJz2vUulUvD5/KADtFAohFqthkQi gdlsXpTIlBRFQalUQiaTgaZpWK3WGdejoKAAO3fuRGNjIw4ePDirejE7ona7HePj4yGFXpbL 5fj+978Pl8uFn//856AoChqNBlKpFENDQ2G1ldn2pXK5HGq1GiMjI/PeH/P5fCiVSigUCths NpjN5oBtISIiAgcOHIDVasWvfvWrgO/1fpNNIk+hE8449OKLL0KlUuHVV1/180stLS3Fxo0b 56Q/CJUf/ehH4PP5nPWZDsZkkKIomEymOTNRDAeBQAClUgmpVAqn04mxsbFp6xFqm2byCikU CnbOE2pI+7liJm16puNKMNmcb5bMjhGDzWabsb1iuIpUuCx2wIBAzMZB1Ol0+ik/jL3sbB3q xsfHFySqTag4HI6QnylQEse5YjbfzOFwLIhN79jY2IzMNGaCx+PxMyMJRiiDqtPpXPTcZZPN pmbLrVu3sGXLFqSlpUGr1c6qv7NarWEn25wKTdOsCVW4zLYvXci+xe12w2QyhdQnjIyMoL29 HYmJicjNzQ1oEnO/ySaRp9AJdRzKysqCSqVCb28v58STMScOJ+/hbFCr1eDz+XA4HDOK1Dcx MbEoytBkXC5X2DIWapv2eDwh9xPzxUzaNBOAJJwd0ulkc75ZUsEXCItPdnY25HI52traFjxp F4FACIzD4cDFixfB4/Gwbt26xa4OIQDnzp0D4HXsn0kUSQKBoig2tQMT7GIqjMnWZHPi+YQx 82ptbV3wnZDF5n5t0zk5OdDpdOjs7AxZjkKRzfnm/vkChLsGpVKJ9evXIyYmhnVmFIvFWL58 OXbs2AGPx4OTJ08uci0JBMJUrl69CpPJhNzc3AVPjksIje7ubtTW1kKj0SA9PX2xq0O4B2EC fDQ2NnL6IDPm1KOjo2HttM+GhVbE7ibu1zZdXFwcduTm6WRzIVhypnSE+ScpKQnr1q3DunXr 2IReTES08fFxHD58eNHNPAgEgj9utxsfffQRHA7HXWWmSvDl7NmzaGlpQUNDw2JXhXAP0tra ikOHDgVUekQiET777LMFHaf7+/tx4cIFNDU1Ldg97ybuxzb93nvvITU1NSyz/ulkcyG474Mv 5OfnIzExEXV1dUtyJWIxoCiKzbAcEREBqVSK4eFh9Pf3o6qqata24gQC4f5DLBbjwQcfhMfj wccff7zY1SHc4xB5IhAIM+G+V4wIBAKBQCAQCAQCYTqIjxGBQCAQCAQCgUBY8hDFiEAgEAgE AoFAICx5iGJEIBAIBAKBQCAQljxEMSIQCAQCgUAgEAhLHqIYEQgEAoFAIBAIhCUPUYwIBAKB QCAQCATCkocoRgQCgUAgEAgEAmHJQxQjAoFAIBAIBAKBsOQhihGBQCAQCAQCgUBY8ggWuwIA UPzj9wEeH5bW62j4/d8udnUI8wDF54MS+oob7XCC9njmpHzdw1sQ8+gOAEDLP/5vjDe0zkm5 hPsTiscDJRJynqPdbtBO1wLXaG5J/dl3IM9MAQDUfO1H9/zzhEvG//orSOJj4Bwxoe67/7Rg 9xWolZClJUKoUQJ8PtyjY7B19cPW1QfQtP8FFAWeWOT9m6bhsTtCug8lFILie9c1aacTtDt4 PypJiIE4Vg+BWgna4YS9bxDWlk7QTmdYz0cgEAj3O3eFYkQJRKAoHnj8u6I69yWSyHgIZWoA wFhXHWh6bhSSUNE9vBkxj+3yPUjTcE/Y4Bw2Y7y+BZaqm7BU3eKeQEwDxefdUbwoag5qTLif URZmI/lHzwc8TztdsPUMYPxWE4ZPfe6d2N5DUELBpIWIpdceKIHgy3fArfzONdLkeBie3APl iizO827rBMZqGjF86iJGbzSwx3lCAXJf+f/BEwkBmkbtc38N95h12vtl/eInEOkiAQCNP/pX TLR2+f+IohC5pQy6vZsg0kf512nCBuO5q+g/fBIu82iIT0ogEAj3N0QTWSLElz+DyNz1AICK f/0q3LbxRa4RAIoCXyYFXyaFJCEGkQ+uxUR7N7p+8y6sLR2LXTvCEoYSCiBNjIU0MRaRWx9A 3x8/xsD7pxa7WoS7EO0Dq5Dw7SdBCfgBf8OXSaEuWQHweD6KkcfhxFhtI1RFuQBFQZGXAfPl a0HvJ9JFskqR02jBRFu33294UjGSf/Q8FDlpgesklSBqx3rI0pah6W9+Md1jEggEwpLgrlCM Oj99HRRFwW7qX+yqEBaA0epbMFfUgicWga+UQ5aSAHl2KngiIaSJcUj9+++i7d9fw+i1upDL HKttQq/7KADAMTgyX1Un3IfYOnowdOIz9v8UnweBWgl5dioUOWmg+DwYntgNl3kUI59eXsSa Eu42pCkJSPjzJ0Hx+QBNw/R5NYY++RPsPQNwWycgUCkhy0iCprQQ6tXLOcuwVN3yKkYAlPnT K0bK5Zns36PV/jvsFJ+HlJ8cgDzLa0rpMo+i/9AJWCpvwjliAk8igTQlHhHri6FdX+ytO4FA IBAA3CWKUe/n7y12FQgLiLW1C8OnLvocE6iViP2zh6F9YBV4YhGWffcZNPzlv8BlsoRU5nhD K/ErIswIx5DRTx4ZdHs3w/D0XgBAzGM7MXL2yoxMPQn3JzGP7WQVi86X3vVTnJ1GM8xXrsN8 5TqEkRoo8zL8yhitugngUQC+Sk8gFPl3fmOpuul3Pnr3JlYpcvQPoemn/+ljKucet2KsphFj NY0Y+uQCdA9vmf5BCQQCYYlAotIR7gpc5lF0/PpNmK9cBwAIlHLEPLZzkWtFWOoMHP2U9fkQ atUQx+oWuUaEuwWeWATll0qKrbt/2t1E57AJI+ev+h13DBlh6+wFAIj0URBFRwQuhKKgyEsH ANAuN0ZrGnxO82VS6L+6jf1/+3++EdR/yNrSgfZfvhG03gQCgbCUWPAdI5EqGvriPZznbCPd GKw+EfR6gVQFQ9lXAQBDNZ9CGZeFmJKHwZcoMNZVh/ZTL8NhHkDU8s2IWf0wRKpITAx1oevc 7zDaUetXXtTyzZBGJwIAus6+AaFcA0PpI1AnF0IgV8M1boa5/Qb6r34I20hPSM+ozSpDZE45 ZPpkCKRKuO1W2Ia7YGy4hMHrp0F7QosQFbfucfDEMjjHRtB35QMAgDq5ELqVOyGNTgRfLIPd 3I+xzjr0Xf0ADssQAIAnECGu/GmfsmT6ZPbv+PVPw+P2j0Y0UHEMdvNASHWbL3re+tBriw9A u7YIPW+8D4/N7ve7iI0lASepwycvhmxORwmFUC7PhCIvHdLkeIh0keCJRXCPW+EcNGL0RgNG zl0J2TlZWZiNyM1lkCbGgRIJ4BgYgenzagyf/AwifSRrTmOpvgVbe2B5kqUnsr81/qkCts5e CJRyRG57AMoVWRBFR8A9YYO9ZwCmzypgunzdbydDoJRDWZQDRU4aJMtiIYxQg+Lx4Bodh71n AJaqmzBeqAgYsUxTVghpcjxcplGYLl9D3Ne+AllGMtyjYxj65AKGT38OgUaF2GcegiInDbTL DfPV6+h99+Og0a5kqcug3VACeUYSBBolAAoukwXOETOsze0wX73BThQXHZqGvXcQsnRvHyFQ yuEvjbN/11xQQgG0a1dCWZgNSYIBAqUctMsNe/8QxmoaYfzTF7MyG+XLZYjes9Eb3YwGhj75 E5wj5gCVoaAp85qDSZbFQqCQwW21wdbZC9PFKpguXwu6k6Z7aAv4Cilc5jEMHjvrleWta6Fa mQdhpBa00wlrUzsGjpzhDiQwte4KGaJ3lkNZmANRpAbuCRuszR0YPHY2pOvnAmGUlvUrsvfM rt+0VN2EJMEAAFDkZwRUsqRJcRAo5QCAsbpmeCZ8pVGztoiNcjd6rS4kX03a5Z5N1QkEAuG+ YuEVI2UkYsse5Txnab0WgmKkYK+Xx6RCnVLEnovIXgdpdCJ6P38PKXt/yB4XyrXIevJ/4sZv XvDzY4rIWgttZikAwNhwCRmP/R0bvY25VqpLgq5wO1o+/DeM3LoQsG58iRwZ+38GVaKvLblQ roEkIhaa9NUwlH4VDe/+LCQlS796L4RyLSYG29F/9QiSd38f0QVbfX4jUkZCGZ8DZWIebr76 FwAASiAM+I4BIKbkYc7jpsYri64YOfqHMdHaBWlyPHgSsdfm/osav99pyooCRoCyVN4MacLI l0mR/V9/D75U4ndOoJRDHBMNRX4G9F/Ziq5X34PxT18ELoyiEP+t/YjcUuZzWKhVQ56ZDHXJ coycuQTDk95FAdfoeFDFSJoUD91DXhMXa0sneCIhkv/6ADspAgAh1JDE6aEuzof7n3+D0eo7 PlnKFVlI/vELbEhfn2dTKyGJj4F69XLo921F23+8xjmZVK3Mg/aBVXAMDCNy2zqIY6K/fCYV 4p9/DLTHg+hdGyFJiGGvid6zCZRIhO5Xuc1jDU/vhW7PJr/IgUKtCtLkeKhW5iLmsZ24deBn gSfpCwxfIWX/dhr9TTvn4l1PRZGXgWXfeRLCSK3fOWGkBoqcNOi/ug1t//4aLBX+Cz7TIVAp kPK3fw5pYhxA0+h6+Y8B37fYoEPiD78OaWKs37OJDdFQr16OyJvNaPu3V+Aen+AsI3LrWoii I2DvGcBo9S0k//UBv50RkS4S6jUr0Pavr3KaiDHI0hKR/KNvQaBW3qmLRgWxQQdNWSE6/8/b ob6GWUHx7siwMEId5JfTY6m6xbZ3ZX5mQMXIx7+o6pbfeXVxPvs3s/tOIBAIhNBZcMXIOW5E f8VRn2P6lbtnFGJZnVKE/oqjmBjsgH7lLkh1SZBGJSB5z19grLsBQ9dPQW5IR3ThNvCEYkSv eBBd598KWF7aV34MoUwN8+0qmJq/AO1xQ51cCG1mKXgCEdL2/Q/cMg9grLvB/2KKQuYT/whl fA77nEM3zsA20gOhQovI3A2QRiVAEhmH7D/7OWpe+jZcE6GHSI1b/5RXKaJpjPU0YmKoE6A9 kETGQRGXBYq6MymjXU6/d6xOKYIkIg4AMFB1nHPXyjE2HHJ95hNrczukyfEAvM7NXIqRpaIG 9r5B9v+ylGXsqn6oUHweqxTZewcxfqsZtp5+uK028GUSyNKSoF6dD55UjGXfeQqeCRtnXQAg Zv8OViminU6MnP8CE23d4Mul0K5bCUVOGoSTJnLhIFDKkfDCY+DLZXBZxjBefxsuyxj4chnk mcns7sRkeFLJlzsBNKzN7RhvaIVj0Aja4YBAo4RyeRbk2akQ6SOR8tM/R9NP/h2OAe7vL9JF wt4zgO5XD0IUE4XoneVeRfD5xwAaGHj/FJxGM6L3bIIoOgIRG0vQ+9aHfjlZIjaXQrd3MwBv qGDTxSrYOnvhHp+AQCn3KkZFueArZHdNyHVpYhzEBu/OpMs8CueQv8I9l+8a8CqkSf/fN1jf FVtnHywVNXAMGUEJBZDE6aFalQ+hVgWhNvwJuVCrRsrPvgNJnB60x4PO//tOQKVfbNAh7X/+ BauQT7R3w3zlBlxGMwQaFdRrCiBNjIUiNw3JPzmAlp/9MmhuMkrAR+IPvgZhhBrGCxXeNiIR Q11aAEl8DCg+HwkHHkfdd/+JM6ePUKtGyl8f8MoIAGtTG0yXr4N2OCDLSIZ23UrEv/A4PI75 z8/jGDKCdntA8XmQpSRAkZOGsVvNMyrL2tAK9/gE+HKp11SOojh34Hz9i/wVI2lKAvv3eCPx uSQQCIRwWXDFyG7qR9vx/+tzTLdyF6gZ5NowNl5my7K0Xcfyb/83AID2uFH/zt+wIamluiQo 4jKhiM8OWp5YrUPnp6+j5+If2GP9XxyFrnA7knd/HxRPgKTtf47aV7/vd62+aCerFE0MtOHW 734E18Sd1eWei39E2ld+jIistRApI5Gw6eto/ehXIT2nQKqCofQRjPe1oOWDn2Ni0Nc8QqTW IXr5Zvb/HpfD7x2nfeUnrGLUcebVuyNcdwDsvXcUHkl8DOdvJkcRAwD9I1vDVoxomobpYlVQ 8x15RhJS/+5FUEIhYp/dx6kYiWOiWAdmj82O5r/7lU95g0c/RdJfPgfVytyw6seg27sZfJkU vW8fweCxc6Ddk0xfKAradSvhHvNdqffY7Bj48DSGPrkA57DJr8z+QycRvWsDYp/dB4FSDv0j 29D5X+8ErEP7L99gn0kYoYamtBAUj4eBD8+g9/fHAAD2viGk/PUBb3TBpDi/YBjRO7zh4mmn E80//QVsnf65gSg+H9oNq0NOdDlf8OVSKJdnIfbPHmKP9f3xOGcizbl818IINZa9+DQb5azn rQ8xeOycf+Sx19+H/uEtQJgJkkXREUj92Xcg0keBdrvR/svfBYyCRvF5SPyLZ1mlqPf3xzDw wWmfuvQfPon4bz6KyAfXQp6RhMhtuCIEcgAAFxJJREFU6zB0/E+B76+LhHvChuaf/qePmVf/ +yeR+rMXIc9KgUCjgmplLkyfV/tdb3hqD6sUDZ/8DF2vHrxTnxOfwfR5FZL+6psQMElT5xHP hB2j1+vYUNvJP3kBgx+dg/HcFdj7hsIqi/Z4MHq9HpqyQgjUSkiXxWKi3TcMNyUUsEEV7H2D sPf67u4LNCoIVIovC6TDrgOBQCAQ7vHgC2Ndd0yHJoY64XF67a0nBjt8Jv7W/tsAALGGe5LN MN7b5KMUMQxUfwJLq3fyII/NgNyQ7vebyX5TLUf+w0cpAgDa7cLto7+A2+6tV9TyzeCL5QgF oUILl20M9W/+2E8pAgCHeQDdF34fUln3ApMTHPLl0iC/nP19Jk/4uRhvbIPxQiUA76SOS1GL 2FLGru73HzzhVx7tcqPrv9+dcZZ5kT4SvW8fxcCHZ3yVIgCgaRgvVGC84bbP4dFrdeh9+yjn RJ1h8OPz7K5bMKWNdjp9cqVM3O5k/558X9ukiRyTZ4WB4vFYHwrr7U5OpQgAaLcbI2cuhZTk cq5QFmQj/81/Zf8tf/vfkffbf/HubERq4RgYRsf/eStg5Lq5fNfRezaxMj/40TkMHj3LuXNA O53oe+84Rs75O/MHQhwThdR/+J5XKXK60PZvrwYNDa1eU8Du3BovVHjzOE2tC02j+7eHWNPV qC+V32D0Hzzh5/tCu9zoP3THjFqemeJ3HV8ug6bMazrtMlnQ/cYHfvWxVN6EMYx3Mlt63nif NR/kiUXQf2Ursn71t8j+3z/DshefRsTGEh+Tv2BMNh9ULPePXifPTPEmggW3GZ3gS4URANxW W1j+bAQCgUDwck8rRs5x34kIo4w4x42+x61e23mhXBO0vMHrpwOfqznD/q1JL/Y5J1br2AAO 1v5WjPc2cZbhto1jpM47ueIJRFAnFwStz2S6L/weLttYyL+/l/HY7zgU82XzpxiFirWpjf1b FOOfQV61Ms/7B01j5NwVzjKcRgtGbzTO6P7OETMGj52d0bVBoWlYm70TVIFKwelrBQAuy5jP BNRlubPoMDkoxeTj7Mo1w6QNYYFyyrlFhuLxwBOL2H+U8M5GustkgfFPX2DsBof5bDiE8q4p Ctr13r6FdrrQf/jk9MVOVZQDIImPQeo/fB+iKC08dgdu/8tLsFQG9uMBgIgNJezfk5UWvzq4 3Ozujjgm2k8pnorpswrO49amdvZvrjKUyzPZYAemS9cCLjSMnOVug/OBvXcQTT/9hU/dAW/9 teuLkfDtJ5Hzm39E4g++DpE++HuZnJOIK6y3Mv/OMS4fLL7sjkx5HNw7ruIvfRKn/pvsJ0gg EAhLmbsij9FM8ThtU/7vHQw8jinHXd4BlCcIbl4x1l0f8Nz4JL8imd53NVMWk3qnjC7/lTyf e3TVsQEUZDGpGKnnXoWeijHE390fLLx/CcXnQ7LMAHGsHnyZhF2ZBbyRoBim7mDxxCJIvoyO Z+8b8ioRAbC2dMzInM5SURPUb2M6eFIxpEnxEOkiwJdI2MklAB8HeL5cCveEze96j813kjXZ f2PyOdrt9k7sKArUpPfnPeeBrbMXkmWxEMfqEPvsPgy8fyro+1oo7N39PmGUKT4PApUCsvQk yNISof/qdkTtLEf7f/wWo9MoSLN515JYHWu2Nt7YOme7ZtKkOCT/+Hm27Nb/9TLGaoMr6RSP B3mmN5KlY3Bk2qhrk6MIShNjA/pQuSxjnAEsAMBtnWB9dnhSMedzMFib2/3Os+da2kF7PH5+ d/OFvbsfTX/zH1DkZ0C7bhWUBVk+vl8UnwdNaQFURTlo+7dXMXqde5xxjY7D2twOWXoS5Dlp oPh8H8VX8WXgBY/NPr0vU4AAgdqyIugf3e53fPDoWfS8+cE0T0ogEAj3P/e0YjR1ssgEFAh0 nOIHf1xHkIhsk6O1iZS+uwYi5Z2VwKlR76ZiM90xIRIpguSrmIRz3OS3O3Y/w5vkH+C2cke5 miv4Ugn0X92OiI0lrO9CMKZmiReoFGygAOeQkesSlunOB2KiY2ahq8UxUYh5Yg/Uxfk+E/SA 8Ll/Q3t8Z1mTJ2t+bc3lBiUUcN6v//BJJP7F1wAA0bs2IGrHeky0dsHa2IaJ1i6M1jQENUeb L+z9Q17fGQ4UuelI+h/fBF8mRdJffRMNf/kvnJP+uXjXk3dJApkazoSUn37bZ4dKVZgzrWIk UCvBk3iVE75citS//Y73xOQ1CzZABgWB6o5ZMF8R2EQ4UNQ6Fo8H4PO4I/xNivzmCNKWaJcb LqMFwsjgFgJzDZM0FfB+S3lWClRFuVCvXg5KwAdPLELiD7+Ohh/+c0A5t1TdhCw9CTyxCLKM JIzXtQDwfgPGrHG0ppEzxPZkRZu3AD5WBAKBcD9yTytGc43b4b9azuBx2tnVcL7YdwLNF93Z RQhWBgB4HHcmBnxJaD5G7iViQsfAV06ylZ9uIjULBGol0v7he3fyIdE07D0DcAwZfXZFhBFq yFKXef8zJVoaM3kEApuvhHo+EO7x8HcO5Fkp3kAIX9aPdrpg6+qDy2SBZ9KkSpoUx+5kzGUg OK5gKqbPq0EJBIh95iEI1EpQPB5kqcvuvFuaxlhdC7p+8/u7xnF87GYT+t45irjnHgVPLILu oc3oevmPPr+Zq3c9eTdyLhcE+FKJV5HweCDSRSJ69waM1jb4hHcPVhe+TApFvr9pVyB4U3YL fQiS62g6+P+vvbuPjqo+8wD+vXfunfeXZCbJTF4nJCRAkIAWBZaKK5EqsFJLQbErCmIPdtVT UXv2tD21u12pp2e3noPW9VRPq9bVFkVrqbxUYJGigryEFyEuShLIi3lPJjPJvM+d/eMyd+4k 8xLDzBDJ8znHcybzcufOZRLv7/6e3/eR/66lCOeI1/ssm/zdffB392Hg70ehtOah4scboSoq gEKjRt7SRej4n+1xX+esb4DtruUAxNLByMBIf021NAOWKMo86JKtzdSKs5UjB1A9uw5g4KCY QKifWYWSjWsu74MSQshVhgZGMgyb+Eovwyqks5lwKHZRqyD7eeSMwqjtKKInDZESv1TCwuRq wBeJRwaQ0Uafxeu/Kw2KBj85hS9f/XPcK9G5N85F2SNr425DPoBiuOS/TvK1K19FvCS0VO9T 9sha8UQ9HEbntt3oeW//qGaQAFD64N0wL54/rv0aj4G/H4Xj43oYZk2DrmYqtFV26KqniLMs DAN9zVRU/epH+OLHv77sppnp4jh8CsUbxL5ghjmxyZbpPNaCbLE8O87vSjy+jm40/uJ58GYT pv7iUTAKFmUP3YPPf/SrhGVt8n1xN7agb0QKZDLDsjV56STfp3gzSnKpfhezyd/Vi7aXtqLy 548AEPsUJfqr5mluQ2BgEHyuSYzm3rrz0muiA9N4wQuAuB4u6BoWSyYZRorZlwsNuaUSTVWx 9TI/GSGEXH0mzv89JgBea5RS40biNNFkoZAvdgZH/hpOm7yvSLLtEJE8dtstS0BLJ4VOA9O8 2QDEk5ELz7yc8Gr2qCABmZAr+m/P5xqTviefk/zxdDHUTpNmJnp2HkDXW7sTPldhGNusZTqF gyE4TzTAeUI8wWNVSuTMnwPbmuXgLTlSeWPLs3/I+r7FExx0SWtWlHm5MT1m0nmsY75Ll9kw VK7x33+DQP8gAn0OdG3bBdtdy8EZ9Sh7eC0an/rvuN97+b6E3J6EoSLZJJ855ZKU6wGxs84T wfBnTQiHQmAUCvB5o5v2yrnqG2CuWwBtZRlYjQqCxyf1L4oMnBLxNLdJTWC1VfYJc3GBEEK+ Lr7WqXTppskvS/xYXrRxnqc3No7ZK/tZm5+8l462oFy2ncyc9McVjs46jKdnVLaoigqgsYuL rAWPT6rZTzd1sVW66jx49NOkJT6R2v54Qm6PFFWsKrImre2XLx7PJHVZkXR78MjppM9N9tmy RfD50X/gCM7//Flp/ZJ+RmWKV2UPq1JKZUxhQYj5rqTzWHua26Rta6unpK22UV5i1fXOnmh5 1qxqqf/WSCG3R4oX19iLJ0TDXV9bdP2mqiTxbAefa5oQaZZyYUGIziKmCFKJlMoxChb6mirw lhyoCvNjHkv42qPR76ApkpZJCCFkzGhgJJMz9fqEj5kq50q3R6bXDXc1QgiKNe/G8tlg+dGJ StJ7VEUjcIfaEqfgpVsoZm3TxIpLljAMiu69Q/px4MNjGWv0KS9rS7ZYntWoYLx+VtJtRaKc GU4BU4LnsirlqDKsTGFlZURskpIi3YxKcQZkgvB390mDzJGpdsmY6xbAtnopbKuXJjzRvxx6 WXTyyOCFdB7rkMeL4c/FprjKfLN05T+twmG0PPeatHbPducy6KrL4z7VdVL8+8QZ9TBeW5P+ ffmKIscGGF3SKDee5EdGwUrfIdvqpchZeN0YXzi2AaMy3yyFuyQLjgBiwxUMtdUw1E6XHnMm KKOLGPioXooxN95QG10/SQghZExoYCSTV3sLVDmjr0TyWhMKrlsKABCCfqkXUYQQ8En3KVRa FC5YFXf7OVXzoC++VBLR05Kw31Em+AaiVe2mimuz9r5jpczLRfnj94td5CHG+na+uStj7+fv 7pduG2ZPT3iCU3zfyoT9fSL6/vewdNu2ZrkUiyxnXXUrFLrslPdEBhdA4hNIVqVE8f3fzcr+ RN5PaR3dA0qOt+RIyWz+rrGHL1gWL4B19W2wrr4t7QMjpdWCovuig/WRs0LpPtY9Ow5It0se WJ20OahCr4WmojTh44n4ewfQ9qLYyJpRsCj74X1xGyn37vxASh0s3rAKXIpSUIbnMzr49zS3 wdsuzhoZrqmOKbmNYFVK5K9Y/NU3ziqk75B19W1SI9lUKp98WPz7kQTDsihat1L6OdUsuDyO Wz9rGgyXmr1G4ryTCQ250fXnvdL72jety2iTbEIIudpkdY0Ry6ti1tiMxHA8lMbRJ08BVz/C 4fH3cRkrlldh+vc2o2n7M3Bd6kektU5Bxe2PSfvdefiduOuQ2g++AXPNN8EqeJQs+mdACKHz yF8Q8nvAsBwsMxehfOlD0vNb97+S8c8j52g8htK6+wEAZbc8AIVSC1frGYQC0UXivoEOMX0v w3RV5ci/fTFYJQ/OoINmSgm01eVScIXg8eHilldjmofKcTnGUYuvWdnghTPqR0X1Cl5/zBoF f08/PM1t4ntXlqF04xp0vL4dwUtrK5RWCwrXLEfOwm9EFzQn4P7iAhwfHUfOwm9AWWBB1S8f Q+e23fA0tUGh1cC8eB7MN8+Hv6c/ppdNpjhPNCAcCIDheeQtvwn+3gH07flQvArNMNBVT0Hx +pXQ2ItTfrZ0Uei1mL7lp3AePwvHh8cxdPaLmB5GuhmVKNmwSipZGzh4POP7FKG05iH/9ujJ NMOyYjyyvQj6WdGmooE+B7rf3Rfz2nQf68HDJzF49FOYrp8FpTUPVZs3oeONv8J57IwU9MGZ DDDNmw3rym+h6+2/wTOOdXiOQydgmDMD5pvnQZlvRunGNeI6OxlfZy+63toN213LoMw3o/rp x9G5dScGj5yWUvMYnoO2ohSmG2Yjd9Fc+Lv74TqZOO3ucnW9uRP2TesBhkH5Ew+g9YU3xL5A 4TBUtjyUbFwDlS0/Y+8/krqsEBU//QG8rR3o/+AIhhvOw9fZC8Hvh9KSA02lHdbv3CKVXApe H3p3HUixVbFkzlA7DeoSm7TeTN4ANpnud/fAeF0NtFPt0NiLUf2f/4rut/8G58nPEHS4wKqV 0M+sgu2uZZf34Qkh5CqU1YGRpWYRKlY8lvBxQ+lMXPvD10bdf/K5dSn7A6VD17H3YJ37T6hZ /2uEvEMIhwVwmuhVUlfrWbQf/GPc13r72tD83hZUrngcYBiU3Hwfim+6B0H3IBRqfUxz2Y5D 2zBw7lDGP4+cu6sZ3fW7UHDdUihUWpQteWDUcxpeeQKu1uQ17Omgn1WdMP7X/cVFtL74J3gv fpnw9VWbNyUdYJQ/sWHUff0HjqD1+ddj7mv//TZUPvkwGJ6DefF8mG+eh8CAEwzLSFfHfZ09 6PnrfpR8/86kn6n1t1vB51ugqy6H0pqHsofuiXnc19GD7r/sRemDd4t3XEZscSrBQRc6/rgD RffeAYZlUbx+JYruvQOBfgcUWo10Bdlx6CRCQ8OwLFmYsX2RY1gWputnSeWGQecQBK8PXI4x JuLZder/0Pf+wazsEyCuNyta++2kz4kEdIyMTs/EsW75zWsof+x+GGZPh7LAAvuj6xAOCQi5 hsDwXNpmHttffhu6GRVQ2fJhmj8Hllv+AX17P455Ttc774Mz6JC37CbwlhyU/sv3UPqDu6VB rcKgi2mkKp+JzQTHoZPQ1x6CpW4B+FwjKn7yIASPD0IgIIWkDH36OTizCeospq6pSwtTfocE fwAXnnk5YRKgnKv+LHBplimyXirV+qKIcDCEps0voOInD0JbVQ5lXm7SWO7AgBOOwyfGtG1C CLnaUSqdTMve3yHkc6Nw/sqYdThhIYSek++jZc9L0lqieHpP74Pf2YuyJd+HzlYJhlWAlzVx 9Tt70Lr/VfSe3pdwG5nUvOM5uFrOIK+2DlrrFHAaAxj2yn0FwoEAgkMeBPodGP6sEc76hpSN J9Np+FwzGv/jeZRsXCOeRDGMdHU2LAgY/OQU2l56M2WpDCBeCW78t2dRsKIO5roF0sBN8Prg +PgEOl7fHjMYDPvHFtU+Xj3v7Yfg80ulfYyCje6Tx4eenR+g663dKN4Qv+wz3UJDbvTs+EC8 Cl5aCOBS2p8s8S/oHELvzgPo3r7vK0eUp1NkoXygbwCe5jY4PjkF5/GzCQez6T7WgseH5qd/ C3PdAhSsqIPSagGjYGNK2QSvD46P6uE8fmbcn1Pw+tCy5Q+Y+tSjYBQKFK1bieFzTbHNZcNh tL/yDlynz8G66lZop9oBhhlV4hd0DsF5ogH9+zJ/waftxa3wd/fB+p0lYNUqsBrxP4TDcHxc j9YXt6LqqcQX4NLpwn/9DuZ/vAGGOTUJUynDwRAGj36Kzj/tgK9jbClxvs5e+Dq6pdYFYUGA 69S5Me9XaNiD8z/bAsttNyJ/2U0xzYOl57g96N93GN3v7pFmygkhZLJj7HZ75i5dfw1U3/kk cqctAAAcffrbEIJ+cFojDKUzwWtNCHiccLWcQdCd+iqfnNpcDK2tApxaj5DfA29fG4Y7GgFM 6sM9MTEMNFNKoC61geE4BB1OuM+3JCzlGwuFRg2G58QTjksn1JYlC6WZp6bNL4glQBnG8Dx0 06ZAWWAGQgIC/YMYPtcU038p2ziTAaqiAvA5Rij0WggeL3wdPfBcaJdS6b6OMnWsVUUFUJcW gtNrEQ4J8HX1wtPYckX+DflcIzQVZeCMejAsg6BrGN72LjEWOoOzoPGwKiV0MyrBW3IguL1w n78Ys+Yr25RWC9TFNnAmPRiOg+D1SSW7mQqRGSt1WRFUtjxwRj1CHh/83X3wNLVc0QsQhBAy EdHAKM7AiJBMKN6wGnm3fhMA0LDxZ2MqqSGEEEIIIdlBqXSEZAGrViFn/qWGshe/pEERIYQQ QsgEQwMjQtLAdEMtyh5ZC/011TGL0QGxdMy+aZ20LqNn+5VZY0YIIYQQQhKj8AVC0oDhOeTe OBe5N85FyOOF90I7gkNucEY9tBWlUkPZgYPHMHDw2BXeW0IIIYQQMhINjAhJg6DDicDAIPhc ExQaNXQzKmMeDw170L19H7rf3XuF9pAQQgghhCQz6cMXdLZK8LpcAICj6XjWk5XI1UVVWAC1 vQi8yQCFToOQxwtfW9cVT4IjhBBCCCHJTfqBESGEEEIIIYRQ+AIhhBBCCCFk0qOBESGEEEII IWTSo4ERIYQQQgghZNKjgREhhBBCCCFk0qOBESGEEEIIIWTSo4ERIYQQQgghZNL7fzQn6m/U 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--
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 <= ;<a href=3D"mailto:federico.beffa@HIDDEN">federico.beffa@fbengine= ering.ch</a>> wrote:<br><br>> You may not like the VSCode UI, but Ema= cs doesn'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'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's not enough = to say "I want this thingy here like VSCode". Think</div><div>wha= t happens if text=C2=A0 is inserted before, inside or after, the locus of = the=C2=A0</div><div>"code lens" 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's information and what happens</div><div>= on said information.=C2=A0 Anticipate the all-too-frequent "this thing= flickers and its=C2=A0</div><div>annoying" 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't=C2= =A0</div><div>need to be an Emacs/Eglot wiz.=C2=A0 I personally don'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>> 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'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--
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 <<a href="mailto:federico.beffa@HIDDEN" moz-do-not-send="true" class="moz-txt-link-freetext">federico.beffa@HIDDEN</a>> 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--
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.
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.
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?
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.
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.
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
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
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).
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
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).
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.