* bug#66552: 30.0.50; Eglot feature request: handle quirky code actions
@ 2023-10-15 2:24 Richard Copley
2023-10-16 23:22 ` Dmitry Gutov
2023-10-17 3:11 ` João Távora
0 siblings, 2 replies; 9+ messages in thread
From: Richard Copley @ 2023-10-15 2:24 UTC (permalink / raw)
To: 66552
The language server for Lean 4 [1] provides code actions with a couple
of features that make it difficult to apply them from within Eglot.
[1] https://github.com/leanprover/lean4
Firstly, the textDocument version field has the value 0, which is
generally not equal to the version in `eglot--versioned-identifier',
resulting in the error "Edits on `%s' require version %d, you have %d"
from `eglot--apply-text-edits'.
Secondly, all the suggestions have the same title ("Apply 'Try this'"),
which means an alist using the title as the key can't be used in
completing-read as in `eglot--read-execute-code-action'.
Could you provide options to ignore the version, and to use the newText
(JSONPath $.result[:1].edit.documentChanges[:1].edits[:1].newText)
instead of the title?
Here is an example request and reply. The reply is cut down from an
original list of over 200 suggestions.
[client-request]
(:jsonrpc "2.0" :id 777 :method "textDocument/codeAction" :params
(:textDocument
(:uri "file:///s%3A/projects/lean/float/Fl/Lemmas.lean") :range
(:start (:line 50 :character 2) :end (:line 50 :character 8))
:context (:diagnostics [])))
[server-reply]
(:result
[(:title "Apply 'Try this'" :kind "quickfix" :isPreferred t :edit
(:documentChanges
[(:textDocument
(:version 0 :uri "file:///s%3A/Fl/Lemmas.lean")
:edits
[(:range
(:start (:line 50 :character 2) :end (:line 50 :character 8))
:newText "refine Nat.add_left_cancel ?_")])]
:changes nil :changeAnnotations nil))
(:title "Apply 'Try this'" :kind "quickfix" :isPreferred t :edit
(:documentChanges
[(:textDocument
(:version 0 :uri "file:///s%3A/Fl/Lemmas.lean")
:edits
[(:range
(:start (:line 50 :character 2) :end (:line 50 :character 8))
:newText "refine Nat.add_right_cancel ?_")])]
:changes nil :changeAnnotations nil))
(:title "Apply 'Try this'" :kind "quickfix" :isPreferred t :edit
(:documentChanges
[(:textDocument
(:version 0 :uri "file:///s%3A/Fl/Lemmas.lean")
:edits
[(:range
(:start (:line 50 :character 2) :end (:line 50 :character 8))
:newText "refine Nat.eq_of_mul_eq_mul_right ?_")])]
:changes nil :changeAnnotations nil))
(:title "Apply 'Try this'" :kind "quickfix" :isPreferred t :edit
(:documentChanges
[(:textDocument
(:version 0 :uri "file:///s%3A/Fl/Lemmas.lean")
:edits
[(:range
(:start (:line 50 :character 2) :end (:line 50 :character 8))
:newText "refine Nat.eq_of_mul_eq_mul_left ?_")])]
:changes nil :changeAnnotations nil))]
:jsonrpc "2.0" :id 777)
In GNU Emacs 30.0.50 (build 1, x86_64-w64-mingw32) of 2023-10-12 built
on MACHINE
Repository revision: 90b4a7acb5332ed490cb2b456cfe8c11af8c9d4f
Repository branch: master
Windowing system distributor 'Microsoft Corp.', version 10.0.19045
System Description: Microsoft Windows 10 Pro (v10.0.2009.19045.3448)
Configured using:
'configure --config-cache --with-modules --without-pop
--without-compress-install --with-tree-sitter --without-libsystemd
--without-dbus --without-gconf --without-gsettings --without-mailutils
--with-small-ja-dic --with-native-compilation --prefix=/mingw64
--build=x86_64-w64-mingw32
Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB
Important settings:
value of $LANG: ENG
locale-coding-system: cp1252
Major mode: Lean 4
Minor modes in effect:
eglot--managed-mode: t
flymake-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
minibuffer-regexp-mode: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny rfc822
mml mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
help-fns radix-tree cl-print files-x find-dired dired dired-loaddefs
grep time-date lean4-input quail comp comp-cstr cl-extra lean4-mode
lean4-fringe lean4-dev lean4-info magit-section format-spec
cursor-sensor compat lean4-syntax lean4-util lean4-settings f f-shortdoc
s lean4-eri eglot external-completion jsonrpc xref flymake thingatpt
project diff diff-mode easy-mmode ert pp ewoc debug backtrace filenotify
warnings icons compile text-property-search comint ansi-osc ring
url-util url-parse auth-source cl-seq eieio eieio-core cl-macs
password-cache url-vars imenu flycheck ansi-color json map byte-opt gv
bytecomp byte-compile find-func help-mode rx subr-x pcase dash
cl-loaddefs cl-lib cus-start cus-load rmc iso-transl tooltip cconv eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars
term/common-win touch-screen tool-bar dnd fontset image regexp-opt
fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode
register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads w32notify w32 lcms2 multi-tty move-toolbar make-network-process
native-compile emacs)
Memory information:
((conses 16 230339 30888) (symbols 48 15071 0) (strings 32 50446 4052)
(string-bytes 1 1546772) (vectors 16 36238)
(vector-slots 8 716441 24950) (floats 8 77 40) (intervals 56 927 39)
(buffers 992 18))
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#66552: 30.0.50; Eglot feature request: handle quirky code actions
2023-10-15 2:24 bug#66552: 30.0.50; Eglot feature request: handle quirky code actions Richard Copley
@ 2023-10-16 23:22 ` Dmitry Gutov
2023-10-17 3:03 ` João Távora
2023-10-17 3:11 ` João Távora
1 sibling, 1 reply; 9+ messages in thread
From: Dmitry Gutov @ 2023-10-16 23:22 UTC (permalink / raw)
To: Richard Copley, 66552, João Távora
Cc'ing Joao.
On 15/10/2023 05:24, Richard Copley wrote:
> The language server for Lean 4 [1] provides code actions with a couple
> of features that make it difficult to apply them from within Eglot.
>
> [1]https://github.com/leanprover/lean4
>
> Firstly, the textDocument version field has the value 0, which is
> generally not equal to the version in `eglot--versioned-identifier',
> resulting in the error "Edits on `%s' require version %d, you have %d"
> from `eglot--apply-text-edits'.
>
> Secondly, all the suggestions have the same title ("Apply 'Try this'"),
> which means an alist using the title as the key can't be used in
> completing-read as in `eglot--read-execute-code-action'.
>
> Could you provide options to ignore the version, and to use the newText
> (JSONPath $.result[:1].edit.documentChanges[:1].edits[:1].newText)
> instead of the title?
>
> Here is an example request and reply. The reply is cut down from an
> original list of over 200 suggestions.
>
> [client-request]
> (:jsonrpc "2.0" :id 777 :method "textDocument/codeAction" :params
> (:textDocument
> (:uri"file:///s%3A/projects/lean/float/Fl/Lemmas.lean") :range
> (:start (:line 50 :character 2) :end (:line 50 :character 8))
> :context (:diagnostics [])))
>
> [server-reply]
> (:result
> [(:title "Apply 'Try this'" :kind "quickfix" :isPreferred t :edit
> (:documentChanges
> [(:textDocument
> (:version 0 :uri"file:///s%3A/Fl/Lemmas.lean")
> :edits
> [(:range
> (:start (:line 50 :character 2) :end (:line 50 :character 8))
> :newText "refine Nat.add_left_cancel ?_")])]
> :changes nil :changeAnnotations nil))
> (:title "Apply 'Try this'" :kind "quickfix" :isPreferred t :edit
> (:documentChanges
> [(:textDocument
> (:version 0 :uri"file:///s%3A/Fl/Lemmas.lean")
> :edits
> [(:range
> (:start (:line 50 :character 2) :end (:line 50 :character 8))
> :newText "refine Nat.add_right_cancel ?_")])]
> :changes nil :changeAnnotations nil))
> (:title "Apply 'Try this'" :kind "quickfix" :isPreferred t :edit
> (:documentChanges
> [(:textDocument
> (:version 0 :uri"file:///s%3A/Fl/Lemmas.lean")
> :edits
> [(:range
> (:start (:line 50 :character 2) :end (:line 50 :character 8))
> :newText "refine Nat.eq_of_mul_eq_mul_right ?_")])]
> :changes nil :changeAnnotations nil))
> (:title "Apply 'Try this'" :kind "quickfix" :isPreferred t :edit
> (:documentChanges
> [(:textDocument
> (:version 0 :uri"file:///s%3A/Fl/Lemmas.lean")
> :edits
> [(:range
> (:start (:line 50 :character 2) :end (:line 50 :character 8))
> :newText "refine Nat.eq_of_mul_eq_mul_left ?_")])]
> :changes nil :changeAnnotations nil))]
> :jsonrpc "2.0" :id 777)
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#66552: 30.0.50; Eglot feature request: handle quirky code actions
2023-10-16 23:22 ` Dmitry Gutov
@ 2023-10-17 3:03 ` João Távora
0 siblings, 0 replies; 9+ messages in thread
From: João Távora @ 2023-10-17 3:03 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: Richard Copley, 66552
On Tue, Oct 17, 2023 at 12:22 AM Dmitry Gutov <dmitry@gutov.dev> wrote:
>
> Cc'ing Joao.
Thanks for pinging me: I'll reply to the original message.
João
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#66552: 30.0.50; Eglot feature request: handle quirky code actions
2023-10-15 2:24 bug#66552: 30.0.50; Eglot feature request: handle quirky code actions Richard Copley
2023-10-16 23:22 ` Dmitry Gutov
@ 2023-10-17 3:11 ` João Távora
2023-10-17 19:07 ` Richard Copley
2023-10-26 14:41 ` Richard Copley
1 sibling, 2 replies; 9+ messages in thread
From: João Távora @ 2023-10-17 3:11 UTC (permalink / raw)
To: Richard Copley; +Cc: 66552
On Sun, Oct 15, 2023 at 3:25 AM Richard Copley <rcopley@gmail.com> wrote:
>
> The language server for Lean 4 [1] provides code actions with a couple
> of features that make it difficult to apply them from within Eglot.
>
> [1] https://github.com/leanprover/lean4
>
> Firstly, the textDocument version field has the value 0, which is
> generally not equal to the version in `eglot--versioned-identifier',
> resulting in the error "Edits on `%s' require version %d, you have %d"
> from `eglot--apply-text-edits'.
>
> Secondly, all the suggestions have the same title ("Apply 'Try this'"),
> which means an alist using the title as the key can't be used in
> completing-read as in `eglot--read-execute-code-action'.
>
> Could you provide options to ignore the version, and to use the newText
> (JSONPath $.result[:1].edit.documentChanges[:1].edits[:1].newText)
> instead of the title?
I understand the problem, thanks for describing it nicely.
Anyway, I don't think patching this in a client like Eglot is
recommended. Both these thinks are bugs in the language server
and should be fixed there. Eglot is an LSP client which works
with tens, maybe hundreds, of servers, it can't bloat itself
to work around every server's quirks.
For the version field, servers don't _have_ to send one (if I
remember correctly). If a servers sends no field, Eglot will
ignore it. If it sends a wrong one, Eglot won't.
You could work around it with a monkey-patch by advising
eglot--apply-text-edits to always have a null second argument.
The second labeling problem is even more bizarre Again, you
can probably monkey-patch Eglot to work around it.
But I really think you should report these two things to the
language server authors.
João
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#66552: 30.0.50; Eglot feature request: handle quirky code actions
2023-10-17 3:11 ` João Távora
@ 2023-10-17 19:07 ` Richard Copley
2023-10-17 21:38 ` João Távora
2023-10-26 14:41 ` Richard Copley
1 sibling, 1 reply; 9+ messages in thread
From: Richard Copley @ 2023-10-17 19:07 UTC (permalink / raw)
To: João Távora; +Cc: 66552
On Tue, 17 Oct 2023 at 04:11, João Távora <joaotavora@gmail.com> wrote:
>
> On Sun, Oct 15, 2023 at 3:25 AM Richard Copley <rcopley@gmail.com> wrote:
> >
> > The language server for Lean 4 [1] provides code actions with a couple
> > of features that make it difficult to apply them from within Eglot.
> >
> > [1] https://github.com/leanprover/lean4
> >
> > Firstly, the textDocument version field has the value 0, which is
> > generally not equal to the version in `eglot--versioned-identifier',
> > resulting in the error "Edits on `%s' require version %d, you have %d"
> > from `eglot--apply-text-edits'.
> >
> > Secondly, all the suggestions have the same title ("Apply 'Try this'"),
> > which means an alist using the title as the key can't be used in
> > completing-read as in `eglot--read-execute-code-action'.
> >
> > Could you provide options to ignore the version, and to use the newText
> > (JSONPath $.result[:1].edit.documentChanges[:1].edits[:1].newText)
> > instead of the title?
>
> I understand the problem, thanks for describing it nicely.
Thanks for reading it!
> Anyway, I don't think patching this in a client like Eglot is
> recommended. Both these thinks are bugs in the language server
> and should be fixed there. Eglot is an LSP client which works
> with tens, maybe hundreds, of servers, it can't bloat itself
> to work around every server's quirks.
>
> For the version field, servers don't _have_ to send one (if I
> remember correctly).
To judge from comments in the Lean 4 sources, the authors wanted to
send null, but found that VS code requires a version number (which it
ignores), so they send 0 as a workaround. It apparently didn't occur
to them to send the correct version, which it turns out is readily
available. Indeed, it's extra work to throw it away.
> If a servers sends no field, Eglot will
> ignore it. If it sends a wrong one, Eglot won't.
> You could work around it with a monkey-patch by advising
> eglot--apply-text-edits to always have a null second argument.
I'll probably go with that. Thanks for the suggestion. It's a shame
that this will affect all languages. It would be nice if I could use a
defmethod dispatching on a subclass of eglot-lsp-server! But
eglot--apply-text-edits doesn't take a server, so it isn't generic.
> The second labeling problem is even more bizarre Again, you
> can probably monkey-patch Eglot to work around it.
Here I'm not sure I agree. The title is only specified to be "A short,
human-readable, title for this code action". In this case the
suggestions are computed, and inventing unique friendly names for them
isn't feasible. "Apply 'Try this'" seems sensible. It refers to the
text of the corresponding diagnostic, "Try this : <newText>".
> But I really think you should report these two things to the
> language server authors.
I think so too, but raising issues against the core language doesn't
seem to be encouraged. They're going through a reorganisation, so
perhaps things will improve.
> João
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#66552: 30.0.50; Eglot feature request: handle quirky code actions
2023-10-17 19:07 ` Richard Copley
@ 2023-10-17 21:38 ` João Távora
2023-10-17 23:24 ` Richard Copley
0 siblings, 1 reply; 9+ messages in thread
From: João Távora @ 2023-10-17 21:38 UTC (permalink / raw)
To: Richard Copley; +Cc: 66552
On Tue, Oct 17, 2023 at 8:08 PM Richard Copley <rcopley@gmail.com> wrote:
> > If a servers sends no field, Eglot will
> > ignore it. If it sends a wrong one, Eglot won't.
>
> > You could work around it with a monkey-patch by advising
> > eglot--apply-text-edits to always have a null second argument.
>
> I'll probably go with that. Thanks for the suggestion. It's a shame
> that this will affect all languages. It would be nice if I could use a
> defmethod dispatching on a subclass of eglot-lsp-server! But
> eglot--apply-text-edits doesn't take a server, so it isn't generic.
For eglot--apply-text-edits to become a generic, it would first
have to be promoted to Eglot's user API (losing the --), and I
don't see a very good reason to do that right now.
However, if you wanted a fully "legal" solution, I think you could
place a server-specific method on
eglot-handle-request (server your-server) (method workspace/applyEdit)
which removes or massages the `version` cookie in the `edit` keyword
argument.
And even with the monkey-patching approach, you can make something
server specific by checking the return value of `eglot-current-server`
before tweaking the value.
Another possibility is for Eglot to start interpreting version 0 as
"any version". It should be feasible since Eglot controls the
start of the numbering, which right now is 0 but be increased to 1,
hopefully without any negative consequences.
> > The second labeling problem is even more bizarre Again, you
> > can probably monkey-patch Eglot to work around it.
>
> Here I'm not sure I agree. The title is only specified to be "A short,
> human-readable, title for this code action". In this case the
> suggestions are computed, and inventing unique friendly names for them
> isn't feasible. "Apply 'Try this'" seems sensible. It refers to the
> text of the corresponding diagnostic, "Try this : <newText>".
This newText is hidden deep inside the `edits` field of such messages.
There's no guarantee it's a 1-element array or even that the edit
is just an insertion. So grabbing it consistently to craft a
user-visible message is just a bad idea
It doesn't make sense for a language server to provide a bunch
of actions with identical labels. It isn't something the client
should have to deal with. A label, to me, is a piece of information
for telling one object apart from another object. If the text of the
corresponding diagnostic is (presumably unique), why can't
the label be unique as well?
João
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#66552: 30.0.50; Eglot feature request: handle quirky code actions
2023-10-17 21:38 ` João Távora
@ 2023-10-17 23:24 ` Richard Copley
0 siblings, 0 replies; 9+ messages in thread
From: Richard Copley @ 2023-10-17 23:24 UTC (permalink / raw)
To: João Távora; +Cc: 66552
On Tue, 17 Oct 2023 at 22:38, João Távora <joaotavora@gmail.com> wrote:
>
> On Tue, Oct 17, 2023 at 8:08 PM Richard Copley <rcopley@gmail.com> wrote:
>
> > > If a servers sends no field, Eglot will
> > > ignore it. If it sends a wrong one, Eglot won't.
> >
> > > You could work around it with a monkey-patch by advising
> > > eglot--apply-text-edits to always have a null second argument.
> >
> > I'll probably go with that. Thanks for the suggestion. It's a shame
> > that this will affect all languages. It would be nice if I could use a
> > defmethod dispatching on a subclass of eglot-lsp-server! But
> > eglot--apply-text-edits doesn't take a server, so it isn't generic.
>
> For eglot--apply-text-edits to become a generic, it would first
> have to be promoted to Eglot's user API (losing the --), and I
> don't see a very good reason to do that right now.
>
> However, if you wanted a fully "legal" solution, I think you could
> place a server-specific method on
>
> eglot-handle-request (server your-server) (method workspace/applyEdit)
>
> which removes or massages the `version` cookie in the `edit` keyword
> argument.
In my case the reply to the textDocument/codeAction client request
contains the full WorkspaceEdit, so there is no workspace/applyEdit
server request involved. The edits are applied directly
(eglot-code-actions (interactive) -> eglot--read-execute-code-action
-> eglot-execute -> eglot--apply-workspace-edit). I'm using :before
advice on eglot--read-execute-code-action to massage the list of
actions (both the version number and the title text).
> And even with the monkey-patching approach, you can make something
> server specific by checking the return value of `eglot-current-server`
> before tweaking the value.
I will do that, thanks.
> Another possibility is for Eglot to start interpreting version 0 as
> "any version". It should be feasible since Eglot controls the
> start of the numbering, which right now is 0 but be increased to 1,
> hopefully without any negative consequences.
>
> > > The second labeling problem is even more bizarre Again, you
> > > can probably monkey-patch Eglot to work around it.
> >
> > Here I'm not sure I agree. The title is only specified to be "A short,
> > human-readable, title for this code action". In this case the
> > suggestions are computed, and inventing unique friendly names for them
> > isn't feasible. "Apply 'Try this'" seems sensible. It refers to the
> > text of the corresponding diagnostic, "Try this : <newText>".
>
> This newText is hidden deep inside the `edits` field of such messages.
> There's no guarantee it's a 1-element array or even that the edit
> is just an insertion. So grabbing it consistently to craft a
> user-visible message is just a bad idea
That's true.
> It doesn't make sense for a language server to provide a bunch
> of actions with identical labels. It isn't something the client
> should have to deal with. A label, to me, is a piece of information
> for telling one object apart from another object. If the text of the
> corresponding diagnostic is (presumably unique), why can't
> the label be unique as well?
But these aren't labels, they're titles, and given the specification,
the authors providing code actions won't necessarily foresee their use
as labels, as sensible as it is from the client's point of view. The
message from the diagnostics *could* be used as the title, but I'd
find it hard to argue to the developers that it *should*. That's no
help to you, of course! I agree that my suggestion of building a label
from the newText is a non-starter in the general case. For the time
being it will work for my case, but if Lean 4 starts providing
refactoring support, for example, I'll have to think again.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#66552: 30.0.50; Eglot feature request: handle quirky code actions
2023-10-17 3:11 ` João Távora
2023-10-17 19:07 ` Richard Copley
@ 2023-10-26 14:41 ` Richard Copley
2024-01-10 11:06 ` Stefan Kangas
1 sibling, 1 reply; 9+ messages in thread
From: Richard Copley @ 2023-10-26 14:41 UTC (permalink / raw)
To: João Távora; +Cc: 66552
On Tue, 17 Oct 2023 at 04:11, João Távora <joaotavora@gmail.com> wrote:
> But I really think you should report these two things to the
> language server authors.
The issue with the incorrect version number in server edits will be
fixed soon. Thanks for the encouragement!
Core Lean 4 language: #2721 [1]
Standard library: #306 [2]
Mathematics library: #7812 [3]
[1] https://github.com/leanprover/lean4/pull/2721
[2] https://github.com/leanprover/std4/pull/306
[3] https://github.com/leanprover-community/mathlib4/pull/7812
I will need to rest and recuperate before advocating for the other
thing to be fixed.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#66552: 30.0.50; Eglot feature request: handle quirky code actions
2023-10-26 14:41 ` Richard Copley
@ 2024-01-10 11:06 ` Stefan Kangas
0 siblings, 0 replies; 9+ messages in thread
From: Stefan Kangas @ 2024-01-10 11:06 UTC (permalink / raw)
To: Richard Copley; +Cc: 66552-done, João Távora
Richard Copley <rcopley@gmail.com> writes:
> On Tue, 17 Oct 2023 at 04:11, João Távora <joaotavora@gmail.com> wrote:
>
>> But I really think you should report these two things to the
>> language server authors.
>
> The issue with the incorrect version number in server edits will be
> fixed soon. Thanks for the encouragement!
>
> Core Lean 4 language: #2721 [1]
> Standard library: #306 [2]
> Mathematics library: #7812 [3]
>
> [1] https://github.com/leanprover/lean4/pull/2721
> [2] https://github.com/leanprover/std4/pull/306
> [3] https://github.com/leanprover-community/mathlib4/pull/7812
>
> I will need to rest and recuperate before advocating for the other
> thing to be fixed.
Thanks for reporting that upstream. Meanwhile, I don't think it makes
sense to keep this bug report open, so I'm closing it now.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-01-10 11:06 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-15 2:24 bug#66552: 30.0.50; Eglot feature request: handle quirky code actions Richard Copley
2023-10-16 23:22 ` Dmitry Gutov
2023-10-17 3:03 ` João Távora
2023-10-17 3:11 ` João Távora
2023-10-17 19:07 ` Richard Copley
2023-10-17 21:38 ` João Távora
2023-10-17 23:24 ` Richard Copley
2023-10-26 14:41 ` Richard Copley
2024-01-10 11:06 ` Stefan Kangas
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).