@@ -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.
279289If in a REPL buffer already, use that unless a prefix is used (or
280290ALWAYS-ASK). Otherwise get a list of all active inf-clojure
281291REPLS and offer a choice. It's recommended to rename REPL
282292buffers 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