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

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

[elpa] externals/eglot 179a56d 13/54: Only set eglot--cached-current-ser


From: João Távora
Subject: [elpa] externals/eglot 179a56d 13/54: Only set eglot--cached-current-server by (more aggressive) caching
Date: Thu, 16 Apr 2020 05:31:46 -0400 (EDT)

branch: externals/eglot
commit 179a56d75f544ebedf581edc03149f12fd2ba7a1
Author: Ingo Lohmar <address@hidden>
Commit: Ingo Lohmar <address@hidden>

    Only set eglot--cached-current-server by (more aggressive) caching
    
    * eglot.el (eglot--current-server): Always set cache value.
    (eglot--maybe-activate-editing-mode): No need to set cached server.
---
 eglot.el | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/eglot.el b/eglot.el
index e304ebd..a0f57f4 100644
--- a/eglot.el
+++ b/eglot.el
@@ -1277,13 +1277,15 @@ For example, to keep your Company customization use
   "A cached reference to the current EGLOT server.")
 
 (defun eglot--current-server ()
-  "Find the current logical EGLOT server."
+  "Find and cache logical EGLOT server for current buffer."
   (or
    eglot--cached-current-server
-   (let* ((probe (or (project-current)
-                     `(transient . ,default-directory))))
-     (cl-find major-mode (gethash probe eglot--servers-by-project)
-              :key #'eglot--major-mode))))
+   (setq eglot--cached-current-server
+         (cl-find major-mode
+                  (gethash (or (project-current)
+                               `(transient . ,default-directory))
+                           eglot--servers-by-project)
+                  :key #'eglot--major-mode))))
 
 (defun eglot--current-server-or-lose ()
   "Return current logical EGLOT server connection or error."
@@ -1305,12 +1307,10 @@ If it is activated, also signal textDocument/didOpen."
   (unless eglot--managed-mode
     ;; Called when `revert-buffer-in-progress-p' is t but
     ;; `revert-buffer-preserve-modes' is nil.
-    (let ((server (and buffer-file-name (eglot--current-server))))
-      (when server
-        (setq eglot--unreported-diagnostics `(:just-opened . nil))
-        (setq eglot--cached-current-server server)
-        (eglot--managed-mode)
-        (eglot--signal-textDocument/didOpen)))))
+    (when (and buffer-file-name (eglot--current-server))
+      (setq eglot--unreported-diagnostics `(:just-opened . nil))
+      (eglot--managed-mode)
+      (eglot--signal-textDocument/didOpen))))
 
 (add-hook 'find-file-hook 'eglot--maybe-activate-editing-mode)
 (add-hook 'after-change-major-mode-hook 'eglot--maybe-activate-editing-mode)



reply via email to

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