unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors
@ 2024-04-15 13:35 Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found] ` <handler.70396.B.17131881964616.ack@debbugs.gnu.org>
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-15 13:35 UTC (permalink / raw)
  To: 70396


When formatting a specific rust file with with `eglot-format-buffer`
(rust-analyzer LSP), I'm getting:

* Track changes errors (below).
* An `args-out-of-range` error in `replace-buffer-contents`.

To reproduce:

1. Checkout `https://github.com/Stebalien/xattr/`. I can try for a
   minimal reproducer if necessary.
2. Install rust-analyzer.
2. Run `emacs -Q`
3. `M-x find-file "src/sys/linux_macos.rs"`
   (https://github.com/Stebalien/xattr/blob/master/src/sys/linux_macos.rs).
4. `M-x rust-ts-mode`
5. `M-x eglot`
6. `M-x eglot-format-buffer`

\f

((#1="linux_macos.rs"
     ((t track-changes--recover-from-error nil nil)
      (t track-changes--after (1 1 1) nil)
      (t delete-backward-char (1 nil) nil)
      (t funcall-interactively (delete-backward-char 1 nil) nil)
      (t command-execute (delete-backward-char) nil))
     [#2=
      (down-mouse-1
       (#<window 3 on *Warnings*> 148 (202 . 279) 3984902 nil 148
		 (16 . 3) nil (202 . 201) (12 . 26)))
      #3=(nil . mouse-drag-region) #4=
      (mouse-1
       (#<window 3 on *Warnings*> 148 (202 . 279) 3985082 nil 148
		 (16 . 3) nil (202 . 201) (12 . 26)))
      #5=(nil . mouse-set-point) 134217848 #6=
      (nil . execute-extended-command) 102 #7=
      (nil . self-insert-command) 105 #8=(nil . self-insert-command)
      110 #9=(nil . self-insert-command) 100 #10=
      (nil . self-insert-command) 45 #11=(nil . self-insert-command)
      102 #12=(nil . self-insert-command) 105 #13=
      (nil . self-insert-command) tab #14=(nil . minibuffer-complete)
      return #15=(nil . minibuffer-complete-and-exit) 108 #16=
      (nil . self-insert-command) 105 #17=(nil . self-insert-command)
      110 #18=(nil . self-insert-command) tab #19=
      (nil . minibuffer-complete) return #20=
      (nil . minibuffer-complete-and-exit) 134217848 #21=
      (nil . execute-extended-command) 101 #22=
      (nil . self-insert-command) 103 #23=(nil . self-insert-command)
      108 #24=(nil . self-insert-command) tab #25=
      (nil . minibuffer-complete) 45 #26=(nil . self-insert-command)
      101 #27=(nil . self-insert-command) tab #28=
      (nil . minibuffer-complete) backspace #29=
      (nil . delete-backward-char) backspace #30=
      (nil . delete-backward-char) backspace #31=
      (nil . delete-backward-char) backspace #32=
      (nil . delete-backward-char) backspace #33=
      (nil . delete-backward-char) backspace #34=
      (nil . delete-backward-char) backspace #35=
      (nil . delete-backward-char) backspace #36=
      (nil . delete-backward-char) backspace #37=
      (nil . delete-backward-char) backspace #38=
      (nil . delete-backward-char) backspace #39=
      (nil . delete-backward-char) backspace #40=
      (nil . delete-backward-char) backspace #41=
      (nil . delete-backward-char) backspace #42=
      (nil . delete-backward-char) return #43=
      (nil . minibuffer-complete-and-exit) 7 #44=
      (nil . abort-minibuffers) 134217848 #45=
      (nil . execute-extended-command) 114 #46=
      (nil . self-insert-command) 117 #47=(nil . self-insert-command)
      115 #48=(nil . self-insert-command) 116 #49=
      (nil . self-insert-command) 45 #50=(nil . self-insert-command)
      tab #51=(nil . minibuffer-complete) return #52=
      (nil . minibuffer-complete-and-exit) 134217848 #53=
      (nil . execute-extended-command) 101 #54=
      (nil . self-insert-command) 103 #55=(nil . self-insert-command)
      108 #56=(nil . self-insert-command) 111 #57=
      (nil . self-insert-command) tab #58=(nil . minibuffer-complete)
      return #59=(nil . minibuffer-complete-and-exit) 106 #60=
      (nil . self-insert-command) 106 #61=(nil . self-insert-command)
      106 #62=(nil . self-insert-command) 106 #63=
      (nil . self-insert-command) 106 #64=(nil . self-insert-command)
      106 #65=(nil . self-insert-command) 106 #66=
      (nil . self-insert-command) 106 #67=(nil . self-insert-command)
      106 #68=(nil . self-insert-command) 106 #69=
      (nil . self-insert-command) 106 #70=(nil . self-insert-command)
      106 #71=(nil . self-insert-command) 106 #72=
      (nil . self-insert-command) 106 #73=(nil . self-insert-command)
      106 #74=(nil . self-insert-command) backspace #75=
      (nil . delete-backward-char) backspace #76=
      (nil . delete-backward-char) backspace #77=
      (nil . delete-backward-char) backspace #78=
      (nil . delete-backward-char) backspace #79=
      (nil . delete-backward-char) backspace #80=
      (nil . delete-backward-char) backspace #81=
      (nil . delete-backward-char) backspace #82=
      (nil . delete-backward-char) backspace #83=
      (nil . delete-backward-char) backspace #84=
      (nil . delete-backward-char) backspace #85=
      (nil . delete-backward-char) backspace #86=
      (nil . delete-backward-char) backspace #87=
      (nil . delete-backward-char) backspace #88=
      (nil . delete-backward-char) backspace #89=
      (nil . delete-backward-char) 134217848 #90=
      (nil . execute-extended-command) 102 #91=
      (nil . self-insert-command) 111 #92=(nil . self-insert-command)
      114 #93=(nil . self-insert-command) 109 #94=
      (nil . self-insert-command) 97 #95=(nil . self-insert-command)
      116 #96=(nil . self-insert-command) 45 #97=
      (nil . self-insert-command) 98 #98=(nil . self-insert-command)
      117 #99=(nil . self-insert-command) 102 #100=
      (nil . self-insert-command) tab #101=(nil . minibuffer-complete)
      120 #102=(nil . self-insert-command) backspace #103=
      (nil . delete-backward-char) tab #104=
      (nil . minibuffer-complete) 5 #105=(nil . move-end-of-line)
      backspace #106=(nil . delete-backward-char) backspace #107=
      (nil . delete-backward-char) backspace #108=
      (nil . delete-backward-char) backspace #109=
      (nil . delete-backward-char) backspace #110=
      (nil . delete-backward-char) backspace #111=
      (nil . delete-backward-char) backspace #112=
      (nil . delete-backward-char) backspace #113=
      (nil . delete-backward-char) backspace #114=
      (nil . delete-backward-char) backspace #115=
      (nil . delete-backward-char) backspace #116=
      (nil . delete-backward-char) backspace #117=
      (nil . delete-backward-char) backspace #118=
      (nil . delete-backward-char) backspace #119=
      (nil . delete-backward-char) backspace #120=
      (nil . delete-backward-char) backspace #121=
      (nil . delete-backward-char) backspace #122=
      (nil . delete-backward-char) backspace #123=
      (nil . delete-backward-char) 101 #124=
      (nil . self-insert-command) 103 #125=(nil . self-insert-command)
      108 #126=(nil . self-insert-command) 111 #127=
      (nil . self-insert-command) 116 #128=(nil . self-insert-command)
      45 #129=(nil . self-insert-command) 102 #130=
      (nil . self-insert-command) 111 #131=(nil . self-insert-command)
      114 #132=(nil . self-insert-command) tab #133=
      (nil . minibuffer-complete) tab #134=(nil . minibuffer-complete)
      tab #135=(nil . minibuffer-complete) 109 #136=
      (nil . self-insert-command) 97 #137=(nil . self-insert-command)
      116 #138=(nil . self-insert-command) 45 #139=
      (nil . self-insert-command) tab #140=(nil . minibuffer-complete)
      return #141=(nil . minibuffer-complete-and-exit) 106 #142=
      (nil . self-insert-command) 106 #143=(nil . self-insert-command)
      106 #144=(nil . self-insert-command) 106 #145=
      (nil . self-insert-command) 106 #146=(nil . self-insert-command)
      106 #147=(nil . self-insert-command) backspace #148=
      (nil . delete-backward-char) backspace #149=
      (nil . delete-backward-char) backspace #150=
      (nil . delete-backward-char) backspace #151=
      (nil . delete-backward-char) backspace #152=
      (nil . delete-backward-char) backspace
      (nil . delete-backward-char)])
 (#1#
  ((t track-changes--recover-from-error nil nil)
   (t track-changes--after (2 2 1) nil)
   (t delete-backward-char (1 nil) nil)
   (t funcall-interactively (delete-backward-char 1 nil) nil)
   (t command-execute (delete-backward-char) nil))
  [#2# #3# #4# #5# 134217848 #6# 102 #7# 105 #8# 110 #9# 100 #10# 45
       #11# 102 #12# 105 #13# tab #14# return #15# 108 #16# 105 #17#
       110 #18# tab #19# return #20# 134217848 #21# 101 #22# 103 #23#
       108 #24# tab #25# 45 #26# 101 #27# tab #28# backspace #29#
       backspace #30# backspace #31# backspace #32# backspace #33#
       backspace #34# backspace #35# backspace #36# backspace #37#
       backspace #38# backspace #39# backspace #40# backspace #41#
       backspace #42# return #43# 7 #44# 134217848 #45# 114 #46# 117
       #47# 115 #48# 116 #49# 45 #50# tab #51# return #52# 134217848
       #53# 101 #54# 103 #55# 108 #56# 111 #57# tab #58# return #59#
       106 #60# 106 #61# 106 #62# 106 #63# 106 #64# 106 #65# 106 #66#
       106 #67# 106 #68# 106 #69# 106 #70# 106 #71# 106 #72# 106 #73#
       106 #74# backspace #75# backspace #76# backspace #77# backspace
       #78# backspace #79# backspace #80# backspace #81# backspace
       #82# backspace #83# backspace #84# backspace #85# backspace
       #86# backspace #87# backspace #88# backspace #89# 134217848
       #90# 102 #91# 111 #92# 114 #93# 109 #94# 97 #95# 116 #96# 45
       #97# 98 #98# 117 #99# 102 #100# tab #101# 120 #102# backspace
       #103# tab #104# 5 #105# backspace #106# backspace #107#
       backspace #108# backspace #109# backspace #110# backspace #111#
       backspace #112# backspace #113# backspace #114# backspace #115#
       backspace #116# backspace #117# backspace #118# backspace #119#
       backspace #120# backspace #121# backspace #122# backspace #123#
       101 #124# 103 #125# 108 #126# 111 #127# 116 #128# 45 #129# 102
       #130# 111 #131# 114 #132# tab #133# tab #134# tab #135# 109
       #136# 97 #137# 116 #138# 45 #139# tab #140# return #141# 106
       #142# 106 #143# 106 #144# 106 #145# 106 #146# 106 #147#
       backspace #148# backspace #149# backspace #150# backspace #151#
       backspace #152#])
 (#1#
  ((t track-changes--recover-from-error nil nil)
   (t track-changes--after (3 3 1) nil)
   (t delete-backward-char (1 nil) nil)
   (t funcall-interactively (delete-backward-char 1 nil) nil)
   (t command-execute (delete-backward-char) nil))
  [#2# #3# #4# #5# 134217848 #6# 102 #7# 105 #8# 110 #9# 100 #10# 45
       #11# 102 #12# 105 #13# tab #14# return #15# 108 #16# 105 #17#
       110 #18# tab #19# return #20# 134217848 #21# 101 #22# 103 #23#
       108 #24# tab #25# 45 #26# 101 #27# tab #28# backspace #29#
       backspace #30# backspace #31# backspace #32# backspace #33#
       backspace #34# backspace #35# backspace #36# backspace #37#
       backspace #38# backspace #39# backspace #40# backspace #41#
       backspace #42# return #43# 7 #44# 134217848 #45# 114 #46# 117
       #47# 115 #48# 116 #49# 45 #50# tab #51# return #52# 134217848
       #53# 101 #54# 103 #55# 108 #56# 111 #57# tab #58# return #59#
       106 #60# 106 #61# 106 #62# 106 #63# 106 #64# 106 #65# 106 #66#
       106 #67# 106 #68# 106 #69# 106 #70# 106 #71# 106 #72# 106 #73#
       106 #74# backspace #75# backspace #76# backspace #77# backspace
       #78# backspace #79# backspace #80# backspace #81# backspace
       #82# backspace #83# backspace #84# backspace #85# backspace
       #86# backspace #87# backspace #88# backspace #89# 134217848
       #90# 102 #91# 111 #92# 114 #93# 109 #94# 97 #95# 116 #96# 45
       #97# 98 #98# 117 #99# 102 #100# tab #101# 120 #102# backspace
       #103# tab #104# 5 #105# backspace #106# backspace #107#
       backspace #108# backspace #109# backspace #110# backspace #111#
       backspace #112# backspace #113# backspace #114# backspace #115#
       backspace #116# backspace #117# backspace #118# backspace #119#
       backspace #120# backspace #121# backspace #122# backspace #123#
       101 #124# 103 #125# 108 #126# 111 #127# 116 #128# 45 #129# 102
       #130# 111 #131# 114 #132# tab #133# tab #134# tab #135# 109
       #136# 97 #137# 116 #138# 45 #139# tab #140# return #141# 106
       #142# 106 #143# 106 #144# 106 #145# 106 #146# 106 #147#
       backspace #148# backspace #149# backspace #150# backspace #151#])
 (#1#
  ((t track-changes--recover-from-error nil nil)
   (t track-changes--after (4 4 1) nil)
   (t delete-backward-char (1 nil) nil)
   (t funcall-interactively (delete-backward-char 1 nil) nil)
   (t command-execute (delete-backward-char) nil))
  [#2# #3# #4# #5# 134217848 #6# 102 #7# 105 #8# 110 #9# 100 #10# 45
       #11# 102 #12# 105 #13# tab #14# return #15# 108 #16# 105 #17#
       110 #18# tab #19# return #20# 134217848 #21# 101 #22# 103 #23#
       108 #24# tab #25# 45 #26# 101 #27# tab #28# backspace #29#
       backspace #30# backspace #31# backspace #32# backspace #33#
       backspace #34# backspace #35# backspace #36# backspace #37#
       backspace #38# backspace #39# backspace #40# backspace #41#
       backspace #42# return #43# 7 #44# 134217848 #45# 114 #46# 117
       #47# 115 #48# 116 #49# 45 #50# tab #51# return #52# 134217848
       #53# 101 #54# 103 #55# 108 #56# 111 #57# tab #58# return #59#
       106 #60# 106 #61# 106 #62# 106 #63# 106 #64# 106 #65# 106 #66#
       106 #67# 106 #68# 106 #69# 106 #70# 106 #71# 106 #72# 106 #73#
       106 #74# backspace #75# backspace #76# backspace #77# backspace
       #78# backspace #79# backspace #80# backspace #81# backspace
       #82# backspace #83# backspace #84# backspace #85# backspace
       #86# backspace #87# backspace #88# backspace #89# 134217848
       #90# 102 #91# 111 #92# 114 #93# 109 #94# 97 #95# 116 #96# 45
       #97# 98 #98# 117 #99# 102 #100# tab #101# 120 #102# backspace
       #103# tab #104# 5 #105# backspace #106# backspace #107#
       backspace #108# backspace #109# backspace #110# backspace #111#
       backspace #112# backspace #113# backspace #114# backspace #115#
       backspace #116# backspace #117# backspace #118# backspace #119#
       backspace #120# backspace #121# backspace #122# backspace #123#
       101 #124# 103 #125# 108 #126# 111 #127# 116 #128# 45 #129# 102
       #130# 111 #131# 114 #132# tab #133# tab #134# tab #135# 109
       #136# 97 #137# 116 #138# 45 #139# tab #140# return #141# 106
       #142# 106 #143# 106 #144# 106 #145# 106 #146# 106 #147#
       backspace #148# backspace #149# backspace #150#])
 (#1#
  ((t track-changes--recover-from-error nil nil)
   (t track-changes--after (5 5 1) nil)
   (t delete-backward-char (1 nil) nil)
   (t funcall-interactively (delete-backward-char 1 nil) nil)
   (t command-execute (delete-backward-char) nil))
  [#2# #3# #4# #5# 134217848 #6# 102 #7# 105 #8# 110 #9# 100 #10# 45
       #11# 102 #12# 105 #13# tab #14# return #15# 108 #16# 105 #17#
       110 #18# tab #19# return #20# 134217848 #21# 101 #22# 103 #23#
       108 #24# tab #25# 45 #26# 101 #27# tab #28# backspace #29#
       backspace #30# backspace #31# backspace #32# backspace #33#
       backspace #34# backspace #35# backspace #36# backspace #37#
       backspace #38# backspace #39# backspace #40# backspace #41#
       backspace #42# return #43# 7 #44# 134217848 #45# 114 #46# 117
       #47# 115 #48# 116 #49# 45 #50# tab #51# return #52# 134217848
       #53# 101 #54# 103 #55# 108 #56# 111 #57# tab #58# return #59#
       106 #60# 106 #61# 106 #62# 106 #63# 106 #64# 106 #65# 106 #66#
       106 #67# 106 #68# 106 #69# 106 #70# 106 #71# 106 #72# 106 #73#
       106 #74# backspace #75# backspace #76# backspace #77# backspace
       #78# backspace #79# backspace #80# backspace #81# backspace
       #82# backspace #83# backspace #84# backspace #85# backspace
       #86# backspace #87# backspace #88# backspace #89# 134217848
       #90# 102 #91# 111 #92# 114 #93# 109 #94# 97 #95# 116 #96# 45
       #97# 98 #98# 117 #99# 102 #100# tab #101# 120 #102# backspace
       #103# tab #104# 5 #105# backspace #106# backspace #107#
       backspace #108# backspace #109# backspace #110# backspace #111#
       backspace #112# backspace #113# backspace #114# backspace #115#
       backspace #116# backspace #117# backspace #118# backspace #119#
       backspace #120# backspace #121# backspace #122# backspace #123#
       101 #124# 103 #125# 108 #126# 111 #127# 116 #128# 45 #129# 102
       #130# 111 #131# 114 #132# tab #133# tab #134# tab #135# 109
       #136# 97 #137# 116 #138# 45 #139# tab #140# return #141# 106
       #142# 106 #143# 106 #144# 106 #145# 106 #146# 106 #147#
       backspace #148# backspace #149#])
 (#1#
  ((t track-changes--recover-from-error nil nil)
   (t track-changes--after (6 6 1) nil)
   (t delete-backward-char (1 nil) nil)
   (t funcall-interactively (delete-backward-char 1 nil) nil)
   (t command-execute (delete-backward-char) nil))
  [#2# #3# #4# #5# 134217848 #6# 102 #7# 105 #8# 110 #9# 100 #10# 45
       #11# 102 #12# 105 #13# tab #14# return #15# 108 #16# 105 #17#
       110 #18# tab #19# return #20# 134217848 #21# 101 #22# 103 #23#
       108 #24# tab #25# 45 #26# 101 #27# tab #28# backspace #29#
       backspace #30# backspace #31# backspace #32# backspace #33#
       backspace #34# backspace #35# backspace #36# backspace #37#
       backspace #38# backspace #39# backspace #40# backspace #41#
       backspace #42# return #43# 7 #44# 134217848 #45# 114 #46# 117
       #47# 115 #48# 116 #49# 45 #50# tab #51# return #52# 134217848
       #53# 101 #54# 103 #55# 108 #56# 111 #57# tab #58# return #59#
       106 #60# 106 #61# 106 #62# 106 #63# 106 #64# 106 #65# 106 #66#
       106 #67# 106 #68# 106 #69# 106 #70# 106 #71# 106 #72# 106 #73#
       106 #74# backspace #75# backspace #76# backspace #77# backspace
       #78# backspace #79# backspace #80# backspace #81# backspace
       #82# backspace #83# backspace #84# backspace #85# backspace
       #86# backspace #87# backspace #88# backspace #89# 134217848
       #90# 102 #91# 111 #92# 114 #93# 109 #94# 97 #95# 116 #96# 45
       #97# 98 #98# 117 #99# 102 #100# tab #101# 120 #102# backspace
       #103# tab #104# 5 #105# backspace #106# backspace #107#
       backspace #108# backspace #109# backspace #110# backspace #111#
       backspace #112# backspace #113# backspace #114# backspace #115#
       backspace #116# backspace #117# backspace #118# backspace #119#
       backspace #120# backspace #121# backspace #122# backspace #123#
       101 #124# 103 #125# 108 #126# 111 #127# 116 #128# 45 #129# 102
       #130# 111 #131# 114 #132# tab #133# tab #134# tab #135# 109
       #136# 97 #137# 116 #138# 45 #139# tab #140# return #141# 106
       #142# 106 #143# 106 #144# 106 #145# 106 #146# 106 #147#
       backspace #148#])
 (#1#
  ((t track-changes--recover-from-error nil nil)
   (t track-changes-fetch
      (#153=
       #s(track-changes--tracker :signal eglot--track-changes-signal
				 :state
				 #s(track-changes--state :beg 3969
							 :end 1
							 :before nil
							 :next nil)
				 :nobefore nil :immediate nil)
       #f(compiled-function (beg end before) #<bytecode
			    0x10e235d56586>))
      nil)
   (t eglot--track-changes-fetch (#153#) nil)
   (t eglot--signal-textDocument/didChange nil nil)
   (t run-hooks (eglot--document-changed-hook) nil)
   (t #154=#f(compiled-function () #<bytecode -0x2804b3cee14c5fc>) nil
      nil)
   (t apply (#154# nil) nil)
   (t timer-event-handler ([t 0 0 500000 nil #154# nil idle 0 nil])
      nil))
  [#2# #3# #4# #5# 134217848 #6# 102 #7# 105 #8# 110 #9# 100 #10# 45
       #11# 102 #12# 105 #13# tab #14# return #15# 108 #16# 105 #17#
       110 #18# tab #19# return #20# 134217848 #21# 101 #22# 103 #23#
       108 #24# tab #25# 45 #26# 101 #27# tab #28# backspace #29#
       backspace #30# backspace #31# backspace #32# backspace #33#
       backspace #34# backspace #35# backspace #36# backspace #37#
       backspace #38# backspace #39# backspace #40# backspace #41#
       backspace #42# return #43# 7 #44# 134217848 #45# 114 #46# 117
       #47# 115 #48# 116 #49# 45 #50# tab #51# return #52# 134217848
       #53# 101 #54# 103 #55# 108 #56# 111 #57# tab #58# return #59#
       106 #60# 106 #61# 106 #62# 106 #63# 106 #64# 106 #65# 106 #66#
       106 #67# 106 #68# 106 #69# 106 #70# 106 #71# 106 #72# 106 #73#
       106 #74# backspace #75# backspace #76# backspace #77# backspace
       #78# backspace #79# backspace #80# backspace #81# backspace
       #82# backspace #83# backspace #84# backspace #85# backspace
       #86# backspace #87# backspace #88# backspace #89# 134217848
       #90# 102 #91# 111 #92# 114 #93# 109 #94# 97 #95# 116 #96# 45
       #97# 98 #98# 117 #99# 102 #100# tab #101# 120 #102# backspace
       #103# tab #104# 5 #105# backspace #106# backspace #107#
       backspace #108# backspace #109# backspace #110# backspace #111#
       backspace #112# backspace #113# backspace #114# backspace #115#
       backspace #116# backspace #117# backspace #118# backspace #119#
       backspace #120# backspace #121# backspace #122# backspace #123#
       101 #124# 103 #125# 108 #126# 111 #127# 116 #128# 45 #129# 102
       #130# 111 #131# 114 #132# tab #133# tab #134# tab #135# 109
       #136# 97 #137# 116 #138# 45 #139# tab #140# return #141# 106
       #142# 106 #143# 106 #144# 106 #145# 106 #146# 106 #147#])
 (#1#
  ((t track-changes--recover-from-error nil nil)
   (t track-changes-fetch
      (#153#
       #f(compiled-function (beg end before) #<bytecode
			    0x10e235d56586>))
      nil)
   (t eglot--track-changes-fetch (#153#) nil)
   (t eglot--track-changes-signal (#153# 3815) nil)
   (t track-changes--before (2 3) nil)
   (t track-changes--after (2 3 0) nil)
   (t self-insert-command (1 106) nil)
   (t funcall-interactively (self-insert-command 1 106) nil)
   (t command-execute (self-insert-command) nil))
  [#2# #3# #4# #5# 134217848 #6# 102 #7# 105 #8# 110 #9# 100 #10# 45
       #11# 102 #12# 105 #13# tab #14# return #15# 108 #16# 105 #17#
       110 #18# tab #19# return #20# 134217848 #21# 101 #22# 103 #23#
       108 #24# tab #25# 45 #26# 101 #27# tab #28# backspace #29#
       backspace #30# backspace #31# backspace #32# backspace #33#
       backspace #34# backspace #35# backspace #36# backspace #37#
       backspace #38# backspace #39# backspace #40# backspace #41#
       backspace #42# return #43# 7 #44# 134217848 #45# 114 #46# 117
       #47# 115 #48# 116 #49# 45 #50# tab #51# return #52# 134217848
       #53# 101 #54# 103 #55# 108 #56# 111 #57# tab #58# return #59#
       106 #60# 106 #61# 106 #62# 106 #63# 106 #64# 106 #65# 106 #66#
       106 #67# 106 #68# 106 #69# 106 #70# 106 #71# 106 #72# 106 #73#
       106 #74# backspace #75# backspace #76# backspace #77# backspace
       #78# backspace #79# backspace #80# backspace #81# backspace
       #82# backspace #83# backspace #84# backspace #85# backspace
       #86# backspace #87# backspace #88# backspace #89# 134217848
       #90# 102 #91# 111 #92# 114 #93# 109 #94# 97 #95# 116 #96# 45
       #97# 98 #98# 117 #99# 102 #100# tab #101# 120 #102# backspace
       #103# tab #104# 5 #105# backspace #106# backspace #107#
       backspace #108# backspace #109# backspace #110# backspace #111#
       backspace #112# backspace #113# backspace #114# backspace #115#
       backspace #116# backspace #117# backspace #118# backspace #119#
       backspace #120# backspace #121# backspace #122# backspace #123#
       101 #124# 103 #125# 108 #126# 111 #127# 116 #128# 45 #129# 102
       #130# 111 #131# 114 #132# tab #133# tab #134# tab #135# 109
       #136# 97 #137# 116 #138# 45 #139# tab #140# return #141# 106
       #142# 106 #143#])
 (#1#
  ((t track-changes--recover-from-error nil nil)
   (t track-changes--after (1 2 0) nil)
   (t self-insert-command (1 106) nil)
   (t funcall-interactively (self-insert-command 1 106) nil)
   (t command-execute (self-insert-command) nil))
  [#2# #3# #4# #5# 134217848 #6# 102 #7# 105 #8# 110 #9# 100 #10# 45
       #11# 102 #12# 105 #13# tab #14# return #15# 108 #16# 105 #17#
       110 #18# tab #19# return #20# 134217848 #21# 101 #22# 103 #23#
       108 #24# tab #25# 45 #26# 101 #27# tab #28# backspace #29#
       backspace #30# backspace #31# backspace #32# backspace #33#
       backspace #34# backspace #35# backspace #36# backspace #37#
       backspace #38# backspace #39# backspace #40# backspace #41#
       backspace #42# return #43# 7 #44# 134217848 #45# 114 #46# 117
       #47# 115 #48# 116 #49# 45 #50# tab #51# return #52# 134217848
       #53# 101 #54# 103 #55# 108 #56# 111 #57# tab #58# return #59#
       106 #60# 106 #61# 106 #62# 106 #63# 106 #64# 106 #65# 106 #66#
       106 #67# 106 #68# 106 #69# 106 #70# 106 #71# 106 #72# 106 #73#
       106 #74# backspace #75# backspace #76# backspace #77# backspace
       #78# backspace #79# backspace #80# backspace #81# backspace
       #82# backspace #83# backspace #84# backspace #85# backspace
       #86# backspace #87# backspace #88# backspace #89# 134217848
       #90# 102 #91# 111 #92# 114 #93# 109 #94# 97 #95# 116 #96# 45
       #97# 98 #98# 117 #99# 102 #100# tab #101# 120 #102# backspace
       #103# tab #104# 5 #105# backspace #106# backspace #107#
       backspace #108# backspace #109# backspace #110# backspace #111#
       backspace #112# backspace #113# backspace #114# backspace #115#
       backspace #116# backspace #117# backspace #118# backspace #119#
       backspace #120# backspace #121# backspace #122# backspace #123#
       101 #124# 103 #125# 108 #126# 111 #127# 116 #128# 45 #129# 102
       #130# 111 #131# 114 #132# tab #133# tab #134# tab #135# 109
       #136# 97 #137# 116 #138# 45 #139# tab #140# return #141# 106
       #142#]))

\f

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, cairo version
 1.18.0) of 2024-04-14 built on Laptop
Repository revision: 3d3602055264ca3095b7f28ca7e27a6f2782649a
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101013
System Description: Arch Linux

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
 --with-modules --without-m17n-flt --without-selinux --without-pop
 --without-gconf --enable-link-time-optimization
 --with-native-compilation=yes --with-xinput2 --with-x-toolkit=no
 --without-toolkit-scroll-bars --without-xft --without-xaw3d
 --with-cairo-xcb --with-sound=no --with-tree-sitter --without-gpm
 --without-compress-install
 '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
 'CFLAGS=-march=native -mtune=native -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection -flto=auto' 'LDFLAGS=-Wl,-O1
 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now
 -Wl,-z,pack-relative-relocs -Wl,-z,noexecstack -flto=auto''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
OLDXMENU PDUMPER PNG RSVG SECCOMP SQLITE3 THREADS TIFF TREE_SITTER WEBP
X11 XDBE XIM XINPUT2 XPM ZLIB

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

Major mode: Rust

Minor modes in effect:
  eglot-inlay-hints-mode: t
  eglot--managed-mode: t
  flymake-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap 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 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils rust-ts-mode rx c-ts-common treesit shell
pcomplete cl-extra eglot external-completion jsonrpc xref flymake
thingatpt project diff ert pp ewoc debug backtrace help-mode find-func
filenotify warnings compile text-property-search comint ansi-osc
ansi-color ring pcase url-util url-parse auth-source cl-seq eieio
eieio-core cl-macs icons password-cache json map byte-opt gv bytecomp
byte-compile url-vars imenu vc-git diff-mode track-changes easy-mmode
vc-dispatcher time-date subr-x cl-loaddefs cl-lib rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo xinput2 x multi-tty move-toolbar make-network-process
native-compile emacs)

Memory information:
((conses 16 129374 9610) (symbols 48 11382 0) (strings 32 32936 3210)
 (string-bytes 1 1071331) (vectors 16 20476)
 (vector-slots 8 251373 8274) (floats 8 74 289) (intervals 56 767 0)
 (buffers 992 18))





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

* bug#70396: Acknowledgement (30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors)
       [not found] ` <handler.70396.B.17131881964616.ack@debbugs.gnu.org>
@ 2024-04-15 13:54   ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 8+ messages in thread
From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-15 13:54 UTC (permalink / raw)
  To: 70396


One additional detail I forgot to mention: repeatedly calling
`eglot-format-buffer` starts to corrupt the text the end of the buffer
(but rust-analyzer may be to blame for that one).





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

* bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors
  2024-04-15 13:35 bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found] ` <handler.70396.B.17131881964616.ack@debbugs.gnu.org>
@ 2024-04-15 13:57 ` Eli Zaretskii
  2024-04-15 14:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2 siblings, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2024-04-15 13:57 UTC (permalink / raw)
  To: Steven Allen, Stefan Monnier; +Cc: 70396

> Date: Mon, 15 Apr 2024 08:35:23 -0500
> From:  Steven Allen via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> 
> When formatting a specific rust file with with `eglot-format-buffer`
> (rust-analyzer LSP), I'm getting:
> 
> * Track changes errors (below).
> * An `args-out-of-range` error in `replace-buffer-contents`.
> 
> To reproduce:
> 
> 1. Checkout `https://github.com/Stebalien/xattr/`. I can try for a
>    minimal reproducer if necessary.
> 2. Install rust-analyzer.
> 2. Run `emacs -Q`
> 3. `M-x find-file "src/sys/linux_macos.rs"`
>    (https://github.com/Stebalien/xattr/blob/master/src/sys/linux_macos.rs).
> 4. `M-x rust-ts-mode`
> 5. `M-x eglot`
> 6. `M-x eglot-format-buffer`

Adding Stefan, as I think this might be related to the recent
track-changes changes.





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

* bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors
  2024-04-15 13:35 bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
       [not found] ` <handler.70396.B.17131881964616.ack@debbugs.gnu.org>
  2024-04-15 13:57 ` bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors Eli Zaretskii
@ 2024-04-15 14:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-04-15 14:16   ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-04-15 20:01   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2 siblings, 2 replies; 8+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-15 14:07 UTC (permalink / raw)
  To: Steven Allen; +Cc: 70396

> When formatting a specific rust file with with `eglot-format-buffer`
> (rust-analyzer LSP), I'm getting:
>
> * Track changes errors (below).
> * An `args-out-of-range` error in `replace-buffer-contents`.
>
> To reproduce:
>
> 1. Checkout `https://github.com/Stebalien/xattr/`. I can try for a
>    minimal reproducer if necessary.
> 2. Install rust-analyzer.
> 2. Run `emacs -Q`
> 3. `M-x find-file "src/sys/linux_macos.rs"`
>    (https://github.com/Stebalien/xattr/blob/master/src/sys/linux_macos.rs).
> 4. `M-x rust-ts-mode`
> 5. `M-x eglot`
> 6. `M-x eglot-format-buffer`

Thanks for the nice bug report.
Will look into it ASAP,


        Stefan






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

* bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors
  2024-04-15 14:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-04-15 14:16   ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-04-15 20:01   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 0 replies; 8+ messages in thread
From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-15 14:16 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 70396


Thanks!





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

* bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors
  2024-04-15 14:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-04-15 14:16   ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-04-15 20:01   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-04-15 20:30     ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 8+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-15 20:01 UTC (permalink / raw)
  To: Steven Allen; +Cc: 70396

>> * Track changes errors (below).
>> * An `args-out-of-range` error in `replace-buffer-contents`.
>>
>> To reproduce:
>>
>> 1. Checkout `https://github.com/Stebalien/xattr/`. I can try for a
>>    minimal reproducer if necessary.
>> 2. Install rust-analyzer.
>> 2. Run `emacs -Q`
>> 3. `M-x find-file "src/sys/linux_macos.rs"`
>>    (https://github.com/Stebalien/xattr/blob/master/src/sys/linux_macos.rs).
>> 4. `M-x rust-ts-mode`
>> 5. `M-x eglot`
>> 6. `M-x eglot-format-buffer`

I could reproduce this in a C mode buffer (and hence save me the
trouble of installing more tools).
I pushed the patch below to `master` which should fix the problem.
Can you confirm it's fixed in your side as well?


        Stefan


diff --git a/lisp/emacs-lisp/track-changes.el b/lisp/emacs-lisp/track-changes.el
index 1bab7ca38fd..df4aad0d596 100644
--- a/lisp/emacs-lisp/track-changes.el
+++ b/lisp/emacs-lisp/track-changes.el
@@ -481,12 +481,12 @@
                 (funcall signal-if-disjoint end track-changes--before-beg)
               (funcall signal-if-disjoint track-changes--before-end beg)))
           (funcall reset))
-      (cl-assert (save-restriction
+      (save-restriction
                    (widen)
-                   (<= (point-min)
+        (cl-assert (<= (point-min)
                        track-changes--before-beg
                        track-changes--before-end
-                       (point-max))))
+                       (point-max)))
       (when (< beg track-changes--before-beg)
         (if (and track-changes--disjoint-trackers
                  (funcall signal-if-disjoint end track-changes--before-beg))
@@ -517,6 +517,6 @@
             (setf track-changes--before-end new-bend)
             (cl-callf concat track-changes--before-string
-              (buffer-substring-no-properties old-bend new-bend))))))))
+                (buffer-substring-no-properties old-bend new-bend)))))))))
 
 (defun track-changes--after (beg end len)
   (cl-assert track-changes--state)






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

* bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors
  2024-04-15 20:01   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-04-15 20:30     ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-04-15 21:49       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 8+ messages in thread
From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-15 20:30 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 70396


> I could reproduce this in a C mode buffer (and hence save me the
> trouble of installing more tools).
> I pushed the patch below to `master` which should fix the problem.
> Can you confirm it's fixed in your side as well?

Master works for me. Thanks for the quick fix!

- Steven





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

* bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors
  2024-04-15 20:30     ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-04-15 21:49       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 8+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-15 21:49 UTC (permalink / raw)
  To: Steven Allen; +Cc: 70396-done

>> I could reproduce this in a C mode buffer (and hence save me the
>> trouble of installing more tools).
>> I pushed the patch below to `master` which should fix the problem.
>> Can you confirm it's fixed in your side as well?
> Master works for me.

Thanks, closing.

> Thanks for the quick fix!

My pleasure,


        Stefan






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

end of thread, other threads:[~2024-04-15 21:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-15 13:35 bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
     [not found] ` <handler.70396.B.17131881964616.ack@debbugs.gnu.org>
2024-04-15 13:54   ` bug#70396: Acknowledgement (30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors) Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 13:57 ` bug#70396: 30.0.50; Eglot, rust-analyzer buffer formatting, and track changes errors Eli Zaretskii
2024-04-15 14:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 14:16   ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 20:01   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 20:30     ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-15 21:49       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors

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

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

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