From 1070e49bb103dae100ba62f9eb99c23f38e75c29 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 15 May 2024 14:50:18 -0400 Subject: [PATCH] (eglot--managed-mode): Avoid calling track-changes unregistered * lisp/progmodes/eglot.el (eglot--managed-mode): Unregister from track-changes after `eglot-shutdown` since that function may call `eglot--signal-textDocument/didChange`. (bug#70927) (cherry picked from commit c85294a6132e57bc0d24e39589b2c6163c11ca87) --- lisp/progmodes/eglot.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 1f2e31ed0fa..4da18845edc 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -2023,9 +2023,6 @@ Use `eglot-managed-p' to determine if current buffer is managed.") (eldoc-mode 1)) (cl-pushnew (current-buffer) (eglot--managed-buffers (eglot-current-server)))) (t - (when eglot--track-changes - (track-changes-unregister eglot--track-changes) - (setq eglot--track-changes nil)) (remove-hook 'kill-buffer-hook #'eglot--managed-mode-off t) (remove-hook 'kill-buffer-hook #'eglot--signal-textDocument/didClose t) (remove-hook 'before-revert-hook #'eglot--signal-textDocument/didClose t) @@ -2054,7 +2051,10 @@ Use `eglot-managed-p' to determine if current buffer is managed.") (delq (current-buffer) (eglot--managed-buffers server))) (when (and eglot-autoshutdown (null (eglot--managed-buffers server))) - (eglot-shutdown server))))))) + (eglot-shutdown server)))) + (when eglot--track-changes + (track-changes-unregister eglot--track-changes) + (setq eglot--track-changes nil))))) (defun eglot--managed-mode-off () "Turn off `eglot--managed-mode' unconditionally." -- 2.39.5