emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/cider cc31f5b28a: Preserve the `:cljs-repl-type` more reli


From: ELPA Syncer
Subject: [nongnu] elpa/cider cc31f5b28a: Preserve the `:cljs-repl-type` more reliably (#3378)
Date: Wed, 26 Jul 2023 09:59:39 -0400 (EDT)

branch: elpa/cider
commit cc31f5b28a702238e56250535c71c180fb2bbda6
Author: vemv <vemv@users.noreply.github.com>
Commit: GitHub <noreply@github.com>

    Preserve the `:cljs-repl-type` more reliably (#3378)
---
 CHANGELOG.md        |  1 +
 cider-connection.el |  4 +++-
 cider.el            | 29 +++++++++++++++++++----------
 3 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index d75aee4bd0..09bc6b2915 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@
 
 - Bump the injected `cider-nrepl` to 
[0.32](https://github.com/clojure-emacs/cider-nrepl/blob/master/CHANGELOG.md).
 - Improve `nrepl-dict` error reporting.
+- Preserve the `:cljs-repl-type` more reliably.
 
 ## 1.7.0 (2023-03-23)
 
diff --git a/cider-connection.el b/cider-connection.el
index 35fc792716..f74e1d31e0 100644
--- a/cider-connection.el
+++ b/cider-connection.el
@@ -788,7 +788,7 @@ Session name can be customized with 
`cider-session-name-template'."
 ;;; REPL Buffer Init
 
 (defvar-local cider-cljs-repl-type nil
-  "The type of the ClojureScript runtime (Browser, Node, Figwheel, etc.).")
+  "The type of the ClojureScript runtime ('browser, 'node, 'figwheel, etc.).")
 
 (defvar-local cider-repl-type nil
   "The type of this REPL buffer, usually either clj or cljs.")
@@ -919,6 +919,8 @@ function with the repl buffer set as current."
             ;; ran at the end of cider--connected-handler
             cider-repl-init-function (plist-get params :repl-init-function)
             cider-launch-params params)
+      (when-let ((type (plist-get params :cljs-repl-type)))
+        (setq cider-cljs-repl-type type))
       (cider-repl-reset-markers)
       (add-hook 'nrepl-response-handler-functions #'cider-repl--state-handler 
nil 'local)
       (add-hook 'nrepl-connected-hook #'cider--connected-handler nil 'local)
diff --git a/cider.el b/cider.el
index adfa7545c5..40150b33fa 100644
--- a/cider.el
+++ b/cider.el
@@ -1293,7 +1293,9 @@ double prefix prompt for all these parameters."
 (defun cider-jack-in-cljs (params)
   "Start an nREPL server for the current project and connect to it.
 PARAMS is a plist optionally containing :project-dir, :jack-in-cmd and
-:cljs-repl-type (e.g. Node, Figwheel, etc).  With the prefix argument,
+:cljs-repl-type (e.g. 'shadow, 'node, 'figwheel, etc).
+
+With the prefix argument,
 allow editing of the jack in command; with a double prefix prompt for all
 these parameters."
   (interactive "P")
@@ -1318,9 +1320,12 @@ these parameters."
 (defun cider-jack-in-clj&cljs (&optional params soft-cljs-start)
   "Start an nREPL server and connect with clj and cljs REPLs.
 PARAMS is a plist optionally containing :project-dir, :jack-in-cmd and
-:cljs-repl-type (e.g. Node, Figwheel, etc).  With the prefix argument,
-allow for editing of the jack in command; with a double prefix prompt for
-all these parameters.  When SOFT-CLJS-START is non-nil, start cljs REPL
+:cljs-repl-type (e.g. 'shadow, 'node, 'fighweel, etc).
+
+With the prefix argument, allow for editing of the jack in command;
+with a double prefix prompt for all these parameters.
+
+When SOFT-CLJS-START is non-nil, start cljs REPL
 only when the ClojureScript dependencies are met."
   (interactive "P")
   (let ((cider-jack-in-dependencies (append cider-jack-in-dependencies 
cider-jack-in-cljs-dependencies))
@@ -1371,13 +1376,17 @@ server is created."
 ;;;###autoload
 (defun cider-connect-sibling-cljs (params &optional other-repl)
   "Create a ClojureScript REPL with the same server as OTHER-REPL.
-PARAMS is a plist optionally containing :cljs-repl-type (e.g. Node,
-Figwheel, etc).  All other parameters are inferred from the OTHER-REPL.
+PARAMS is a plist optionally containing :cljs-repl-type (e.g. 'node,
+'figwheel, 'shadow, etc).
+
+All other parameters are inferred from the OTHER-REPL.
 OTHER-REPL defaults to `cider-current-repl' but in programs can also be a
 server buffer, in which case a new session for that server is created."
   (interactive "P")
   (let* ((other-repl (or other-repl (cider-current-repl 'any 'ensure)))
          (other-params (cider--gather-connect-params nil other-repl))
+         ;; type-related params from the JVM conn are undesired for a cljs 
conn:
+         (other-params (thread-first other-params (map-delete :repl-type) 
(map-delete :cljs-repl-type)))
          (ses-name (unless (nrepl-server-p other-repl)
                      (sesman-session-name-for-object 'CIDER other-repl))))
     (cider-nrepl-connect
@@ -1410,7 +1419,9 @@ prefix argument, prompt for all the parameters."
 (defun cider-connect-cljs (&optional params)
   "Initialize a ClojureScript connection to an nREPL server.
 PARAMS is a plist optionally containing :host, :port, :project-dir and
-:cljs-repl-type (e.g. Node, Figwheel, etc).  On prefix, prompt for all the
+:cljs-repl-type (e.g. 'shadow, 'node, 'figwheel, etc).
+
+On prefix, prompt for all the
 parameters regardless of their supplied or default values."
   (interactive "P")
   (cider-nrepl-connect
@@ -1428,7 +1439,7 @@ parameters regardless of 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. Node, Figwheel, etc).  When SOFT-CLJS-START is
+: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."
   (interactive "P")
   (let* ((params (thread-first
@@ -1630,8 +1641,6 @@ over to cljs.
           (plist-put :repl-init-function
                      (lambda ()
                        (cider--check-cljs cljs-type)
-                       ;; FIXME: ideally this should be done in the state 
handler
-                       (setq-local cider-cljs-repl-type cljs-type)
                        (cider-nrepl-send-request
                         (list "op" "eval"
                               "ns" (cider-current-ns)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]