branch: elpa/cider
commit ada51c568c0953a890367669b91202fc465d3509
Author: yuhan0 <qyth...@gmail.com>
Commit: Bozhidar Batsov <bozhi...@batsov.dev>

    Refactor cider-connect-clj&cljs
---
 cider.el | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/cider.el b/cider.el
index dc2aee5f47..10fe34d5af 100644
--- a/cider.el
+++ b/cider.el
@@ -1526,22 +1526,27 @@ their supplied or default values."
 (defun cider-connect-clj&cljs (params &optional soft-cljs-start)
   "Initialize a Clojure and ClojureScript connection to an nREPL server.
 PARAMS is a plist optionally containing :host, :port, :project-dir and
-:cljs-repl-type (e.g. 'shadow, 'node, 'figwheel, etc).  When SOFT-CLJS-START is
-non-nil, don't start if ClojureScript requirements are not met."
+:cljs-repl-type (e.g. 'shadow, 'node, 'figwheel, etc).
+If nil, use the default parameters in `cider-connect-default-params' and
+`cider-connect-default-cljs-params'.
+
+When SOFT-CLJS-START is non-nil, don't start if ClojureScript requirements are
+not met.
+
+With the prefix argument, prompt for all the parameters regardless of
+their supplied or default values."
   (interactive "P")
-  (let* ((params (thread-first params
-                               (cider--update-project-dir)
-                               (cider--update-host-port)
-                               (cider--check-existing-session)
-                               (cider--update-cljs-type)))
-         (clj-params (thread-first params
-                                   copy-sequence
-                                   (map-delete :cljs-repl-type)))
-         (clj-repl (cider-connect-clj clj-params)))
+  (let* ((clj-repl (cider-connect-clj params))
+         (cljs-params
+          (thread-first (or params cider-connect-default-cljs-params)
+                        (copy-sequence)
+                        (cider--update-cljs-type)
+                        ;; already asked, don't ask on sibling connect
+                        (plist-put :do-prompt nil))))
     (when (if soft-cljs-start
-              (cider--check-cljs (plist-get params :cljs-repl-type) 'no-error)
+              (cider--check-cljs (plist-get cljs-params :cljs-repl-type) 
'no-error)
             t)
-      (cider-connect-sibling-cljs params clj-repl))))
+      (cider-connect-sibling-cljs cljs-params clj-repl))))
 
 (defvar cider-connection-init-commands
   '(cider-jack-in-clj

Reply via email to