GNU bug report logs - #76940
30.1; Invalid eglot--recent-changes state

Previous Next

Package: emacs;

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

Date: Tue, 11 Mar 2025 11:49:01 UTC

Severity: normal

Found in version 30.1

Done: Stefan Kangas <stefankangas <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 76940 in the body.
You can then email your comments to 76940 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#76940; Package emacs. (Tue, 11 Mar 2025 11:49:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 11 Mar 2025 11:49:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.1; Invalid eglot--recent-changes state
Date: Tue, 11 Mar 2025 12:47:40 +0100
[Message part 1 (text/plain, inline)]
Hello,

I got the following error with eglot while editing, it seems that
eglot--recent-changes is in an invalid state, I'm not sure how to
reproduce the issue.


Debugger entered--Lisp error: (wrong-type-argument consp #<marker at 240 in
promo_code.py>)
  json-serialize((:jsonrpc "2.0" :method "textDocument/didChange" :params
(:textDocument (:uri
"file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py"
:version 48) :contentChanges [(:range (:start (:line 9 :character 16) :end
(:line 9 :character 22)) :rangeLength (236 . #<marker at 240 in
promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9
:character 24)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 16) :end (:line 9 :character 16)) :rangeLength 0 :text
"trial_2_months") (:range (:start (:line 9 :character 22) :end (:line 9
:character 30)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end
(:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9
:character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 24) :end (:line 9 :character 25))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 22) :end (:line 9 :character 22))
:rangeLength 0 :text "_") (:range (:start (:line 9 :character 22) :end
(:line 9 :character 23)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 24))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 23)) :rangeLength 0 :text "_") (:range (:start (:line 9
:character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d")
(:range (:start (:line 9 :character 25) :end (:line 9 :character 25))
:rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9
:character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 28))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 27))
:rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9
:character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "")
(:range (:start (:line 9 :character 4) :end (:line 9 :character 4))
:rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character 4)
:end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range
(:start (:line 15 :character 26) :end (:line 15 :character 34))
:rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end
(:line 15 :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range
(:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength
0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16
:character 10)) :rangeLength 1 :text "") (:range (:start (:line 16
:character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ")
(:range (:start (:line 16 :character 9) :end (:line 16 :character 10))
:rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end
(:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line
16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")]))
:false-object :json-false :null-object nil)
  jsonrpc--json-encode((:jsonrpc "2.0" :method "textDocument/didChange"
:params (:textDocument (:uri
"file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py"
:version 48) :contentChanges [(:range (:start (:line 9 :character 16) :end
(:line 9 :character 22)) :rangeLength (236 . #<marker at 240 in
promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9
:character 24)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 16) :end (:line 9 :character 16)) :rangeLength 0 :text
"trial_2_months") (:range (:start (:line 9 :character 22) :end (:line 9
:character 30)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end
(:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9
:character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 24) :end (:line 9 :character 25))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 22) :end (:line 9 :character 22))
:rangeLength 0 :text "_") (:range (:start (:line 9 :character 22) :end
(:line 9 :character 23)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 24))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 23)) :rangeLength 0 :text "_") (:range (:start (:line 9
:character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d")
(:range (:start (:line 9 :character 25) :end (:line 9 :character 25))
:rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9
:character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 28))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 27))
:rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9
:character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "")
(:range (:start (:line 9 :character 4) :end (:line 9 :character 4))
:rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character 4)
:end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range
(:start (:line 15 :character 26) :end (:line 15 :character 34))
:rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end
(:line 15 :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range
(:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength
0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16
:character 10)) :rangeLength 1 :text "") (:range (:start (:line 16
:character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ")
(:range (:start (:line 16 :character 9) :end (:line 16 :character 10))
:rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end
(:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line
16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")])))
  #f(compiled-function (arg1 &rest rest) "Send MESSAGE, a JSON object, to
CONNECTION." #<bytecode -0x1b9361667c7d483>)(#<eglot-lsp-server
eglot-lsp-server-5321f25a> :method :textDocument/didChange :params
(:textDocument (:uri
"file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py"
:version 48) :contentChanges [(:range (:start (:line 9 :character 16) :end
(:line 9 :character 22)) :rangeLength (236 . #<marker at 240 in
promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9
:character 24)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 16) :end (:line 9 :character 16)) :rangeLength 0 :text
"trial_2_months") (:range (:start (:line 9 :character 22) :end (:line 9
:character 30)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end
(:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9
:character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 24) :end (:line 9 :character 25))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 22) :end (:line 9 :character 22))
:rangeLength 0 :text "_") (:range (:start (:line 9 :character 22) :end
(:line 9 :character 23)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 24))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 23)) :rangeLength 0 :text "_") (:range (:start (:line 9
:character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d")
(:range (:start (:line 9 :character 25) :end (:line 9 :character 25))
:rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9
:character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 28))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 27))
:rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9
:character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "")
(:range (:start (:line 9 :character 4) :end (:line 9 :character 4))
:rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character 4)
:end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range
(:start (:line 15 :character 26) :end (:line 15 :character 34))
:rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end
(:line 15 :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range
(:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength
0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16
:character 10)) :rangeLength 1 :text "") (:range (:start (:line 16
:character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ")
(:range (:start (:line 16 :character 9) :end (:line 16 :character 10))
:rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end
(:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line
16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")]))
  apply(#f(compiled-function (arg1 &rest rest) "Send MESSAGE, a JSON
object, to CONNECTION." #<bytecode -0x1b9361667c7d483>) #<eglot-lsp-server
eglot-lsp-server-5321f25a> (:method :textDocument/didChange :params
(:textDocument (:uri
"file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py"
:version 48) :contentChanges [(:range (:start (:line 9 :character 16) :end
(:line 9 :character 22)) :rangeLength (236 . #<marker at 240 in
promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9
:character 24)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 16) :end (:line 9 :character 16)) :rangeLength 0 :text
"trial_2_months") (:range (:start (:line 9 :character 22) :end (:line 9
:character 30)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end
(:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9
:character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 24) :end (:line 9 :character 25))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 22) :end (:line 9 :character 22))
:rangeLength 0 :text "_") (:range (:start (:line 9 :character 22) :end
(:line 9 :character 23)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 24))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 23)) :rangeLength 0 :text "_") (:range (:start (:line 9
:character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d")
(:range (:start (:line 9 :character 25) :end (:line 9 :character 25))
:rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9
:character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 28))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 27))
:rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9
:character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "")
(:range (:start (:line 9 :character 4) :end (:line 9 :character 4))
:rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character 4)
:end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range
(:start (:line 15 :character 26) :end (:line 15 :character 34))
:rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end
(:line 15 :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range
(:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength
0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16
:character 10)) :rangeLength 1 :text "") (:range (:start (:line 16
:character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ")
(:range (:start (:line 16 :character 9) :end (:line 16 :character 10))
:rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end
(:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line
16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")])))
  jsonrpc-connection-send(#<eglot-lsp-server eglot-lsp-server-5321f25a>
:method :textDocument/didChange :params (:textDocument (:uri
"file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py"
:version 48) :contentChanges [(:range (:start (:line 9 :character 16) :end
(:line 9 :character 22)) :rangeLength (236 . #<marker at 240 in
promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9
:character 24)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 16) :end (:line 9 :character 16)) :rangeLength 0 :text
"trial_2_months") (:range (:start (:line 9 :character 22) :end (:line 9
:character 30)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end
(:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9
:character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 24) :end (:line 9 :character 25))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 22) :end (:line 9 :character 22))
:rangeLength 0 :text "_") (:range (:start (:line 9 :character 22) :end
(:line 9 :character 23)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 24))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 23)) :rangeLength 0 :text "_") (:range (:start (:line 9
:character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d")
(:range (:start (:line 9 :character 25) :end (:line 9 :character 25))
:rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9
:character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 28))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 27))
:rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9
:character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "")
(:range (:start (:line 9 :character 4) :end (:line 9 :character 4))
:rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character 4)
:end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range
(:start (:line 15 :character 26) :end (:line 15 :character 34))
:rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end
(:line 15 :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range
(:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength
0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16
:character 10)) :rangeLength 1 :text "") (:range (:start (:line 16
:character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ")
(:range (:start (:line 16 :character 9) :end (:line 16 :character 10))
:rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end
(:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line
16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")]))
  jsonrpc-notify(#<eglot-lsp-server eglot-lsp-server-5321f25a>
:textDocument/didChange (:textDocument (:uri
"file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py"
:version 48) :contentChanges [(:range (:start (:line 9 :character 16) :end
(:line 9 :character 22)) :rangeLength (236 . #<marker at 240 in
promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9
:character 24)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 16) :end (:line 9 :character 16)) :rangeLength 0 :text
"trial_2_months") (:range (:start (:line 9 :character 22) :end (:line 9
:character 30)) :rangeLength 8 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end
(:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9
:character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 24) :end (:line 9 :character 25))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 22) :end (:line 9 :character 22))
:rangeLength 0 :text "_") (:range (:start (:line 9 :character 22) :end
(:line 9 :character 23)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 23))
:rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç")
(:range (:start (:line 9 :character 23) :end (:line 9 :character 24))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
(:line 9 :character 23)) :rangeLength 0 :text "_") (:range (:start (:line 9
:character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d")
(:range (:start (:line 9 :character 25) :end (:line 9 :character 25))
:rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9
:character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 28))
:rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end
(:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è")
(:range (:start (:line 9 :character 27) :end (:line 9 :character 27))
:rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9
:character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "")
(:range (:start (:line 9 :character 26) :end (:line 9 :character 26))
:rangeLength 0 :text "y") (:range (:start (:line 9 :character 27) :end
(:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9
:character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "")
(:range (:start (:line 9 :character 4) :end (:line 9 :character 4))
:rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character 4)
:end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range
(:start (:line 15 :character 26) :end (:line 15 :character 34))
:rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end
(:line 15 :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range
(:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength
0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16
:character 10)) :rangeLength 1 :text "") (:range (:start (:line 16
:character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ")
(:range (:start (:line 16 :character 9) :end (:line 16 :character 10))
:rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end
(:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line
16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")]))
  eglot--signal-textDocument/didChange()
  eglot--signal-textDocument/didSave()
  run-hooks(after-save-hook)
  basic-save-buffer(t)
  save-buffer(1)
  funcall-interactively(save-buffer 1)
  command-execute(save-buffer)


Here is the current value of eglot--recent-changes:
"(((:line 28 :character 0) (:line 28 :character 1) 1 ) ((:line 28
:character 0) (:line 28 :character 0) 0  ) ((:line 28 :character 0) (:line
29 :character 0) 1 ) ((:line 29 :character 0) (:line 29 :character 4) 4 )
((:line 29 :character 0) (:line 29 :character 0) 0     ) ((:line 28
:character 0) (:line 28 :character 0) 0
) ((:line 28 :character 0) (:line 29 :character 0) 1 ) ((:line 28
:character 0) (:line 28 :character 4) 4 ) ((:line 28 :character 0) (:line
28 :character 0) 0     ) ((:line 27 :character 54) (:line 27 :character 54)
0
) ((:line 27 :character 54) (:line 27 :character 54) 0
) ((:line 27 :character 54) (:line 28 :character 0) 1 ) ((:line 28
:character 0) (:line 28 :character 1) 1 ) ((:line 28 :character 0) (:line
28 :character 0) 0 i) ((:line 16 :character 9) (:line 16 :character 10) 1 )
((:line 16 :character 9) (:line 16 :character 9) 0  ) ((:line 16 :character
9) (:line 16 :character 10) 1 ) ((:line 16 :character 9) (:line 16
:character 9) 0  ) ((:line 16 :character 9) (:line 16 :character 10) 1 )
((:line 16 :character 9) (:line 16 :character 9) 0  ) ((:line 15 :character
26) (:line 15 :character 26) 0 TRIAL_7_DAYS) ((:line 15 :character 26)
(:line 15 :character 34) 8 ) ((:line 9 :character 4) (:line 9 :character
16) 12 TRIAL_7_DAYS) ((:line 9 :character 4) (:line 9 :character 4) 0
trial_7_days) ((:line 9 :character 4) (:line 9 :character 12) 8 ) ((:line 9
:character 27) (:line 9 :character 27) 0 s) ((:line 9 :character 26) (:line
9 :character 26) 0 y) ((:line 9 :character 26) (:line 9 :character 27) 1 )
((:line 9 :character 27) (:line 9 :character 28) 1 ) ((:line 9 :character
27) (:line 9 :character 27) 0 s) ((:line 9 :character 26) (:line 9
:character 26) 0 è) ((:line 9 :character 26) (:line 9 :character 27) 1 )
((:line 9 :character 27) (:line 9 :character 28) 1 ) ((:line 9 :character
27) (:line 9 :character 27) 0 s) ((:line 9 :character 26) (:line 9
:character 26) 0 u) ((:line 9 :character 25) (:line 9 :character 25) 0 a)
((:line 9 :character 24) (:line 9 :character 24) 0 d) ((:line 9 :character
23) (:line 9 :character 23) 0 _) ((:line 9 :character 23) (:line 9
:character 24) 1 ) ((:line 9 :character 23) (:line 9 :character 23) 0 ç)
((:line 9 :character 23) (:line 9 :character 24) 1 ) ((:line 9 :character
23) (:line 9 :character 23) 0 ç) ((:line 9 :character 22) (:line 9
:character 22) 0 7) ((:line 9 :character 22) (:line 9 :character 23) 1 )
((:line 9 :character 22) (:line 9 :character 22) 0 _) ((:line 9 :character
22) (:line 9 :character 23) 1 ) ((:line 9 :character 23) (:line 9
:character 24) 1 ) ((:line 9 :character 24) (:line 9 :character 25) 1 )
((:line 9 :character 25) (:line 9 :character 26) 1 ) ((:line 9 :character
26) (:line 9 :character 27) 1 ) ((:line 9 :character 26) (:line 9
:character 26) 0 y) ((:line 9 :character 25) (:line 9 :character 25) 0 a)
((:line 9 :character 24) (:line 9 :character 24) 0 d) ((:line 9 :character
23) (:line 9 :character 23) 0 è) ((:line 9 :character 22) (:line 9
:character 22) 0 7) ((:line 9 :character 22) (:line 9 :character 30) 8 )
((:line 9 :character 16) (:line 9 :character 16) 0 trial_2_months) ((:line
9 :character 16) (:line 9 :character 24) 8 ) ((:line 9 :character 16)
(:line 9 :character 22) (236 . #<marker at 240 in promo_code.py>) (242 .
#<marker (moves after insertion) at 252 in promo_code.py>)))"

I got the problem in a single buffer, I did some renaming with eglot-rename
a few minutes ago but I'm not sure that's the cause.
I'm using emacs 30.1 on macOS with a recent version of eglot:
(07bbfea901a71a89d54129ee690e71e9a79b7720)

Thank you.

In GNU Emacs 30.1 (build 2, aarch64-apple-darwin23.6.0, NS
 appkit-2487.70 Version 14.7.3 (Build 23H417)) of 2025-02-24 built on
 MBPro-MHFY4Y3W3H
Windowing system distributor 'Apple', version 10.3.2487
System Description:  macOS 14.7.3

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp
 --infodir=/opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/info/emacs
 --prefix=/opt/homebrew/Cellar/emacs-plus <at> 30/30.1 --with-xml2
 --with-gnutls --with-native-compilation=aot --without-compress-install
 --without-dbus --without-imagemagick --with-modules --with-rsvg
 --with-webp --with-ns --disable-ns-self-contained 'CFLAGS=-O2
 -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT
 -I/opt/homebrew/opt/sqlite/include -I/opt/homebrew/opt/gcc/include
 -I/opt/homebrew/opt/libgccjit/include'
 'LDFLAGS=-L/opt/homebrew/opt/sqlite/lib -L/opt/homebrew/lib/gcc/14
 -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include''

Configured features:
ACL GIF GLIB GMP GNUTLS JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY
KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Messages

Minor modes in effect:
  dirvish-override-dired-mode: t
  global-jinx-mode: t
  meow-global-mode: t
  meow-mode: t
  meow-motion-mode: t
  meow-esc-mode: t
  vertico-multiform-mode: t
  marginalia-mode: t
  vertico-mode: t
  csv-field-index-mode: t
  global-treesit-fold-mode: t
  global-org-modern-mode: t
  repeat-mode: t
  windmove-mode: t
  global-treesit-auto-mode: t
  global-diff-hl-mode: t
  dtrt-indent-global-mode: t
  fancy-compilation-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  which-key-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  org-roam-db-autosync-mode: t
  hexl-follow-ascii: t
  global-git-commit-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  doom-modeline-mode: t
  electric-pair-mode: t
  gcmh-mode: t
  override-global-mode: t
  server-mode: t
  el-patch-use-package-mode: t
  pixel-scroll-precision-mode: t
  global-subword-mode: t
  subword-mode: t
  global-so-long-mode: t
  delete-selection-mode: (delete-selection-pre-hook t)
  global-auto-revert-mode: t
  savehist-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/Users/romain.ouabdelkader/.emacs.d/straight/build/cmake-mode/cmake-mode
hides /opt/homebrew/share/emacs/site-lisp/cmake/cmake-mode
/Users/romain.ouabdelkader/.emacs.d/straight/build/password-store/password-store
hides /opt/homebrew/share/emacs/site-lisp/pass/password-store
/Users/romain.ouabdelkader/.emacs.d/straight/build/which-key/which-key
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/which-key
/Users/romain.ouabdelkader/.emacs.d/straight/build/transient/transient
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/transient
/Users/romain.ouabdelkader/.emacs.d/straight/build/jsonrpc/jsonrpc hides
/opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/jsonrpc
/Users/romain.ouabdelkader/.emacs.d/straight/build/external-completion/external-completion
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/external-completion
/Users/romain.ouabdelkader/.emacs.d/straight/build/bind-key/bind-key hides
/opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/bind-key
/Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-jump
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/use-package/use-package-jump
/Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-ensure-system-package
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/use-package/use-package-ensure-system-package
/Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-diminish
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/use-package/use-package-diminish
/Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/use-package/use-package
/Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-delight
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/use-package/use-package-delight
/Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-lint
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/use-package/use-package-lint
/Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-core
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/use-package/use-package-core
/Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-ensure
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/use-package/use-package-ensure
/Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-bind-key
hides /opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/use-package/use-package-bind-key
/Users/romain.ouabdelkader/.emacs.d/straight/build/flymake/flymake hides
/opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/progmodes/flymake
/Users/romain.ouabdelkader/.emacs.d/straight/build/xref/xref hides
/opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/progmodes/xref
/Users/romain.ouabdelkader/.emacs.d/straight/build/project/project hides
/opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/progmodes/project
/Users/romain.ouabdelkader/.emacs.d/straight/build/eglot/eglot hides
/opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/progmodes/eglot
/Users/romain.ouabdelkader/.emacs.d/straight/build/compat/compat hides
/opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/emacs-lisp/compat
/Users/romain.ouabdelkader/.emacs.d/straight/build/seq/seq hides
/opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/emacs-lisp/seq
/Users/romain.ouabdelkader/.emacs.d/straight/build/eldoc/eldoc hides
/opt/homebrew/Cellar/emacs-plus <at> 30
/30.1/share/emacs/30.1/lisp/emacs-lisp/eldoc

Features:
(shadow mail-extr emacsbug cl-print cus-start help-fns radix-tree
tramp-cmds goto-addr misearch multi-isearch dabbrev vc-hg vc-bzr vc-src
vc-sccs vc-svn vc-cvs vc-rcs bug-reference magit-extras consult-xref
texinfo texinfo-loaddefs vertico-repeat custom-python-highlighting
graphics custom-monokai-theme aidermacs aidermacs-models
aidermacs-backends aidermacs-backend-vterm aidermacs-backend-comint
ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util aidermacs-autoloads cycle-quotes cycle-quotes-autoloads
gptel-quick gptel-quick-autoloads highlight-parentheses
highlight-parentheses-autoloads crux crux-autoloads topsy
topsy-autoloads dirvish dirvish-autoloads jinx jinx-autoloads
impatient-mode htmlize simple-httpd impatient-mode-autoloads
htmlize-autoloads simple-httpd-autoloads consult-dir recentf
consult-dir-autoloads web-mode web-mode-autoloads meow-tree-sitter
meow-tree-sitter-autoloads meow-vterm meow-vterm-autoloads meow
meow-tutor meow-cheatsheet meow-cheatsheet-layout meow-core meow-shims
meow-esc meow-command array meow-thing meow-visual meow-keypad
meow-beacon meow-helpers meow-util meow-keymap meow-face meow-var
meow-autoloads vertico-multiform embark-org embark-consult embark ffap
embark-consult-autoloads embark-autoloads marginalia
marginalia-autoloads consult consult-autoloads vertico vertico-autoloads
elysium elysium-autoloads sideline-flymake sideline-flymake-autoloads
sideline sideline-autoloads gptel-anthropic gptel gptel-org gptel-openai
gptel-autoloads nerd-icons-corfu nerd-icons-corfu-autoloads csv-mode
sort csv-mode-autoloads treesit-fold treesit-fold-summary
treesit-fold-parsers treesit-fold-util treesit-fold-autoloads
terraform-mode hcl-mode terraform-mode-autoloads hcl-mode-autoloads
org-modern org-modern-autoloads gdscript-mode gdscript-ts-mode
gdscript-eglot gdscript-hydra hydra lv gdscript-godot gdscript-project
gdscript-history gdscript-comint gdscript-debug gdscript-format
gdscript-comint-gdformat gdscript-completion gdscript-fill-paragraph
gdscript-imenu gdscript-indent-and-nav gdscript-rx gdscript-utils
gdscript-syntax gdscript-keywords gdscript-docs eww url-queue shr
pixel-fill kinsoku url-file svg mm-url gnus nnheader range
gdscript-customization gdscript-mode-autoloads dape gdb-mi bindat gud
dape-autoloads repeat windmove treesit-auto treesit-auto-autoloads
diff-hl log-view vc-dir vc diff-hl-autoloads browse-at-remote
browse-at-remote-autoloads wgrep-helm wgrep-helm-autoloads wgrep grep
wgrep-autoloads dtrt-indent cus-load dtrt-indent-autoloads zygospore
zygospore-autoloads fancy-compilation fancy-compilation-autoloads
apheleia apheleia-rcs apheleia-dp apheleia-formatters apheleia-utils
apheleia-log apheleia-formatter-context apheleia-autoloads cape
cape-autoloads orderless orderless-autoloads corfu-popupinfo corfu
corfu-autoloads eldoc-box eldoc-box-autoloads which-key
which-key-autoloads treemacs treemacs-header-line treemacs-compatibility
treemacs-mode treemacs-bookmarks treemacs-tags treemacs-interface
treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode
treemacs-rendering treemacs-annotations treemacs-async
treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator pulse treemacs-faces treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils pfuture hl-line
treemacs-logging treemacs-customization treemacs-macros
treemacs-autoloads cfrs-autoloads posframe-autoloads hydra-autoloads
lv-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads
markdown-mode markdown-mode-autoloads rainbow-delimiters
rainbow-delimiters-autoloads typescript-ts-mode org-roam-migrate
org-roam-log org-roam-mode org-roam-capture org-roam-id org-roam-node
org-roam-db emacsql-sqlite-builtin sqlite org-roam-utils org-roam-compat
org-roam org-capture org-element org-persist avl-tree org-attach org-id
org-refile org-element-ast inline emacsql-sqlite emacsql
emacsql-compiler org-roam-autoloads emacsql-autoloads string-inflection
string-inflection-autoloads groovy-mode groovy-mode-autoloads
kotlin-mode kotlin-mode-indent kotlin-mode-lexer kotlin-mode-autoloads
pyvenv pyvenv-autoloads multi-vterm multi-vterm-autoloads vterm-toggle
tramp-sh vterm-toggle-autoloads vterm magit-bookmark bookmark tramp
trampver tramp-integration tramp-message tramp-compat xdg parse-time
iso8601 tramp-loaddefs face-remap color term ehelp vterm-module
term/xterm xterm vterm-autoloads sqlformat reformatter
sqlformat-autoloads reformatter-autoloads restclient
restclient-autoloads rust-utils rust-prog-mode rust-mode rust-playpen
rust-cargo rust-common rust-rustfmt rust-compile rust-mode-autoloads js
c-ts-common clang-format xml clang-format-autoloads eglot tree-widget
external-completion jsonrpc seq-25 ert ewoc debug backtrace
eglot-autoloads jsonrpc-autoloads external-completion-autoloads
dockerfile-mode dockerfile-mode-autoloads nhexl-mode disp-table hexl
nhexl-mode-autoloads jinja2-mode jinja2-mode-autoloads glsl-mode glsl-db
align cc-mode cc-fonts cc-guess cc-menus cc-cmds glsl-mode-autoloads
cython-mode cython-mode-autoloads swift-mode swift-mode-imenu
swift-mode-repl wid-edit swift-mode-font-lock swift-mode-standard-types
swift-mode-fill swift-mode-beginning-of-defun swift-mode-indent
swift-mode-lexer swift-mode-autoloads yaml-mode yaml-mode-autoloads
quickrun ht eshell em-banner esh-mode esh-var esh-cmd generator esh-ext
esh-opt esh-proc esh-io esh-arg esh-module esh-module-loaddefs esh-util
files-x quickrun-autoloads ht-autoloads magit-delta xterm-color
magit-delta-autoloads xterm-color-autoloads git-timemachine vc-git
vc-dispatcher git-timemachine-autoloads epa-file request
request-autoloads magit-submodule magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit package url-handlers magit-repos magit-apply magit-wip magit-log
which-func magit-diff smerge-mode diff diff-mode track-changes
git-commit log-edit message sendmail yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils
mailheader pcvs-util add-log magit-core magit-autorevert magit-margin
magit-transient magit-process magit-mode transient pp browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap benchmark magit-git
magit-base magit-section cursor-sensor crm llama magit-autoloads
transient-autoloads magit-section-autoloads llama-autoloads yasnippet
yasnippet-autoloads multiple-cursors mc-separate-operations
rectangular-region-mode mc-mark-pop mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-more sgml-mode facemenu dom
mc-cycle-cursors multiple-cursors-core rect multiple-cursors-autoloads
finder-inf phi-search phi-search-core phi-search-autoloads zoom-frm
frame-cmds advice frame-fns avoid zoom-frm-autoloads
frame-cmds-autoloads frame-fns-autoloads all-the-icons-autoloads
doom-modeline doom-modeline-segments doom-modeline-env
doom-modeline-core shrink-path nerd-icons nerd-icons-faces
nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon
nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon
nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline
nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon
doom-modeline-autoloads shrink-path-autoloads nerd-icons-autoloads
cmake-mode rst cmake-mode-autoloads symbol-overlay
symbol-overlay-autoloads dumb-jump popup xref dumb-jump-autoloads
popup-autoloads vundo vundo-autoloads ws-butler ws-butler-autoloads
use-package-diminish elec-pair diminish diminish-autoloads gcmh
gcmh-autoloads ob-python python pcase ob-dot org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit
executable ob-comint org-pcomplete org-list org-footnote org-faces
org-entities time-date noutline outline ob-emacs-lisp ob-core ob-eval
org-version org-cycle org-table ol org-fold org-fold-core org-keys oc
org-loaddefs find-func cal-menu calendar cal-loaddefs org-compat
org-macs format-spec flymake project compile text-property-search
thingatpt edmacro kmacro flymake-autoloads project-autoloads
xref-autoloads eldoc-autoloads use-package-bind-key bind-key easy-mmode
pass f dash s imenu pass-autoloads f-autoloads dash-autoloads
password-store-otp-autoloads s-autoloads password-store auth-source-pass
url-parse url-vars auth-source eieio eieio-core password-cache json map
byte-opt with-editor shell pcomplete server compat
password-store-autoloads with-editor-autoloads compat-autoloads
seq-autoloads undo-fu undo-fu-autoloads el-patch-autoloads el-patch
el-patch-stub cc-styles cc-align cc-engine cc-vars cc-defs pixel-scroll
cua-base comint ansi-osc ansi-color ring use-package-core cap-words
superword subword so-long comp comp-cstr warnings icons comp-run
comp-common rx delsel autorevert filenotify savehist cl
use-package-autoloads info bind-key-autoloads straight-autoloads cl-seq
cl-extra help-mode straight subr-x cl-macs gv cl-loaddefs cl-lib
bytecomp byte-compile rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win 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 kqueue cocoa ns lcms2
multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 1174478 4326946) (symbols 48 58304 0)
 (strings 32 258664 95666) (string-bytes 1 9534791)
 (vectors 16 131612) (vector-slots 8 2327102 833669)
 (floats 8 1142 21102) (intervals 56 38534 16230) (buffers 992 74))
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76940; Package emacs. (Thu, 13 Mar 2025 10:00:02 GMT) Full text and rfc822 format available.

Message #8 received at 76940 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>,
 João Távora <joaotavora <at> gmail.com>
Cc: 76940 <at> debbugs.gnu.org
Subject: Re: bug#76940: 30.1; Invalid eglot--recent-changes state
Date: Thu, 13 Mar 2025 11:59:26 +0200
> From: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
> Date: Tue, 11 Mar 2025 12:47:40 +0100
> 
> I got the following error with eglot while editing, it seems that
> eglot--recent-changes is in an invalid state, I'm not sure how to
> reproduce the issue.

João, could you please take a look?

> Debugger entered--Lisp error: (wrong-type-argument consp #<marker at 240 in promo_code.py>)
>   json-serialize((:jsonrpc "2.0" :method "textDocument/didChange" :params (:textDocument (:uri
> "file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py" :version 48) :
> contentChanges [(:range (:start (:line 9 :character 16) :end (:line 9 :character 22)) :rangeLength (236 .
> #<marker at 240 in promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
> promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9 :character 24)) :rangeLength 8 :text "")
> (:range (:start (:line 9 :character 16) :end (:line 9 :character 16)) :rangeLength 0 :text "trial_2_months")
> (:range (:start (:line 9 :character 22) :end (:line 9 :character 30)) :rangeLength 8 :text "") (:range (:start (:line
> 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :character 23) :
> end (:line 9 :character 23)) :rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end (:line 9 :
> character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :character 25) :end (:line 9 :character 25)) :
> rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :
> text "y") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "") (:range (:start (:line 9 :
> character 24) :end (:line 9 :character 25)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character
> 23)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength
> 0 :text "_") (:range (:start (:line 9 :character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :
> character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character
> 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end (:line 9 :character 24)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "_") (:range
> (:start (:line 9 :character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :
> character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
> (:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9 :character 27) :end (:line 9 :character
> 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end (:line 9 :character 28)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è") (:range (:start (:line 9 :
> character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
> (:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character
> 27)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength
> 0 :text "y") (:range (:start (:line 9 :character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range
> (:start (:line 9 :character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "") (:range (:start (:line 9 :
> character 4) :end (:line 9 :character 4)) :rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character
> 4) :end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range (:start (:line 15 :character
> 26) :end (:line 15 :character 34)) :rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end (:line 15
> :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range (:start (:line 16 :character 9) :end (:line 16 :
> character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :
> rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :
> text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "") (:range
> (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :
> character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")])) :false-object :json-false :null-object nil)
>   jsonrpc--json-encode((:jsonrpc "2.0" :method "textDocument/didChange" :params (:textDocument (:uri
> "file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py" :version 48) :
> contentChanges [(:range (:start (:line 9 :character 16) :end (:line 9 :character 22)) :rangeLength (236 .
> #<marker at 240 in promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
> promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9 :character 24)) :rangeLength 8 :text "")
> (:range (:start (:line 9 :character 16) :end (:line 9 :character 16)) :rangeLength 0 :text "trial_2_months")
> (:range (:start (:line 9 :character 22) :end (:line 9 :character 30)) :rangeLength 8 :text "") (:range (:start (:line
> 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :character 23) :
> end (:line 9 :character 23)) :rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end (:line 9 :
> character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :character 25) :end (:line 9 :character 25)) :
> rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :
> text "y") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "") (:range (:start (:line 9 :
> character 24) :end (:line 9 :character 25)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character
> 23)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength
> 0 :text "_") (:range (:start (:line 9 :character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :
> character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character
> 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end (:line 9 :character 24)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "_") (:range
> (:start (:line 9 :character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :
> character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
> (:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9 :character 27) :end (:line 9 :character
> 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end (:line 9 :character 28)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è") (:range (:start (:line 9 :
> character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
> (:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character
> 27)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength
> 0 :text "y") (:range (:start (:line 9 :character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range
> (:start (:line 9 :character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "") (:range (:start (:line 9 :
> character 4) :end (:line 9 :character 4)) :rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character
> 4) :end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range (:start (:line 15 :character
> 26) :end (:line 15 :character 34)) :rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end (:line 15
> :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range (:start (:line 16 :character 9) :end (:line 16 :
> character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :
> rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :
> text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "") (:range
> (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :
> character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")])))
>   #f(compiled-function (arg1 &rest rest) "Send MESSAGE, a JSON object, to CONNECTION." #<bytecode -
> 0x1b9361667c7d483>)(#<eglot-lsp-server eglot-lsp-server-5321f25a> :method :textDocument/didChange :
> params (:textDocument (:uri "file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py"
> :version 48) :contentChanges [(:range (:start (:line 9 :character 16) :end (:line 9 :character 22)) :
> rangeLength (236 . #<marker at 240 in promo_code.py>) :text (242 . #<marker (moves after insertion) at
> 252 in promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9 :character 24)) :rangeLength 8 :
> text "") (:range (:start (:line 9 :character 16) :end (:line 9 :character 16)) :rangeLength 0 :text
> "trial_2_months") (:range (:start (:line 9 :character 22) :end (:line 9 :character 30)) :rangeLength 8 :text "")
> (:range (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start
> (:line 9 :character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "è") (:range (:start (:line 9 :character
> 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :character 25) :end (:line 9 :
> character 25)) :rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :
> rangeLength 0 :text "y") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :
> text "") (:range (:start (:line 9 :character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 24) :end (:line 9 :character 25)) :rangeLength 1 :text "") (:range (:start (:line 9 :
> character 23) :end (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end
> (:line 9 :character 23)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character
> 22)) :rangeLength 0 :text "_") (:range (:start (:line 9 :character 22) :end (:line 9 :character 23)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range
> (:start (:line 9 :character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :
> character 23) :end (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end (:line 9 :character
> 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character 23)) :rangeLength
> 0 :text "_") (:range (:start (:line 9 :character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d") (:range
> (:start (:line 9 :character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a") (:range (:start (:line 9 :
> character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9 :character 27) :end
> (:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end (:line 9 :character
> 28)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è") (:range
> (:start (:line 9 :character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :
> character 27) :end (:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end
> (:line 9 :character 27)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character
> 26)) :rangeLength 0 :text "y") (:range (:start (:line 9 :character 27) :end (:line 9 :character 27)) :rangeLength
> 0 :text "s") (:range (:start (:line 9 :character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "") (:range
> (:start (:line 9 :character 4) :end (:line 9 :character 4)) :rangeLength 0 :text "trial_7_days") (:range (:start
> (:line 9 :character 4) :end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range (:start
> (:line 15 :character 26) :end (:line 15 :character 34)) :rangeLength 8 :text "") (:range (:start (:line 15 :
> character 26) :end (:line 15 :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range (:start (:line 16 :
> character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :character 9) :end
> (:line 16 :character 10)) :rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end (:line 16 :
> character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :
> rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :
> text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")]))
>   apply(#f(compiled-function (arg1 &rest rest) "Send MESSAGE, a JSON object, to CONNECTION."
> #<bytecode -0x1b9361667c7d483>) #<eglot-lsp-server eglot-lsp-server-5321f25a> (:method :
> textDocument/didChange :params (:textDocument (:uri
> "file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py" :version 48) :
> contentChanges [(:range (:start (:line 9 :character 16) :end (:line 9 :character 22)) :rangeLength (236 .
> #<marker at 240 in promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
> promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9 :character 24)) :rangeLength 8 :text "")
> (:range (:start (:line 9 :character 16) :end (:line 9 :character 16)) :rangeLength 0 :text "trial_2_months")
> (:range (:start (:line 9 :character 22) :end (:line 9 :character 30)) :rangeLength 8 :text "") (:range (:start (:line
> 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :character 23) :
> end (:line 9 :character 23)) :rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end (:line 9 :
> character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :character 25) :end (:line 9 :character 25)) :
> rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :
> text "y") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "") (:range (:start (:line 9 :
> character 24) :end (:line 9 :character 25)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character
> 23)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength
> 0 :text "_") (:range (:start (:line 9 :character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :
> character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character
> 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end (:line 9 :character 24)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "_") (:range
> (:start (:line 9 :character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :
> character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
> (:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9 :character 27) :end (:line 9 :character
> 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end (:line 9 :character 28)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è") (:range (:start (:line 9 :
> character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
> (:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character
> 27)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength
> 0 :text "y") (:range (:start (:line 9 :character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range
> (:start (:line 9 :character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "") (:range (:start (:line 9 :
> character 4) :end (:line 9 :character 4)) :rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character
> 4) :end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range (:start (:line 15 :character
> 26) :end (:line 15 :character 34)) :rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end (:line 15
> :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range (:start (:line 16 :character 9) :end (:line 16 :
> character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :
> rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :
> text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "") (:range
> (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :
> character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")])))
>   jsonrpc-connection-send(#<eglot-lsp-server eglot-lsp-server-5321f25a> :method :textDocument/didChange
> :params (:textDocument (:uri
> "file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py" :version 48) :
> contentChanges [(:range (:start (:line 9 :character 16) :end (:line 9 :character 22)) :rangeLength (236 .
> #<marker at 240 in promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
> promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9 :character 24)) :rangeLength 8 :text "")
> (:range (:start (:line 9 :character 16) :end (:line 9 :character 16)) :rangeLength 0 :text "trial_2_months")
> (:range (:start (:line 9 :character 22) :end (:line 9 :character 30)) :rangeLength 8 :text "") (:range (:start (:line
> 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :character 23) :
> end (:line 9 :character 23)) :rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end (:line 9 :
> character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :character 25) :end (:line 9 :character 25)) :
> rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :
> text "y") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "") (:range (:start (:line 9 :
> character 24) :end (:line 9 :character 25)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character
> 23)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength
> 0 :text "_") (:range (:start (:line 9 :character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :
> character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character
> 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end (:line 9 :character 24)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "_") (:range
> (:start (:line 9 :character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :
> character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
> (:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9 :character 27) :end (:line 9 :character
> 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end (:line 9 :character 28)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è") (:range (:start (:line 9 :
> character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
> (:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character
> 27)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength
> 0 :text "y") (:range (:start (:line 9 :character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range
> (:start (:line 9 :character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "") (:range (:start (:line 9 :
> character 4) :end (:line 9 :character 4)) :rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character
> 4) :end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range (:start (:line 15 :character
> 26) :end (:line 15 :character 34)) :rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end (:line 15
> :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range (:start (:line 16 :character 9) :end (:line 16 :
> character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :
> rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :
> text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "") (:range
> (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :
> character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")]))
>   jsonrpc-notify(#<eglot-lsp-server eglot-lsp-server-5321f25a> :textDocument/didChange (:textDocument
> (:uri "file:///Users/romain.ouabdelkader/work/server/waveapi/models/promo_code.py" :version 48) :
> contentChanges [(:range (:start (:line 9 :character 16) :end (:line 9 :character 22)) :rangeLength (236 .
> #<marker at 240 in promo_code.py>) :text (242 . #<marker (moves after insertion) at 252 in
> promo_code.py>)) (:range (:start (:line 9 :character 16) :end (:line 9 :character 24)) :rangeLength 8 :text "")
> (:range (:start (:line 9 :character 16) :end (:line 9 :character 16)) :rangeLength 0 :text "trial_2_months")
> (:range (:start (:line 9 :character 22) :end (:line 9 :character 30)) :rangeLength 8 :text "") (:range (:start (:line
> 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :character 23) :
> end (:line 9 :character 23)) :rangeLength 0 :text "è") (:range (:start (:line 9 :character 24) :end (:line 9 :
> character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :character 25) :end (:line 9 :character 25)) :
> rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :
> text "y") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 25) :end (:line 9 :character 26)) :rangeLength 1 :text "") (:range (:start (:line 9 :
> character 24) :end (:line 9 :character 25)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character
> 23)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength
> 0 :text "_") (:range (:start (:line 9 :character 22) :end (:line 9 :character 23)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 22) :end (:line 9 :character 22)) :rangeLength 0 :text "7") (:range (:start (:line 9 :
> character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end
> (:line 9 :character 24)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character
> 23)) :rangeLength 0 :text "ç") (:range (:start (:line 9 :character 23) :end (:line 9 :character 24)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 23) :end (:line 9 :character 23)) :rangeLength 0 :text "_") (:range
> (:start (:line 9 :character 24) :end (:line 9 :character 24)) :rangeLength 0 :text "d") (:range (:start (:line 9 :
> character 25) :end (:line 9 :character 25)) :rangeLength 0 :text "a") (:range (:start (:line 9 :character 26) :end
> (:line 9 :character 26)) :rangeLength 0 :text "u") (:range (:start (:line 9 :character 27) :end (:line 9 :character
> 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end (:line 9 :character 28)) :rangeLength
> 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 27)) :rangeLength 1 :text "") (:range
> (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength 0 :text "è") (:range (:start (:line 9 :
> character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range (:start (:line 9 :character 27) :end
> (:line 9 :character 28)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character
> 27)) :rangeLength 1 :text "") (:range (:start (:line 9 :character 26) :end (:line 9 :character 26)) :rangeLength
> 0 :text "y") (:range (:start (:line 9 :character 27) :end (:line 9 :character 27)) :rangeLength 0 :text "s") (:range
> (:start (:line 9 :character 4) :end (:line 9 :character 12)) :rangeLength 8 :text "") (:range (:start (:line 9 :
> character 4) :end (:line 9 :character 4)) :rangeLength 0 :text "trial_7_days") (:range (:start (:line 9 :character
> 4) :end (:line 9 :character 16)) :rangeLength 12 :text "TRIAL_7_DAYS") (:range (:start (:line 15 :character
> 26) :end (:line 15 :character 34)) :rangeLength 8 :text "") (:range (:start (:line 15 :character 26) :end (:line 15
> :character 26)) :rangeLength 0 :text "TRIAL_7_DAYS") (:range (:start (:line 16 :character 9) :end (:line 16 :
> character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :
> rangeLength 1 :text "") (:range (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :
> text " ") (:range (:start (:line 16 :character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "") (:range
> (:start (:line 16 :character 9) :end (:line 16 :character 9)) :rangeLength 0 :text " ") (:range (:start (:line 16 :
> character 9) :end (:line 16 :character 10)) :rangeLength 1 :text "")]))
>   eglot--signal-textDocument/didChange()
>   eglot--signal-textDocument/didSave()
>   run-hooks(after-save-hook)
>   basic-save-buffer(t)
>   save-buffer(1)
>   funcall-interactively(save-buffer 1)
>   command-execute(save-buffer)
> 
> Here is the current value of eglot--recent-changes:
> "(((:line 28 :character 0) (:line 28 :character 1) 1 ) ((:line 28 :character 0) (:line 28 :character 0) 0  ) ((:line 28
> :character 0) (:line 29 :character 0) 1 ) ((:line 29 :character 0) (:line 29 :character 4) 4 ) ((:line 29 :character
> 0) (:line 29 :character 0) 0     ) ((:line 28 :character 0) (:line 28 :character 0) 0 
> ) ((:line 28 :character 0) (:line 29 :character 0) 1 ) ((:line 28 :character 0) (:line 28 :character 4) 4 ) ((:line 28
> :character 0) (:line 28 :character 0) 0     ) ((:line 27 :character 54) (:line 27 :character 54) 0 
> ) ((:line 27 :character 54) (:line 27 :character 54) 0 
> ) ((:line 27 :character 54) (:line 28 :character 0) 1 ) ((:line 28 :character 0) (:line 28 :character 1) 1 ) ((:line
> 28 :character 0) (:line 28 :character 0) 0 i) ((:line 16 :character 9) (:line 16 :character 10) 1 ) ((:line 16 :
> character 9) (:line 16 :character 9) 0  ) ((:line 16 :character 9) (:line 16 :character 10) 1 ) ((:line 16 :
> character 9) (:line 16 :character 9) 0  ) ((:line 16 :character 9) (:line 16 :character 10) 1 ) ((:line 16 :
> character 9) (:line 16 :character 9) 0  ) ((:line 15 :character 26) (:line 15 :character 26) 0 TRIAL_7_DAYS)
> ((:line 15 :character 26) (:line 15 :character 34) 8 ) ((:line 9 :character 4) (:line 9 :character 16) 12
> TRIAL_7_DAYS) ((:line 9 :character 4) (:line 9 :character 4) 0 trial_7_days) ((:line 9 :character 4) (:line 9 :
> character 12) 8 ) ((:line 9 :character 27) (:line 9 :character 27) 0 s) ((:line 9 :character 26) (:line 9 :character
> 26) 0 y) ((:line 9 :character 26) (:line 9 :character 27) 1 ) ((:line 9 :character 27) (:line 9 :character 28) 1 )
> ((:line 9 :character 27) (:line 9 :character 27) 0 s) ((:line 9 :character 26) (:line 9 :character 26) 0 è) ((:line 9 :
> character 26) (:line 9 :character 27) 1 ) ((:line 9 :character 27) (:line 9 :character 28) 1 ) ((:line 9 :character
> 27) (:line 9 :character 27) 0 s) ((:line 9 :character 26) (:line 9 :character 26) 0 u) ((:line 9 :character 25) (:line
> 9 :character 25) 0 a) ((:line 9 :character 24) (:line 9 :character 24) 0 d) ((:line 9 :character 23) (:line 9 :
> character 23) 0 _) ((:line 9 :character 23) (:line 9 :character 24) 1 ) ((:line 9 :character 23) (:line 9 :character
> 23) 0 ç) ((:line 9 :character 23) (:line 9 :character 24) 1 ) ((:line 9 :character 23) (:line 9 :character 23) 0 ç)
> ((:line 9 :character 22) (:line 9 :character 22) 0 7) ((:line 9 :character 22) (:line 9 :character 23) 1 ) ((:line 9 :
> character 22) (:line 9 :character 22) 0 _) ((:line 9 :character 22) (:line 9 :character 23) 1 ) ((:line 9 :character
> 23) (:line 9 :character 24) 1 ) ((:line 9 :character 24) (:line 9 :character 25) 1 ) ((:line 9 :character 25) (:line 9
> :character 26) 1 ) ((:line 9 :character 26) (:line 9 :character 27) 1 ) ((:line 9 :character 26) (:line 9 :character
> 26) 0 y) ((:line 9 :character 25) (:line 9 :character 25) 0 a) ((:line 9 :character 24) (:line 9 :character 24) 0 d)
> ((:line 9 :character 23) (:line 9 :character 23) 0 è) ((:line 9 :character 22) (:line 9 :character 22) 0 7) ((:line 9
> :character 22) (:line 9 :character 30) 8 ) ((:line 9 :character 16) (:line 9 :character 16) 0 trial_2_months)
> ((:line 9 :character 16) (:line 9 :character 24) 8 ) ((:line 9 :character 16) (:line 9 :character 22) (236 .
> #<marker at 240 in promo_code.py>) (242 . #<marker (moves after insertion) at 252 in promo_code.py>)))"
> 
> I got the problem in a single buffer, I did some renaming with eglot-rename a few minutes ago but I'm not
> sure that's the cause.
> I'm using emacs 30.1 on macOS with a recent version of eglot:
> (07bbfea901a71a89d54129ee690e71e9a79b7720)
> 
> Thank you.
> 
> In GNU Emacs 30.1 (build 2, aarch64-apple-darwin23.6.0, NS
>  appkit-2487.70 Version 14.7.3 (Build 23H417)) of 2025-02-24 built on
>  MBPro-MHFY4Y3W3H
> Windowing system distributor 'Apple', version 10.3.2487
> System Description:  macOS 14.7.3
> 
> Configured using:
>  'configure --disable-dependency-tracking --disable-silent-rules
>  --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp
>  --infodir=/opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/info/emacs
>  --prefix=/opt/homebrew/Cellar/emacs-plus <at> 30/30.1 --with-xml2
>  --with-gnutls --with-native-compilation=aot --without-compress-install
>  --without-dbus --without-imagemagick --with-modules --with-rsvg
>  --with-webp --with-ns --disable-ns-self-contained 'CFLAGS=-O2
>  -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT
>  -I/opt/homebrew/opt/sqlite/include -I/opt/homebrew/opt/gcc/include
>  -I/opt/homebrew/opt/libgccjit/include'
>  'LDFLAGS=-L/opt/homebrew/opt/sqlite/lib -L/opt/homebrew/lib/gcc/14
>  -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include''
> 
> Configured features:
> ACL GIF GLIB GMP GNUTLS JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY
> KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
> TREE_SITTER WEBP XIM ZLIB
> 
> Important settings:
>   value of $LANG: en_US.UTF-8
>   locale-coding-system: utf-8-unix
> 
> Major mode: Messages
> 
> Minor modes in effect:
>   dirvish-override-dired-mode: t
>   global-jinx-mode: t
>   meow-global-mode: t
>   meow-mode: t
>   meow-motion-mode: t
>   meow-esc-mode: t
>   vertico-multiform-mode: t
>   marginalia-mode: t
>   vertico-mode: t
>   csv-field-index-mode: t
>   global-treesit-fold-mode: t
>   global-org-modern-mode: t
>   repeat-mode: t
>   windmove-mode: t
>   global-treesit-auto-mode: t
>   global-diff-hl-mode: t
>   dtrt-indent-global-mode: t
>   fancy-compilation-mode: t
>   corfu-popupinfo-mode: t
>   global-corfu-mode: t
>   corfu-mode: t
>   which-key-mode: t
>   treemacs-filewatch-mode: t
>   treemacs-follow-mode: t
>   treemacs-git-mode: t
>   treemacs-fringe-indicator-mode: t
>   org-roam-db-autosync-mode: t
>   hexl-follow-ascii: t
>   global-git-commit-mode: t
>   yas-global-mode: t
>   yas-minor-mode: t
>   doom-modeline-mode: t
>   electric-pair-mode: t
>   gcmh-mode: t
>   override-global-mode: t
>   server-mode: t
>   el-patch-use-package-mode: t
>   pixel-scroll-precision-mode: t
>   global-subword-mode: t
>   subword-mode: t
>   global-so-long-mode: t
>   delete-selection-mode: (delete-selection-pre-hook t)
>   global-auto-revert-mode: t
>   savehist-mode: t
>   straight-use-package-mode: t
>   straight-package-neutering-mode: t
>   tooltip-mode: t
>   global-eldoc-mode: t
>   show-paren-mode: t
>   electric-indent-mode: t
>   mouse-wheel-mode: t
>   menu-bar-mode: t
>   file-name-shadow-mode: t
>   global-font-lock-mode: t
>   font-lock-mode: t
>   minibuffer-regexp-mode: t
>   buffer-read-only: t
>   line-number-mode: t
>   transient-mark-mode: t
>   auto-composition-mode: t
>   auto-encryption-mode: t
>   auto-compression-mode: t
> 
> Load-path shadows:
> /Users/romain.ouabdelkader/.emacs.d/straight/build/cmake-mode/cmake-mode hides
> /opt/homebrew/share/emacs/site-lisp/cmake/cmake-mode
> /Users/romain.ouabdelkader/.emacs.d/straight/build/password-store/password-store hides
> /opt/homebrew/share/emacs/site-lisp/pass/password-store
> /Users/romain.ouabdelkader/.emacs.d/straight/build/which-key/which-key hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/which-key
> /Users/romain.ouabdelkader/.emacs.d/straight/build/transient/transient hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/transient
> /Users/romain.ouabdelkader/.emacs.d/straight/build/jsonrpc/jsonrpc hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/jsonrpc
> /Users/romain.ouabdelkader/.emacs.d/straight/build/external-completion/external-completion hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/external-completion
> /Users/romain.ouabdelkader/.emacs.d/straight/build/bind-key/bind-key hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/bind-key
> /Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-jump hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/use-package/use-package-jump
> /Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-ensure-system-package
> hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/use-package/use-package-ensure-system-package
> 
> /Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-diminish hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/use-package/use-package-diminish
> /Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/use-package/use-package
> /Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-delight hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/use-package/use-package-delight
> /Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-lint hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/use-package/use-package-lint
> /Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-core hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/use-package/use-package-core
> /Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-ensure hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/use-package/use-package-ensure
> /Users/romain.ouabdelkader/.emacs.d/straight/build/use-package/use-package-bind-key hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/use-package/use-package-bind-key
> /Users/romain.ouabdelkader/.emacs.d/straight/build/flymake/flymake hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/progmodes/flymake
> /Users/romain.ouabdelkader/.emacs.d/straight/build/xref/xref hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/progmodes/xref
> /Users/romain.ouabdelkader/.emacs.d/straight/build/project/project hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/progmodes/project
> /Users/romain.ouabdelkader/.emacs.d/straight/build/eglot/eglot hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/progmodes/eglot
> /Users/romain.ouabdelkader/.emacs.d/straight/build/compat/compat hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/emacs-lisp/compat
> /Users/romain.ouabdelkader/.emacs.d/straight/build/seq/seq hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/emacs-lisp/seq
> /Users/romain.ouabdelkader/.emacs.d/straight/build/eldoc/eldoc hides
> /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/emacs-lisp/eldoc
> 
> Features:
> (shadow mail-extr emacsbug cl-print cus-start help-fns radix-tree
> tramp-cmds goto-addr misearch multi-isearch dabbrev vc-hg vc-bzr vc-src
> vc-sccs vc-svn vc-cvs vc-rcs bug-reference magit-extras consult-xref
> texinfo texinfo-loaddefs vertico-repeat custom-python-highlighting
> graphics custom-monokai-theme aidermacs aidermacs-models
> aidermacs-backends aidermacs-backend-vterm aidermacs-backend-comint
> ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
> ediff-util aidermacs-autoloads cycle-quotes cycle-quotes-autoloads
> gptel-quick gptel-quick-autoloads highlight-parentheses
> highlight-parentheses-autoloads crux crux-autoloads topsy
> topsy-autoloads dirvish dirvish-autoloads jinx jinx-autoloads
> impatient-mode htmlize simple-httpd impatient-mode-autoloads
> htmlize-autoloads simple-httpd-autoloads consult-dir recentf
> consult-dir-autoloads web-mode web-mode-autoloads meow-tree-sitter
> meow-tree-sitter-autoloads meow-vterm meow-vterm-autoloads meow
> meow-tutor meow-cheatsheet meow-cheatsheet-layout meow-core meow-shims
> meow-esc meow-command array meow-thing meow-visual meow-keypad
> meow-beacon meow-helpers meow-util meow-keymap meow-face meow-var
> meow-autoloads vertico-multiform embark-org embark-consult embark ffap
> embark-consult-autoloads embark-autoloads marginalia
> marginalia-autoloads consult consult-autoloads vertico vertico-autoloads
> elysium elysium-autoloads sideline-flymake sideline-flymake-autoloads
> sideline sideline-autoloads gptel-anthropic gptel gptel-org gptel-openai
> gptel-autoloads nerd-icons-corfu nerd-icons-corfu-autoloads csv-mode
> sort csv-mode-autoloads treesit-fold treesit-fold-summary
> treesit-fold-parsers treesit-fold-util treesit-fold-autoloads
> terraform-mode hcl-mode terraform-mode-autoloads hcl-mode-autoloads
> org-modern org-modern-autoloads gdscript-mode gdscript-ts-mode
> gdscript-eglot gdscript-hydra hydra lv gdscript-godot gdscript-project
> gdscript-history gdscript-comint gdscript-debug gdscript-format
> gdscript-comint-gdformat gdscript-completion gdscript-fill-paragraph
> gdscript-imenu gdscript-indent-and-nav gdscript-rx gdscript-utils
> gdscript-syntax gdscript-keywords gdscript-docs eww url-queue shr
> pixel-fill kinsoku url-file svg mm-url gnus nnheader range
> gdscript-customization gdscript-mode-autoloads dape gdb-mi bindat gud
> dape-autoloads repeat windmove treesit-auto treesit-auto-autoloads
> diff-hl log-view vc-dir vc diff-hl-autoloads browse-at-remote
> browse-at-remote-autoloads wgrep-helm wgrep-helm-autoloads wgrep grep
> wgrep-autoloads dtrt-indent cus-load dtrt-indent-autoloads zygospore
> zygospore-autoloads fancy-compilation fancy-compilation-autoloads
> apheleia apheleia-rcs apheleia-dp apheleia-formatters apheleia-utils
> apheleia-log apheleia-formatter-context apheleia-autoloads cape
> cape-autoloads orderless orderless-autoloads corfu-popupinfo corfu
> corfu-autoloads eldoc-box eldoc-box-autoloads which-key
> which-key-autoloads treemacs treemacs-header-line treemacs-compatibility
> treemacs-mode treemacs-bookmarks treemacs-tags treemacs-interface
> treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode
> treemacs-rendering treemacs-annotations treemacs-async
> treemacs-workspaces treemacs-dom treemacs-visuals
> treemacs-fringe-indicator pulse treemacs-faces treemacs-icons
> treemacs-scope treemacs-themes treemacs-core-utils pfuture hl-line
> treemacs-logging treemacs-customization treemacs-macros
> treemacs-autoloads cfrs-autoloads posframe-autoloads hydra-autoloads
> lv-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads
> markdown-mode markdown-mode-autoloads rainbow-delimiters
> rainbow-delimiters-autoloads typescript-ts-mode org-roam-migrate
> org-roam-log org-roam-mode org-roam-capture org-roam-id org-roam-node
> org-roam-db emacsql-sqlite-builtin sqlite org-roam-utils org-roam-compat
> org-roam org-capture org-element org-persist avl-tree org-attach org-id
> org-refile org-element-ast inline emacsql-sqlite emacsql
> emacsql-compiler org-roam-autoloads emacsql-autoloads string-inflection
> string-inflection-autoloads groovy-mode groovy-mode-autoloads
> kotlin-mode kotlin-mode-indent kotlin-mode-lexer kotlin-mode-autoloads
> pyvenv pyvenv-autoloads multi-vterm multi-vterm-autoloads vterm-toggle
> tramp-sh vterm-toggle-autoloads vterm magit-bookmark bookmark tramp
> trampver tramp-integration tramp-message tramp-compat xdg parse-time
> iso8601 tramp-loaddefs face-remap color term ehelp vterm-module
> term/xterm xterm vterm-autoloads sqlformat reformatter
> sqlformat-autoloads reformatter-autoloads restclient
> restclient-autoloads rust-utils rust-prog-mode rust-mode rust-playpen
> rust-cargo rust-common rust-rustfmt rust-compile rust-mode-autoloads js
> c-ts-common clang-format xml clang-format-autoloads eglot tree-widget
> external-completion jsonrpc seq-25 ert ewoc debug backtrace
> eglot-autoloads jsonrpc-autoloads external-completion-autoloads
> dockerfile-mode dockerfile-mode-autoloads nhexl-mode disp-table hexl
> nhexl-mode-autoloads jinja2-mode jinja2-mode-autoloads glsl-mode glsl-db
> align cc-mode cc-fonts cc-guess cc-menus cc-cmds glsl-mode-autoloads
> cython-mode cython-mode-autoloads swift-mode swift-mode-imenu
> swift-mode-repl wid-edit swift-mode-font-lock swift-mode-standard-types
> swift-mode-fill swift-mode-beginning-of-defun swift-mode-indent
> swift-mode-lexer swift-mode-autoloads yaml-mode yaml-mode-autoloads
> quickrun ht eshell em-banner esh-mode esh-var esh-cmd generator esh-ext
> esh-opt esh-proc esh-io esh-arg esh-module esh-module-loaddefs esh-util
> files-x quickrun-autoloads ht-autoloads magit-delta xterm-color
> magit-delta-autoloads xterm-color-autoloads git-timemachine vc-git
> vc-dispatcher git-timemachine-autoloads epa-file request
> request-autoloads magit-submodule magit-blame magit-stash magit-reflog
> magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
> magit-commit magit-sequence magit-notes magit-worktree magit-tag
> magit-merge magit-branch magit-reset magit-files magit-refs magit-status
> magit package url-handlers magit-repos magit-apply magit-wip magit-log
> which-func magit-diff smerge-mode diff diff-mode track-changes
> git-commit log-edit message sendmail yank-media puny dired
> dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
> gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
> rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils
> mailheader pcvs-util add-log magit-core magit-autorevert magit-margin
> magit-transient magit-process magit-mode transient pp browse-url url
> url-proxy url-privacy url-expand url-methods url-history url-cookie
> generate-lisp-file url-domsuf url-util mailcap benchmark magit-git
> magit-base magit-section cursor-sensor crm llama magit-autoloads
> transient-autoloads magit-section-autoloads llama-autoloads yasnippet
> yasnippet-autoloads multiple-cursors mc-separate-operations
> rectangular-region-mode mc-mark-pop mc-edit-lines
> mc-hide-unmatched-lines-mode mc-mark-more sgml-mode facemenu dom
> mc-cycle-cursors multiple-cursors-core rect multiple-cursors-autoloads
> finder-inf phi-search phi-search-core phi-search-autoloads zoom-frm
> frame-cmds advice frame-fns avoid zoom-frm-autoloads
> frame-cmds-autoloads frame-fns-autoloads all-the-icons-autoloads
> doom-modeline doom-modeline-segments doom-modeline-env
> doom-modeline-core shrink-path nerd-icons nerd-icons-faces
> nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon
> nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon
> nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline
> nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon
> doom-modeline-autoloads shrink-path-autoloads nerd-icons-autoloads
> cmake-mode rst cmake-mode-autoloads symbol-overlay
> symbol-overlay-autoloads dumb-jump popup xref dumb-jump-autoloads
> popup-autoloads vundo vundo-autoloads ws-butler ws-butler-autoloads
> use-package-diminish elec-pair diminish diminish-autoloads gcmh
> gcmh-autoloads ob-python python pcase ob-dot org ob ob-tangle ob-ref
> ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit
> executable ob-comint org-pcomplete org-list org-footnote org-faces
> org-entities time-date noutline outline ob-emacs-lisp ob-core ob-eval
> org-version org-cycle org-table ol org-fold org-fold-core org-keys oc
> org-loaddefs find-func cal-menu calendar cal-loaddefs org-compat
> org-macs format-spec flymake project compile text-property-search
> thingatpt edmacro kmacro flymake-autoloads project-autoloads
> xref-autoloads eldoc-autoloads use-package-bind-key bind-key easy-mmode
> pass f dash s imenu pass-autoloads f-autoloads dash-autoloads
> password-store-otp-autoloads s-autoloads password-store auth-source-pass
> url-parse url-vars auth-source eieio eieio-core password-cache json map
> byte-opt with-editor shell pcomplete server compat
> password-store-autoloads with-editor-autoloads compat-autoloads
> seq-autoloads undo-fu undo-fu-autoloads el-patch-autoloads el-patch
> el-patch-stub cc-styles cc-align cc-engine cc-vars cc-defs pixel-scroll
> cua-base comint ansi-osc ansi-color ring use-package-core cap-words
> superword subword so-long comp comp-cstr warnings icons comp-run
> comp-common rx delsel autorevert filenotify savehist cl
> use-package-autoloads info bind-key-autoloads straight-autoloads cl-seq
> cl-extra help-mode straight subr-x cl-macs gv cl-loaddefs cl-lib
> bytecomp byte-compile rmc iso-transl tooltip cconv eldoc paren electric
> uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
> term/ns-win ns-win ucs-normalize mule-util term/common-win 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 kqueue cocoa ns lcms2
> multi-tty make-network-process native-compile emacs)
> 
> Memory information:
> ((conses 16 1174478 4326946) (symbols 48 58304 0)
>  (strings 32 258664 95666) (string-bytes 1 9534791)
>  (vectors 16 131612) (vector-slots 8 2327102 833669)
>  (floats 8 1142 21102) (intervals 56 38534 16230) (buffers 992 74))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76940; Package emacs. (Thu, 13 Mar 2025 20:13:02 GMT) Full text and rfc822 format available.

Message #11 received at 76940 <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 76940 <at> debbugs.gnu.org, Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
Subject: Re: bug#76940: 30.1; Invalid eglot--recent-changes state
Date: Thu, 13 Mar 2025 20:13:01 +0000
On Thu, Mar 13, 2025 at 9:59 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> > From: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
> > Date: Tue, 11 Mar 2025 12:47:40 +0100
> >
> > I got the following error with eglot while editing, it seems that
> > eglot--recent-changes is in an invalid state, I'm not sure how to
> > reproduce the issue.
>
> João, could you please take a look?

This is almost impossible to analyse without a repro.

Anyway, I looked a bit into this and the only explanation I have for the
:rangeLength to be that odd cons instead of the usual fixnum is for
PRE-CHANGE-LENGTH as specified in the docstring of after-change-functions
to have been that cons in the first place.  So maybe someone has time
to look inside the C code of after-change-functions and figure out if that's
even possible.

That said, Emacs is Emacs and a million things can interfere in Lisp land.
Meow,vertico,marginalia,doom, corfu,treemans, there are a million
packages I have absolutely no idea how they work.

I don't even understand if this is Eglot from Emacs master or a package
installation.  The report mentions a commit SHA which is not unheard of
but odd for released versions of Emacs.

João

PS: There is also this "straight" build of Eglot, which is not the
normal supported
way using package.el.

> > /Users/romain.ouabdelkader/.emacs.d/straight/build/eglot/eglot hides
> > /opt/homebrew/Cellar/emacs-plus <at> 30/30.1/share/emacs/30.1/lisp/progmodes/eglot




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76940; Package emacs. (Fri, 14 Mar 2025 10:06:01 GMT) Full text and rfc822 format available.

Message #14 received at 76940 <at> debbugs.gnu.org (full text, mbox):

From: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
To: João Távora <joaotavora <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 76940 <at> debbugs.gnu.org
Subject: Re: bug#76940: 30.1; Invalid eglot--recent-changes state
Date: Fri, 14 Mar 2025 11:05:06 +0100
[Message part 1 (text/plain, inline)]
Hello,

> I don't even understand if this is Eglot from Emacs master or a package
> installation.  The report mentions a commit SHA which is not unheard of
> but odd for released versions of Emacs.

Sorry this wasn't clear, I use straight to install packages which uses a
git repository to mirror eglot changes from ELPA devel:
https://github.com/emacs-straight/eglot.
Since this may not be familiar to you, I just took the
commit with the same eglot changes in the emacs repository.

The version of eglot I'm using is 1.18.0.20250302.222215 (from ELPA
devel: https://elpa.gnu.org/devel/eglot.html)

I haven't been able to reproduce the error so far.
As expected it will be difficult to fix the error without a repro. I
shared the stack trace in case it might be familiar to you. I guess we can
close the issue.

Thank you!

On Thu, Mar 13, 2025 at 9:12 PM João Távora <joaotavora <at> gmail.com> wrote:

> On Thu, Mar 13, 2025 at 9:59 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
> >
> > > From: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
> > > Date: Tue, 11 Mar 2025 12:47:40 +0100
> > >
> > > I got the following error with eglot while editing, it seems that
> > > eglot--recent-changes is in an invalid state, I'm not sure how to
> > > reproduce the issue.
> >
> > João, could you please take a look?
>
> This is almost impossible to analyse without a repro.
>
> Anyway, I looked a bit into this and the only explanation I have for the
> :rangeLength to be that odd cons instead of the usual fixnum is for
> PRE-CHANGE-LENGTH as specified in the docstring of after-change-functions
> to have been that cons in the first place.  So maybe someone has time
> to look inside the C code of after-change-functions and figure out if
> that's
> even possible.
>
> That said, Emacs is Emacs and a million things can interfere in Lisp land.
> Meow,vertico,marginalia,doom, corfu,treemans, there are a million
> packages I have absolutely no idea how they work.
>
> I don't even understand if this is Eglot from Emacs master or a package
> installation.  The report mentions a commit SHA which is not unheard of
> but odd for released versions of Emacs.
>
> João
>
> PS: There is also this "straight" build of Eglot, which is not the
> normal supported
> way using package.el.
>
> > > /Users/romain.ouabdelkader/.emacs.d/straight/build/eglot/eglot hides
> > > /opt/homebrew/Cellar/emacs-plus <at> 30
> /30.1/share/emacs/30.1/lisp/progmodes/eglot
>
[Message part 2 (text/html, inline)]

Reply sent to Stefan Kangas <stefankangas <at> gmail.com>:
You have taken responsibility. (Fri, 14 Mar 2025 12:08:02 GMT) Full text and rfc822 format available.

Notification sent to Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>:
bug acknowledged by developer. (Fri, 14 Mar 2025 12:08:02 GMT) Full text and rfc822 format available.

Message #19 received at 76940-close <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefankangas <at> gmail.com>
To: Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>,
 João Távora <joaotavora <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 76940-close <at> debbugs.gnu.org
Subject: Re: bug#76940: 30.1; Invalid eglot--recent-changes state
Date: Fri, 14 Mar 2025 05:07:35 -0700
Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com> writes:

> I haven't been able to reproduce the error so far.
> As expected it will be difficult to fix the error without a repro. I
> shared the stack trace in case it might be familiar to you. I guess we can
> close the issue.

Done, please reopen if you find a way to reproduce it.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76940; Package emacs. (Wed, 19 Mar 2025 08:46:04 GMT) Full text and rfc822 format available.

Message #22 received at 76940-close <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Stefan Kangas <stefankangas <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 76940-close <at> debbugs.gnu.org,
 Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com>
Subject: Re: bug#76940: 30.1; Invalid eglot--recent-changes state
Date: Wed, 19 Mar 2025 08:45:15 +0000
[Message part 1 (text/plain, inline)]
Just to note that, while I also don't have a way to reproduce it, I've just
seen this pop up in my recent master build. Using clangd and a very modest
configuration. I'll instrument and stuff and try to investigate if it pops
up again. May be worth reopening this big if only for visibility.

João Távora

On Fri, Mar 14, 2025, 12:07 Stefan Kangas <stefankangas <at> gmail.com> wrote:

> Romain Ouabdelkader <romain.ouabdelkader <at> gmail.com> writes:
>
> > I haven't been able to reproduce the error so far.
> > As expected it will be difficult to fix the error without a repro. I
> > shared the stack trace in case it might be familiar to you. I guess we
> can
> > close the issue.
>
> Done, please reopen if you find a way to reproduce it.
>
[Message part 2 (text/html, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 16 Apr 2025 11:24:17 GMT) Full text and rfc822 format available.

This bug report was last modified 65 days ago.

Previous Next


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