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

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

[nongnu] elpa/cider c61689c7b2 2/5: perf: only call cider-mode if not al


From: ELPA Syncer
Subject: [nongnu] elpa/cider c61689c7b2 2/5: perf: only call cider-mode if not already enabled
Date: Sat, 17 Jun 2023 04:01:33 -0400 (EDT)

branch: elpa/cider
commit c61689c7b25d3f1113d156d568dda1dfd074964f
Author: yuhan0 <qythium@gmail.com>
Commit: Bozhidar Batsov <bozhidar@batsov.dev>

    perf: only call cider-mode if not already enabled
    
    Re-initializing cider-mode across many background buffers can cause
    significant performance issues.
---
 cider-connection.el | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/cider-connection.el b/cider-connection.el
index 6421e45362..8e146bcefa 100644
--- a/cider-connection.el
+++ b/cider-connection.el
@@ -296,6 +296,7 @@ message in the REPL area."
   (cider-nrepl-send-request '("op" "out-subscribe")
                             (cider-interactive-eval-handler (current-buffer))))
 
+(defvar cider-mode)
 (declare-function cider-mode "cider-mode")
 (defun cider-enable-on-existing-clojure-buffers ()
   "Enable CIDER's minor mode on existing Clojure buffers.
@@ -304,18 +305,19 @@ See command `cider-mode'."
   (add-hook 'clojure-mode-hook #'cider-mode)
   (dolist (buffer (cider-util--clojure-buffers))
     (with-current-buffer buffer
-      (cider-mode +1)
-      ;; In global-eldoc-mode, a new file-visiting buffer calls
-      ;; `turn-on-eldoc-mode' which enables eldoc-mode if it's supported in 
that
-      ;; buffer as determined by `eldoc--supported-p'.  Cider's eldoc support
-      ;; allows new buffers in cider-mode to enable eldoc-mode.  As of 2021-04,
-      ;; however, clojure-mode itself has no eldoc support, so old clojure
-      ;; buffers opened before cider started aren't necessarily in eldoc-mode.
-      ;; Here, we've enabled cider-mode for this old clojure buffer, and now, 
if
-      ;; global-eldoc-mode is enabled, try to enable eldoc-mode as if the 
buffer
-      ;; had just been created with cider-mode.
-      (when global-eldoc-mode
-        (turn-on-eldoc-mode)))))
+      (unless cider-mode
+        (cider-mode +1)
+        ;; In global-eldoc-mode, a new file-visiting buffer calls
+        ;; `turn-on-eldoc-mode' which enables eldoc-mode if it's supported in 
that
+        ;; buffer as determined by `eldoc--supported-p'.  Cider's eldoc support
+        ;; allows new buffers in cider-mode to enable eldoc-mode.  As of 
2021-04,
+        ;; however, clojure-mode itself has no eldoc support, so old clojure
+        ;; buffers opened before cider started aren't necessarily in 
eldoc-mode.
+        ;; Here, we've enabled cider-mode for this old clojure buffer, and 
now, if
+        ;; global-eldoc-mode is enabled, try to enable eldoc-mode as if the 
buffer
+        ;; had just been created with cider-mode.
+        (when global-eldoc-mode
+          (turn-on-eldoc-mode))))))
 
 (declare-function cider--debug-mode "cider-debug")
 (defun cider-disable-on-existing-clojure-buffers ()



reply via email to

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