> From: e...@pretzelnet.org > Date: Thu, 05 Sep 2024 08:28:53 -0500 > > I wish I could describe exactly what happened. I found > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70541 which sounds > very much like what I'm seeing, but I don't use any input method. > > What I can say: > > - I use rust-mode (not rust-ts-mode) > - I use eglot (config below) > - I use rust-analyzer 1.80.1 (3f5fd8d 2024-08-06) > - The problem seems to happen deep into a work day, after many > commits, reverts, etc. > > My eglot configuration: > > #+begin_src elisp > (setq > eglot-extend-to-xref t > eglot-ignored-server-capabilities > '( > :inlayHintProvider > :documentOnTypeFormattingProvider > ) > ) > #+end_src > > Eventually, this pops into *Messages*: > > #+begin_quote > cl--assertion-failed: Assertion failed: (or track-changes--before-no (<= > track-changes--before-beg (track-changes--state-beg track-changes--state) beg > end (track-changes--state-end track-changes--state) > track-changes--before-end)) > #+end_quote > > And this in *Warnings*: > > #+begin_quote > ⛔ Warning (emacs): Missing/incorrect calls to > ‘before/after-change-functions’!! > Details logged to ‘track-changes--error-log’ > #+end_quote > > Over time, they just keep repeating, although I think killing the > buffer and reopening the file makes it stop. > > If I have inspected ‘track-changes--error-log’ correctly, this is > what it contains (looks like some binary, hope it comes through > in some useful fashion or another): > > #+begin_quote > (("lib.rs" (buffer-size 5254 5218) ((t track-changes--recover-from-error ... > nil) (t track-changes-fetch ... nil) (t eglot--track-changes-fetch ... nil) > (t eglot--signal-textDocument/didChange nil nil) (t > eglot--signal-textDocument/didSave nil nil) (t run-hooks ... nil) (t > basic-save-buffer ... nil) (t save-buffer ... nil) (t funcall-interactively > ... nil) (t call-interactively ... nil) (t command-execute ... nil)) [111 > (nil . other-window) 103 (nil . recompile) 121 (nil . undefined) 24 96 (nil . > next-error) 1 (nil . move-beginning-of-line) 11 ...]) ("lib.rs" (buffer-size > 5256 5254) ((t track-changes--recover-from-error ... nil) (t > track-changes-fetch ... nil) (t eglot--track-changes-fetch ... nil) (t > eglot--signal-textDocument/didChange nil nil) (t > eglot--signal-textDocument/didSave nil nil) (t run-hooks ... nil) (t > basic-save-buffer ... nil) (t save-buffer nil nil) (t #[257 "r\211q\210\300 > )\207" [save-buffer] 2 ...] ... nil) (t map-y-or-n-p ... nil) (t > save-some-buffers ... nil) (t recompile ... nil) ...) [19 (nil . save-buffer) > 24 24 (nil . exchange-point-and-mark) 23 (nil . kill-region) 24 19 (nil . > save-buffer) backspace (nil . delete-backward-char) ...]) ("lib.rs" > (buffer-size 5278 5256) ((t track-changes--recover-from-error ... nil) (t > track-changes-fetch ... nil) (t eglot--track-changes-fetch ... nil) (t > eglot--signal-textDocument/didChange nil nil) (t > eglot--signal-textDocument/didSave nil nil) (t run-hooks ... nil) (t > basic-save-buffer ... nil) (t save-buffer ... nil) (t funcall-interactively > ... nil) (t call-interactively ... nil) (t command-execute ... nil)) [(nil . > backward-word) 2 (nil . backward-char) 67108896 (nil . set-mark-command) > 134217734 (nil . forward-sexp) 23 (nil . kill-region) 24 19 (nil . > save-buffer) ...]) ("lib.rs" (buffer-size 5324 5278) ((t > track-changes--recover-from-error ... nil) (t track-changes-fetch ... nil) (t > eglot--track-changes-fetch ... nil) (t eglot--track-changes-signal ... nil) > (t #[771 "\211^BZ\211^HG^E] > #+end_quote > > I wish I could reliably repeat it. Given that it occurs after > many hours of work, `emacs -Q` isn't an option.
Adding Stefan.