aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Távora2023-02-22 18:44:39 +0000
committerJoão Távora2023-02-22 18:52:00 +0000
commit28ed0d1840f94ba52b8b60bfbf222493fee2a3ea (patch)
tree76f7a87d2ee690e410025592780d9fdf0c589b76
parent7ad5d9babed68ddb8cc4bdf7571fdf10e44e1bae (diff)
downloademacs-28ed0d1840f94ba52b8b60bfbf222493fee2a3ea.tar.gz
emacs-28ed0d1840f94ba52b8b60bfbf222493fee2a3ea.zip
Eglot: run eglot-managed-mode-hook after LSP didOpen
This allows using the hook for interacting with the LSP server using the current buffer as the subject of that interaction ("document" in LSP parlance). * lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode): Run eglot-managed-mode-hook here. (eglot--managed-mode): Not here.
-rw-r--r--lisp/progmodes/eglot.el9
1 files changed, 5 insertions, 4 deletions
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 3daca24a586..8b0caf41ad7 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -1814,9 +1814,7 @@ Use `eglot-managed-p' to determine if current buffer is managed.")
1814 (delq (current-buffer) (eglot--managed-buffers server))) 1814 (delq (current-buffer) (eglot--managed-buffers server)))
1815 (when (and eglot-autoshutdown 1815 (when (and eglot-autoshutdown
1816 (null (eglot--managed-buffers server))) 1816 (null (eglot--managed-buffers server)))
1817 (eglot-shutdown server)))))) 1817 (eglot-shutdown server)))))))
1818 ;; Note: the public hook runs before the internal eglot--managed-mode-hook.
1819 (run-hooks 'eglot-managed-mode-hook))
1820 1818
1821(defun eglot--managed-mode-off () 1819(defun eglot--managed-mode-off ()
1822 "Turn off `eglot--managed-mode' unconditionally." 1820 "Turn off `eglot--managed-mode' unconditionally."
@@ -1858,7 +1856,10 @@ If it is activated, also signal textDocument/didOpen."
1858 (when (and buffer-file-name (eglot-current-server)) 1856 (when (and buffer-file-name (eglot-current-server))
1859 (setq eglot--diagnostics nil) 1857 (setq eglot--diagnostics nil)
1860 (eglot--managed-mode) 1858 (eglot--managed-mode)
1861 (eglot--signal-textDocument/didOpen)))) 1859 (eglot--signal-textDocument/didOpen)
1860 ;; Run user hook after 'textDocument/didOpen' so server knows
1861 ;; about the buffer.
1862 (run-hooks 'eglot-managed-mode-hook))))
1862 1863
1863(add-hook 'find-file-hook 'eglot--maybe-activate-editing-mode) 1864(add-hook 'find-file-hook 'eglot--maybe-activate-editing-mode)
1864(add-hook 'after-change-major-mode-hook 'eglot--maybe-activate-editing-mode) 1865(add-hook 'after-change-major-mode-hook 'eglot--maybe-activate-editing-mode)