Skip to content

Commit fb9b5ea

Browse files
jjttjjbbatsov
authored andcommitted
Extract function to prompt for repl buffer
1 parent 3cfc4f0 commit fb9b5ea

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

inf-clojure.el

+17-11
Original file line numberDiff line numberDiff line change
@@ -274,24 +274,30 @@ Checks the mode and that there is a live process."
274274
(push (buffer-name b) repl-buffers)))
275275
repl-buffers))
276276

277+
(defun inf-clojure--prompt-repl-buffer (prompt)
278+
"Prompt the user to select an inf-clojure repl buffer.
279+
PROMPT is a string to prompt the user.
280+
Returns nil when no buffer is selected."
281+
(let ((repl-buffers (inf-clojure-repls)))
282+
(if (> (length repl-buffers) 0)
283+
(when-let ((repl-buffer (completing-read prompt repl-buffers nil t)))
284+
(get-buffer repl-buffer))
285+
(user-error "No buffers have an inf-clojure process"))))
286+
277287
(defun inf-clojure-set-repl (always-ask)
278288
"Set an inf-clojure buffer as the active (default) REPL.
279289
If in a REPL buffer already, use that unless a prefix is used (or
280290
ALWAYS-ASK). Otherwise get a list of all active inf-clojure
281291
REPLS and offer a choice. It's recommended to rename REPL
282292
buffers after they are created with `rename-buffer'."
283293
(interactive "P")
284-
(if (and (not always-ask)
285-
(inf-clojure-repl-p))
286-
(progn
287-
(setq inf-clojure-buffer (current-buffer))
288-
(message "Current inf-clojure REPL set to %s" inf-clojure-buffer))
289-
(let ((repl-buffers (inf-clojure-repls)))
290-
(if (> (length repl-buffers) 0)
291-
(when-let ((repl-buffer (completing-read "Select default REPL: " repl-buffers nil t)))
292-
(setq inf-clojure-buffer (get-buffer repl-buffer))
293-
(message "Current inf-clojure REPL set to %s" inf-clojure-buffer))
294-
(user-error "No buffers have an inf-clojure process")))))
294+
(when-let ((new-repl-buffer
295+
(if (or always-ask
296+
(not (inf-clojure-repl-p)))
297+
(inf-clojure--prompt-repl-buffer "Select default REPL: ")
298+
(current-buffer))))
299+
(setq inf-clojure-buffer new-repl-buffer)
300+
(message "Current inf-clojure REPL set to %s" new-repl-buffer)))
295301

296302
(defvar inf-clojure--repl-type-lock nil
297303
"Global lock for protecting against proc filter race conditions.

0 commit comments

Comments
 (0)