From 04b967f1e60adb79cd84d580268f7af00021eb71 Mon Sep 17 00:00:00 2001 From: Justin Tirrell Date: Fri, 24 Feb 2023 11:45:14 -0500 Subject: [PATCH 1/3] Display message after setting repl --- CHANGELOG.md | 1 + inf-clojure.el | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bf9e4c..a77b1e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## master (unreleased) * [#202](https://github.com/clojure-emacs/inf-clojure/issues/202): Add ClojureCLR support. * [#204](https://github.com/clojure-emacs/inf-clojure/issues/204): Scroll repl buffer on insert commands +* [#208](https://github.com/clojure-emacs/inf-clojure/pull/208) Display message after setting repl. ## 3.2.1 (2022-07-22) diff --git a/inf-clojure.el b/inf-clojure.el index b439722..0dbc7f6 100644 --- a/inf-clojure.el +++ b/inf-clojure.el @@ -281,14 +281,17 @@ ALWAYS-ASK). Otherwise get a list of all active inf-clojure REPLS and offer a choice. It's recommended to rename REPL buffers after they are created with `rename-buffer'." (interactive "P") - (if (and (not always-ask) - (inf-clojure-repl-p)) - (setq inf-clojure-buffer (current-buffer)) - (let ((repl-buffers (inf-clojure-repls))) - (if (> (length repl-buffers) 0) - (when-let ((repl-buffer (completing-read "Select default REPL: " repl-buffers nil t))) - (setq inf-clojure-buffer (get-buffer repl-buffer))) - (user-error "No buffers have an inf-clojure process"))))) + (let ((new-repl-buffer + (if (and (not always-ask) + (inf-clojure-repl-p)) + (setq inf-clojure-buffer (current-buffer)) + (let ((repl-buffers (inf-clojure-repls))) + (if (> (length repl-buffers) 0) + (when-let ((repl-buffer (completing-read "Select default REPL: " repl-buffers nil t))) + (setq inf-clojure-buffer (get-buffer repl-buffer))) + (user-error "No buffers have an inf-clojure process")))))) + (when new-repl-buffer + (message "Current inf-clojure REPL set to %s" new-repl-buffer)))) (defvar inf-clojure--repl-type-lock nil "Global lock for protecting against proc filter race conditions. From b7fde320b335fecfe37acdd860658ac5d49893f1 Mon Sep 17 00:00:00 2001 From: Justin Tirrell Date: Fri, 24 Feb 2023 18:37:49 -0500 Subject: [PATCH 2/3] Don't use outer let --- inf-clojure.el | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/inf-clojure.el b/inf-clojure.el index 0dbc7f6..01d6f1b 100644 --- a/inf-clojure.el +++ b/inf-clojure.el @@ -281,17 +281,17 @@ ALWAYS-ASK). Otherwise get a list of all active inf-clojure REPLS and offer a choice. It's recommended to rename REPL buffers after they are created with `rename-buffer'." (interactive "P") - (let ((new-repl-buffer - (if (and (not always-ask) - (inf-clojure-repl-p)) - (setq inf-clojure-buffer (current-buffer)) - (let ((repl-buffers (inf-clojure-repls))) - (if (> (length repl-buffers) 0) - (when-let ((repl-buffer (completing-read "Select default REPL: " repl-buffers nil t))) - (setq inf-clojure-buffer (get-buffer repl-buffer))) - (user-error "No buffers have an inf-clojure process")))))) - (when new-repl-buffer - (message "Current inf-clojure REPL set to %s" new-repl-buffer)))) + (if (and (not always-ask) + (inf-clojure-repl-p)) + (progn + (setq inf-clojure-buffer (current-buffer)) + (message "Current inf-clojure REPL set to %s" inf-clojure-buffer)) + (let ((repl-buffers (inf-clojure-repls))) + (if (> (length repl-buffers) 0) + (when-let ((repl-buffer (completing-read "Select default REPL: " repl-buffers nil t))) + (setq inf-clojure-buffer (get-buffer repl-buffer)) + (message "Current inf-clojure REPL set to %s" inf-clojure-buffer)) + (user-error "No buffers have an inf-clojure process"))))) (defvar inf-clojure--repl-type-lock nil "Global lock for protecting against proc filter race conditions. From 159dced400355e3222fb384f67f97bcbe0e522ee Mon Sep 17 00:00:00 2001 From: Justin Tirrell Date: Sat, 25 Feb 2023 12:39:49 -0500 Subject: [PATCH 3/3] Extract function to prompt for repl buffer --- inf-clojure.el | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/inf-clojure.el b/inf-clojure.el index 01d6f1b..3e86834 100644 --- a/inf-clojure.el +++ b/inf-clojure.el @@ -274,6 +274,16 @@ Checks the mode and that there is a live process." (push (buffer-name b) repl-buffers))) repl-buffers)) +(defun inf-clojure--prompt-repl-buffer (prompt) + "Prompt the user to select an inf-clojure repl buffer. +PROMPT is a string to prompt the user. +Returns nil when no buffer is selected." + (let ((repl-buffers (inf-clojure-repls))) + (if (> (length repl-buffers) 0) + (when-let ((repl-buffer (completing-read prompt repl-buffers nil t))) + (get-buffer repl-buffer)) + (user-error "No buffers have an inf-clojure process")))) + (defun inf-clojure-set-repl (always-ask) "Set an inf-clojure buffer as the active (default) REPL. If in a REPL buffer already, use that unless a prefix is used (or @@ -281,17 +291,13 @@ ALWAYS-ASK). Otherwise get a list of all active inf-clojure REPLS and offer a choice. It's recommended to rename REPL buffers after they are created with `rename-buffer'." (interactive "P") - (if (and (not always-ask) - (inf-clojure-repl-p)) - (progn - (setq inf-clojure-buffer (current-buffer)) - (message "Current inf-clojure REPL set to %s" inf-clojure-buffer)) - (let ((repl-buffers (inf-clojure-repls))) - (if (> (length repl-buffers) 0) - (when-let ((repl-buffer (completing-read "Select default REPL: " repl-buffers nil t))) - (setq inf-clojure-buffer (get-buffer repl-buffer)) - (message "Current inf-clojure REPL set to %s" inf-clojure-buffer)) - (user-error "No buffers have an inf-clojure process"))))) + (when-let ((new-repl-buffer + (if (or always-ask + (not (inf-clojure-repl-p))) + (inf-clojure--prompt-repl-buffer "Select default REPL: ") + (current-buffer)))) + (setq inf-clojure-buffer new-repl-buffer) + (message "Current inf-clojure REPL set to %s" new-repl-buffer))) (defvar inf-clojure--repl-type-lock nil "Global lock for protecting against proc filter race conditions.