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

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

[nongnu] elpa/inf-clojure f24722c 294/313: Extract useful functions


From: ELPA Syncer
Subject: [nongnu] elpa/inf-clojure f24722c 294/313: Extract useful functions
Date: Wed, 11 Aug 2021 10:00:36 -0400 (EDT)

branch: elpa/inf-clojure
commit f24722c60477ff1177df1b8f5038984b2f2eb5f9
Author: dan sutton <dan@dpsutton.com>
Commit: Bozhidar Batsov <bozhidar.batsov@gmail.com>

    Extract useful functions
---
 inf-clojure.el | 39 ++++++++++++++++++++++++---------------
 1 file changed, 24 insertions(+), 15 deletions(-)

diff --git a/inf-clojure.el b/inf-clojure.el
index 25457b5..1ec3db8 100644
--- a/inf-clojure.el
+++ b/inf-clojure.el
@@ -199,6 +199,22 @@ has been found.  See also variable `inf-clojure-buffer'."
       (unless no-error
         (error "No Clojure subprocess; see variable `inf-clojure-buffer'"))))
 
+(defun inf-clojure-repl-p ()
+  "Indicates if current buffer is an inf-clojure repl.
+Checks the mode and that there is a live process."
+  (and (derived-mode-p 'inf-clojure-mode)
+       (get-buffer-process (current-buffer))
+       (process-live-p (get-buffer-process (current-buffer)))))
+
+(defun inf-clojure-repls-list ()
+  "Return a list of all known inf-clojure repls."
+  (let (repl-buffers)
+    (dolist (b (buffer-list))
+      (with-current-buffer b
+        (when (inf-clojure-repl-p)
+          (push (buffer-name b) repl-buffers))))
+    repl-buffers))
+
 (defun inf-clojure-set-repl (always-ask)
   "Set an inf clojure buffer as the active repl.
 If in a repl already, use that unless a prefix is used (or
@@ -206,21 +222,14 @@ ALWAYS-ASK).  Otherwise get a list of all active 
inf-clojure
 repls and offer a choice.  Recommended to rename buffers as they
 are created with `rename-buffer`."
   (interactive "P")
-  (cl-flet ((inf-clojure-repl-p () (and (derived-mode-p 'inf-clojure-mode)
-                                        (get-buffer-process (current-buffer))
-                                        (process-live-p (get-buffer-process 
(current-buffer))))))
-    (if (and (not always-ask)
-             (inf-clojure-repl-p))
-        (setq inf-clojure-buffer (current-buffer))
-      (let (repl-buffers)
-        (dolist (b (buffer-list))
-          (with-current-buffer b
-            (when (inf-clojure-repl-p)
-              (push (buffer-name b) repl-buffers))))
-        (if (> (length repl-buffers) 0)
-            (when-let ((repl-buffer (completing-read "Use for repl: " 
repl-buffers nil t)))
-              (setq inf-clojure-buffer (get-buffer repl-buffer)))
-          (user-error "No buffers have an inf-clojure process"))))))
+  (if (and (not always-ask)
+           (inf-clojure-repl-p))
+      (setq inf-clojure-buffer (current-buffer))
+    (let ((repl-buffers (inf-clojure-repls-list)))
+     (if (> (length repl-buffers) 0)
+         (when-let ((repl-buffer (completing-read "Use for repl: " 
repl-buffers nil t)))
+           (setq inf-clojure-buffer (get-buffer repl-buffer)))
+       (user-error "No buffers have an inf-clojure process")))))
 
 (defvar-local inf-clojure-repl-type nil
   "Symbol to define your REPL type.



reply via email to

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