diff options
| author | João Távora | 2023-02-22 18:44:39 +0000 |
|---|---|---|
| committer | João Távora | 2023-02-22 18:52:00 +0000 |
| commit | 28ed0d1840f94ba52b8b60bfbf222493fee2a3ea (patch) | |
| tree | 76f7a87d2ee690e410025592780d9fdf0c589b76 | |
| parent | 7ad5d9babed68ddb8cc4bdf7571fdf10e44e1bae (diff) | |
| download | emacs-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.el | 9 |
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) |