emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/eglot 64da240 19/22: Fix #196: run connection hooks wit


From: João Távora
Subject: [elpa] externals/eglot 64da240 19/22: Fix #196: run connection hooks with proper dir-locals
Date: Sat, 5 Jan 2019 09:31:05 -0500 (EST)

branch: externals/eglot
commit 64da240c45228a126dc22a10c8d4123b5bc4f6c4
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>

    Fix #196: run connection hooks with proper dir-locals
    
    eglot-connect-hook and eglot-server-initialized-hook must run in a
    buffer with properly setup directory-local variables for the project.
    
    This is crucial for things like eglot-signal-didChangeConfiguration,
    which needs a properly setup value of eglot-workspace-configuration to
    succeed.
    
    I could have chosen any of the buffers where Eglot is activating
    itself, but the approach using
    hack-dir-local-variables-non-file-buffer seems more correct, despite
    the name.
    
    * eglot.el (eglot--connect): Run connection hooks with proper
    dir-locals.
---
 eglot.el | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/eglot.el b/eglot.el
index 4416e52..39f4842 100644
--- a/eglot.el
+++ b/eglot.el
@@ -840,8 +840,11 @@ This docstring appeases checkdoc, that's all."
                                    (lambda ()
                                      (setf (eglot--inhibit-autoreconnect 
server)
                                            (null eglot-autoreconnect)))))))
-                          (run-hook-with-args 'eglot-connect-hook server)
-                          (run-hook-with-args 'eglot-server-initialized-hook 
server)
+                          (let ((default-directory (car (project-roots 
project)))
+                                (major-mode managed-major-mode))
+                            (hack-dir-local-variables-non-file-buffer)
+                            (run-hook-with-args 'eglot-connect-hook server)
+                            (run-hook-with-args 'eglot-server-initialized-hook 
server))
                           (eglot--message
                            "Connected! Server `%s' now managing `%s' buffers \
 in project `%s'."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]