unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#62198: eglot feature request: set Initialize.ClientInfo.{Name, Version}
       [not found]   ` <CAPVWWDWCTvjzG3CLffnaf_xgn4R-Y8=j9y3to0yCEhoAt0gPMA@mail.gmail.com>
@ 2023-06-28 21:02     ` João Távora
  2023-06-29 15:46       ` Felician Nemeth
  0 siblings, 1 reply; 7+ messages in thread
From: João Távora @ 2023-06-28 21:02 UTC (permalink / raw)
  To: Alan Donovan, 62198, Felician Nemeth

On Wed, Jun 28, 2023 at 9:41 PM Alan Donovan <adonovan@google.com> wrote:

> > >Hi João,
> > > would you mind making eglot populate the clientInfo.{name,version}
> > > fields of the Initialize request parameters? All that's necessary is
> > > the one-line change below, though I'm sure you know a cleaner way to
> > >express the JSON literal and the version constant.
> > No I wouldn't mind.
> Great!   I found that this expression works for the version, assuming
> eglot is actually installed:
>
>  (package-desc-version (cadr (assoc 'eglot package-alist)))

That's the thing.  Sometimes it is installed in that variable, sometimes
it's a builtin described in some other variable.  There is, I think,
a library for this.

I've found the bug thread: bug#62198.

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62198

Taking the liberty of CCing there. Felicián was also looking for this.

João





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#62198: eglot feature request: set Initialize.ClientInfo.{Name, Version}
  2023-06-28 21:02     ` bug#62198: eglot feature request: set Initialize.ClientInfo.{Name, Version} João Távora
@ 2023-06-29 15:46       ` Felician Nemeth
  2023-06-29 16:02         ` João Távora
  0 siblings, 1 reply; 7+ messages in thread
From: Felician Nemeth @ 2023-06-29 15:46 UTC (permalink / raw)
  To: João Távora; +Cc: 62198, Alan Donovan

João Távora <joaotavora@gmail.com> writes:

