[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/cider 7e8645fe35 2/8: Add user customization for reusing d
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/cider 7e8645fe35 2/8: Add user customization for reusing dead REPLs |
Date: |
Fri, 16 Jun 2023 04:00:04 -0400 (EDT) |
branch: elpa/cider
commit 7e8645fe350c2e1736ae8e4e25e2bb181d2941cd
Author: yuhan0 <qythium@gmail.com>
Commit: Bozhidar Batsov <bozhidar@batsov.dev>
Add user customization for reusing dead REPLs
---
cider-connection.el | 39 +++++++++++++++++++++++++++++++--------
1 file changed, 31 insertions(+), 8 deletions(-)
diff --git a/cider-connection.el b/cider-connection.el
index f316d50faa..ec866a6d85 100644
--- a/cider-connection.el
+++ b/cider-connection.el
@@ -74,6 +74,26 @@ All other values do not combine any sessions."
:safe #'symbolp
:package-version '(cider . "1.5"))
+(defcustom cider-reuse-dead-repls 'prompt
+ "Controls behaviour when initializing a connection with existing dead REPL
buffers.
+
+Possible choices are `prompt', `auto', `any', and `nil'.
+- `prompt' means to always ask the user for a decision.
+- `auto' means to automatically reuse a dead REPL without prompting the user
+ if it is the only available option. When there are multiple buffers to
+ choose from, the user is is prompted for a choice.
+- `any' (or any other non-nil value) means to reuse any dead REPL buffer
+ available, by default the most relevant according to various heuristics,
+ and never prompt the user.
+- `nil' means to start a new REPL each time, ignoring existing buffers."
+ :type '(choice (const :tag "Always prompt for what to do with dead REPLs"
prompt)
+ (const :tag "Reuse dead REPL, prompting only for multiple
choice" auto)
+ (const :tag "Reuse any available dead REPL and never prompt"
any)
+ (const :tag "Never reuse dead REPLs" nil))
+ :group 'cider
+ :safe #'symbolp
+ :package-version '(cider . "1.8"))
+
(defconst cider-required-nrepl-version "0.6.0"
"The minimum nREPL version that's known to work properly with CIDER.")
@@ -833,13 +853,15 @@ PARAMS is a plist as received by `cider-repl-create'."
(if (equal port (plist-get bparams
:port)) 2 0))))))
repls))))
(when scored-repls
- (if (> (length scored-repls) 1)
- (when (y-or-n-p "Dead REPLs exist. Reuse? ")
- (let ((sorted-repls (seq-sort (lambda (a b) (> (cdr a) (cdr b)))
scored-repls)))
- (get-buffer (completing-read "REPL to reuse: "
- (mapcar #'car sorted-repls) nil t
nil nil (caar sorted-repls)))))
- (when (y-or-n-p (format "A dead REPL %s exists. Reuse? " (caar
scored-repls)))
- (get-buffer (caar scored-repls))))))))
+ (cond ((eq 'any cider-reuse-dead-repls)
+ (get-buffer (caar scored-repls)))
+ ((= 1 (length scored-repls))
+ (when (or (eq 'auto cider-reuse-dead-repls)
+ (y-or-n-p (format "A dead REPL %s exists. Reuse? "
(caar scored-repls))))
+ (get-buffer (caar scored-repls))))
+ ((y-or-n-p "Dead REPLs exist. Reuse? ")
+ (get-buffer (completing-read "REPL to reuse: " (mapcar #'car
scored-repls)
+ nil t nil nil (caar
scored-repls)))))))))
(declare-function cider-default-err-handler "cider-eval")
(declare-function cider-repl-mode "cider-repl")
@@ -857,7 +879,8 @@ function with the repl buffer set as current."
;; Connection might not have been set as yet. Please don't send requests in
;; this function, but use cider--connected-handler instead.
(let ((buffer (or (plist-get params :repl-buffer)
- (cider--choose-reusable-repl-buffer params)
+ (and cider-reuse-dead-repls
+ (cider--choose-reusable-repl-buffer params))
(get-buffer-create (generate-new-buffer-name
"*cider-uninitialized-repl*"))))
(ses-name (or (plist-get params :session-name)
(cider-make-session-name params))))
- [nongnu] elpa/cider updated (ec97c88c46 -> 049eb30caf), ELPA Syncer, 2023/06/16
- [nongnu] elpa/cider a903e9e15b 1/8: Restore ability to reuse dead clj REPLs, ELPA Syncer, 2023/06/16
- [nongnu] elpa/cider e0dd24ee74 3/8: Tweak wording of prompts, ELPA Syncer, 2023/06/16
- [nongnu] elpa/cider b94d4ed6a4 7/8: Add changelog entry, ELPA Syncer, 2023/06/16
- [nongnu] elpa/cider 049eb30caf 8/8: Add section about dead REPLs to user manual, ELPA Syncer, 2023/06/16
- [nongnu] elpa/cider 4260f10e9a 5/8: Remove unnecessary autoload, add tagged choices, ELPA Syncer, 2023/06/16
- [nongnu] elpa/cider 7e8645fe35 2/8: Add user customization for reusing dead REPLs,
ELPA Syncer <=
- [nongnu] elpa/cider 86d9d64421 4/8: Refactor, ELPA Syncer, 2023/06/16
- [nongnu] elpa/cider 152f7f1805 6/8: Fix lint warnings, ELPA Syncer, 2023/06/16