GNU bug report logs - #73414
eglot: using auto-revert-mode and git checkout corrupts diagnostics

Previous Next

Package: emacs;

Reported by: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>

Date: Sat, 21 Sep 2024 19:17:01 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#73414: closed (eglot: using auto-revert-mode and git checkout
 corrupts diagnostics)
Date: Thu, 26 Sep 2024 15:45:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Thu, 26 Sep 2024 18:44:14 +0300
with message-id <86ikuia08h.fsf <at> gnu.org>
and subject line Re: bug#73414: eglot: using auto-revert-mode and git checkout corrupts diagn
has caused the debbugs.gnu.org bug report #73414,
regarding eglot: using auto-revert-mode and git checkout corrupts diagnostics
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
73414: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73414
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: eglot: using auto-revert-mode and git checkout corrupts diagnostics
Date: Sat, 21 Sep 2024 21:13:35 +0200
[Message part 3 (text/plain, inline)]
Hello,

With auto-revert-mode and eglot enabled, using a git checkout to change
branch will leave invalid buffer diagnostics.

Emacs version: GNU Emacs 30.0.91
Operating system: Mac OS X
Eglot version: reproduced with emacs -Q on emacs30 pretest.
Server used: pyright

Steps to reproduce:

Using the following file:

```
def print_lorem_ipsum():
    print("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")

def print_lorem_ipsum_upper():
    print("LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT.")
```

1. Initialize the git repository:

$ git init
$ git add a.py
$ git commit

$ git checkout -b test
# edit a.py and remove the function print_lorem_ipsum_upper
$ git add a.py
$ git commit

2. Start emacs on the test branch:

$ emacs -Q a.py
M-x auto-revert-mode
M-x eglot

3. Then go to the main branch:

$ git checkout main

After auto-revert-mode triggers a file reload, eglot will report that the
function print_lorem_ipsum_upper is duplicated. (See screenshot in
attachment)
See also the `eglot-events-buffer` logs in attachment.

In this state, even if you delete the function and rewrite it, the error
will stay.
The only way to fix the issue is to do a eglot-reconnect.

I can reproduce the issue on emacs30 with built-in eglot and I didn't have
the problem on emacs29 with eglot 1.15 from ELPA.

Thanks.
[Message part 4 (text/html, inline)]
[eglot_logs.txt (text/plain, attachment)]
[Screenshot 2024-09-21 at 14.30.02.png (image/png, attachment)]
[Message part 7 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
Cc: 73414-done <at> debbugs.gnu.org
Subject: Re: bug#73414: eglot: using auto-revert-mode and git checkout corrupts
 diagn
Date: Thu, 26 Sep 2024 18:44:14 +0300
> From: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
> Date: Thu, 26 Sep 2024 17:06:08 +0200
> 
> It seems the issue got fixed by commit 29d50e245f84d62a9cf4ce00593ea4c63fc4f44d, I can't reproduce the
> issue with this patch installed.
> You can close the issue (not sure if I can?)

Thanks, closing (you can also).


This bug report was last modified 272 days ago.

Previous Next


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