> On Wed, Jun 28, 2023 at 9:41 PM Alan Donovan <adonovan@google.com> wrote:
>
>> > >Hi João,
>> > > would you mind making eglot populate the clientInfo.{name,version}
>> > > fields of the Initialize request parameters? All that's necessary is
>> > > the one-line change below, though I'm sure you know a cleaner way to
>> > >express the JSON literal and the version constant.
>> > No I wouldn't mind.
>> Great!   I found that this expression works for the version, assuming
>> eglot is actually installed:
>>
>>  (package-desc-version (cadr (assoc 'eglot package-alist)))
>
> That's the thing.  Sometimes it is installed in that variable, sometimes
> it's a builtin described in some other variable.  There is, I think,
> a library for this.
>
> I've found the bug thread: bug#62198.
>
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62198
>
> Taking the liberty of CCing there. Felicián was also looking for this.

If Eglot is installed, then it is byte-compiled as well.  The earlier
patch in this bug report made sure that the helper library ('lisp-mnt)
was required only at compile time.  However, the patch worked even if
Eglot was not installed with package.el (but Eglot still needed to be
byte-compiled).

On the other hand, if package-desc-version is acceptable as opposed to
that earlier patch, then it is probably better than not sending a
version number in clientInfo.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#62198: eglot feature request: set Initialize.ClientInfo.{Name, Version}
  2023-06-29 15:46       ` Felician Nemeth
@ 2023-06-29 16:02         ` João Távora
  2023-07-15 10:18           ` Felician Nemeth
  0 siblings, 1 reply; 7+ messages in thread
From: João Távora @ 2023-06-29 16:02 UTC (permalink / raw)
  To: Felician Nemeth; +Cc: 62198, Alan Donovan

On Thu, Jun 29, 2023 at 4:46 PM Felician Nemeth
<felician.nemeth@gmail.com> wrote:
>
> João Távora <joaotavora@gmail.com> writes:
>
> > On Wed, Jun 28, 2023 at 9:41 PM Alan Donovan <adonovan@google.com> wrote:
> >
> >> > >Hi João,
> >> > > would you mind making eglot populate the clientInfo.{name,version}
> >> > > fields of the Initialize request parameters? All that's necessary is
> >> > > the one-line change below, though I'm sure you know a cleaner way to
> >> > >express the JSON literal and the version constant.
> >> > No I wouldn't mind.
> >> Great!   I found that this expression works for the version, assuming
> >> eglot is actually installed:
> >>
> >>  (package-desc-version (cadr (assoc 'eglot package-alist)))
> >
> > That's the thing.  Sometimes it is installed in that variable, sometimes
> > it's a builtin described in some other variable.  There is, I think,
> > a library for this.
> >
> > I've found the bug thread: bug#62198.
> >
> > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62198
> >
> > Taking the liberty of CCing there. Felicián was also looking for this.
>
> If Eglot is installed, then it is byte-compiled as well.  The earlier
> patch in this bug report made sure that the helper library ('lisp-mnt)
> was required only at compile time.  However, the patch worked even if
> Eglot was not installed with package.el (but Eglot still needed to be
> byte-compiled).
>
> On the other hand, if package-desc-version is acceptable as opposed to
> that earlier patch, then it is probably better than not sending a
> version number in clientInfo.

I thinkt the lisp-mnt-at-compile-time solution is preferable, as I'm
not sure 'eglot always lives in package-alist (sometimes it is a
built-in and that is a royal pain).  Can you show an
updated patch for it, when you have time, Felicián?

João





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#62198: eglot feature request: set Initialize.ClientInfo.{Name, Version}
  2023-06-29 16:02         ` João Távora
@ 2023-07-15 10:18           ` Felician Nemeth
  2023-08-03  7:39             ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Felician Nemeth @ 2023-07-15 10:18 UTC (permalink / raw)
  To: João Távora; +Cc: 62198, Alan Donovan

[-- Attachment #1: Type: text/plain, Size: 608 bytes --]

>> If Eglot is installed, then it is byte-compiled as well.  The earlier
>> patch in this bug report made sure that the helper library ('lisp-mnt)
>> was required only at compile time.  However, the patch worked even if
>> Eglot was not installed with package.el (but Eglot still needed to be
>> byte-compiled).

> I thinkt the lisp-mnt-at-compile-time solution is preferable, as I'm
> not sure 'eglot always lives in package-alist (sometimes it is a
> built-in and that is a royal pain).  Can you show an
> updated patch for it, when you have time, Felicián?

I've attached the updated patch.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Eglot-send-version-in-clientInfo-bug-62198.patch --]
[-- Type: text/x-diff, Size: 1719 bytes --]

From df775108a9d0c5171ca6eeb19af752bec15c626a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felici=C3=A1n=20N=C3=A9meth?= <felician.nemeth@gmail.com>
Date: Sat, 15 Jul 2023 12:02:49 +0200
Subject: [PATCH] Eglot: send version in clientInfo (bug#62198)

* lisp/progmodes/eglot.el (eglot--version): New defconst.
(eglot--connect): Use it.
---
 lisp/progmodes/eglot.el | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 8ac21638a5..0da4641fba 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -421,6 +421,14 @@ eglot-withhold-process-id
 \f
 ;;; Constants
 ;;;
+(defconst eglot--version
+  (eval-when-compile
+    (when byte-compile-current-file
+      (require 'lisp-mnt)
+      (lm-version byte-compile-current-file)))
+  "The version as a string of this version of Eglot.
+It is nil if Eglot is not byte-complied.")
+
 (defconst eglot--symbol-kind-names
   `((1 . "File") (2 . "Module")
     (3 . "Namespace") (4 . "Package") (5 . "Class")
@@ -1352,7 +1360,9 @@ eglot--connect
                                         (eq (jsonrpc-process-type server)
                                             'network))
                               (emacs-pid))
-                            :clientInfo '(:name "Eglot")
+                            :clientInfo
+                            `(:name "Eglot" ,@(when eglot--version
+                                                `(:version ,eglot--version)))
                             ;; Maybe turn trampy `/ssh:foo@bar:/path/to/baz.py'
                             ;; into `/path/to/baz.py', so LSP groks it.
                             :rootPath (file-local-name
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* bug#62198: eglot feature request: set Initialize.ClientInfo.{Name, Version}
  2023-07-15 10:18           ` Felician Nemeth
@ 2023-08-03  7:39             ` Eli Zaretskii
  2023-08-03 10:15               ` João Távora
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2023-08-03  7:39 UTC (permalink / raw)
  To: joaotavora, Felician Nemeth; +Cc: 62198, adonovan

> Cc: 62198@debbugs.gnu.org, Alan Donovan <adonovan@google.com>
> From: Felician Nemeth <felician.nemeth@gmail.com>
> Date: Sat, 15 Jul 2023 12:18:11 +0200
> 
> >> If Eglot is installed, then it is byte-compiled as well.  The earlier
> >> patch in this bug report made sure that the helper library ('lisp-mnt)
> >> was required only at compile time.  However, the patch worked even if
> >> Eglot was not installed with package.el (but Eglot still needed to be
> >> byte-compiled).
> 
> > I thinkt the lisp-mnt-at-compile-time solution is preferable, as I'm
> > not sure 'eglot always lives in package-alist (sometimes it is a
> > built-in and that is a royal pain).  Can you show an
> > updated patch for it, when you have time, Felicián?
> 
> I've attached the updated patch.

Ping!  João, how should we proceed with this issue?

Thanks.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#62198: eglot feature request: set Initialize.ClientInfo.{Name, Version}
  2023-08-03  7:39             ` Eli Zaretskii
@ 2023-08-03 10:15               ` João Távora
  2023-08-03 10:20                 ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: João Távora @ 2023-08-03 10:15 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62198, Felician Nemeth, adonovan

Sorry,

I think Felicián's patch looks good, and we should push it to master.

João

On Thu, Aug 3, 2023 at 8:39 AM Eli Zaretskii <eliz@gnu.org> wrote:
>
> > Cc: 62198@debbugs.gnu.org, Alan Donovan <adonovan@google.com>
> > From: Felician Nemeth <felician.nemeth@gmail.com>
> > Date: Sat, 15 Jul 2023 12:18:11 +0200
> >
> > >> If Eglot is installed, then it is byte-compiled as well.  The earlier
> > >> patch in this bug report made sure that the helper library ('lisp-mnt)
> > >> was required only at compile time.  However, the patch worked even if
> > >> Eglot was not installed with package.el (but Eglot still needed to be
> > >> byte-compiled).
> >
> > > I thinkt the lisp-mnt-at-compile-time solution is preferable, as I'm
> > > not sure 'eglot always lives in package-alist (sometimes it is a
> > > built-in and that is a royal pain).  Can you show an
> > > updated patch for it, when you have time, Felicián?
> >
> > I've attached the updated patch.
>
> Ping!  João, how should we proceed with this issue?
>
> Thanks.



-- 
João Távora





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#62198: eglot feature request: set Initialize.ClientInfo.{Name, Version}
  2023-08-03 10:15               ` João Távora
@ 2023-08-03 10:20                 ` Eli Zaretskii
  0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2023-08-03 10:20 UTC (permalink / raw)
  To: João Távora; +Cc: 62198-done, felician.nemeth, adonovan

> From: João Távora <joaotavora@gmail.com>
> Date: Thu, 3 Aug 2023 11:15:50 +0100
> Cc: Felician Nemeth <felician.nemeth@gmail.com>, 62198@debbugs.gnu.org, adonovan@google.com
> 
> Sorry,
> 
> I think Felicián's patch looks good, and we should push it to master.

Thanks, done, and closing the bug.





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-08-03 10:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CAPVWWDWmV3A1GhzvHFQhu2dz171ghgdwBRrtZbzWJP1ojiiO4w@mail.gmail.com>
     [not found] ` <CALDnm52Jo8kQJtmLgDXHHdZWJ=OES4a2GGGU-U1VaObdN+fEBg@mail.gmail.com>
     [not found]   ` <CAPVWWDWCTvjzG3CLffnaf_xgn4R-Y8=j9y3to0yCEhoAt0gPMA@mail.gmail.com>
2023-06-28 21:02     ` bug#62198: eglot feature request: set Initialize.ClientInfo.{Name, Version} João Távora
2023-06-29 15:46       ` Felician Nemeth
2023-06-29 16:02         ` João Távora
2023-07-15 10:18           ` Felician Nemeth
2023-08-03  7:39             ` Eli Zaretskii
2023-08-03 10:15               ` João Távora
2023-08-03 10:20                 ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).