branch: elpa/cider commit 0f3410781f2b994d3e1385b468f73b4e3d161660 Author: ikappaki <ikapp...@users.noreply.github.com> Commit: Bozhidar Batsov <bozhi...@batsov.dev>
bump pack version, update doc Also - Add changelog entry - Small tests improvements (no functional changes). - Fixes unreleated codespell issue in master with `ai` logos. --- CHANGELOG.md | 1 + cider.el | 6 +-- doc/modules/ROOT/nav.adoc | 1 + doc/modules/ROOT/pages/platforms/nbb.adoc | 13 ++++++ doc/modules/ROOT/pages/platforms/overview.adoc | 1 + test/cider-tests.el | 56 ++++++++++++++++---------- 6 files changed, 54 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c761d94b6..2a4fe659b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### New features - [#3278](https://github.com/clojure-emacs/cider/pull/3278) Introduce integration tests, which also fix a long standing issue with orphaned process on MS-Windows by contracting `taskkill`, if available, to properly kill the nREPL server process tree. +- [#3061](https://github.com/clojure-emacs/cider/issues/3061): Add support for nbb. - [#3249](https://github.com/clojure-emacs/cider/pull/3249): Add support for Clojure Spec 2. - [#3247](https://github.com/clojure-emacs/cider/pull/3247): Add the `cider-stacktrace-analyze-at-point` and `cider-stacktrace-analyze-in-region` commands to view printed exceptions in the stacktrace inspector. diff --git a/cider.el b/cider.el index f944f8bcf9..c0cc2fc695 100644 --- a/cider.el +++ b/cider.el @@ -235,21 +235,21 @@ By default we favor the project-specific shadow-cljs over the system-wide." "The command used to execute nbb." :type 'string :safe #'stringp - :package-version '(cider . "1.2.0")) + :package-version '(cider . "1.3.0")) (defcustom cider-nbb-global-options nil "Command line options used to execute nbb." :type 'string :safe #'stringp - :package-version '(cider . "1.2.0")) + :package-version '(cider . "1.3.0")) (defcustom cider-nbb-parameters "nrepl-server" "Params passed to nbb to start an nREPL server via `cider-jack-in'." :type 'string :safe #'stringp - :package-version '(cider . "1.2.0")) + :package-version '(cider . "1.3.0")) (defcustom cider-jack-in-default (if (executable-find "clojure") 'clojure-cli 'lein) "The default tool to use when doing `cider-jack-in' outside a project. diff --git a/doc/modules/ROOT/nav.adoc b/doc/modules/ROOT/nav.adoc index 599eb069a1..63802644db 100644 --- a/doc/modules/ROOT/nav.adoc +++ b/doc/modules/ROOT/nav.adoc @@ -13,6 +13,7 @@ * Alternative Platforms ** xref:platforms/overview.adoc[Overview] ** xref:platforms/babashka.adoc[Babashka] +** xref:platforms/nbb.adoc[Nbb] ** xref:platforms/scittle_and_friends.adoc[Scittle and Friends] * Using CIDER ** xref:usage/interactive_programming.adoc[Interactive Programming] diff --git a/doc/modules/ROOT/pages/platforms/nbb.adoc b/doc/modules/ROOT/pages/platforms/nbb.adoc new file mode 100644 index 0000000000..4a21fd26ee --- /dev/null +++ b/doc/modules/ROOT/pages/platforms/nbb.adoc @@ -0,0 +1,13 @@ += https://github.com/babashka/nbb[nbb] + +Nbb's main goal is to make it easy to get started with ad hoc CLJS scripting on Node.js. + +It is highly compatible with ClojureScript, so it works with CIDER out of the box. + +You can either jack in to an nbb project with `M-x clojure-jack-in-cljs`. + +or start its bundled nREPL server: + + $ nbb nrepl-server + +and connect to it afterwards using `M-x cider-connect-cljs`. diff --git a/doc/modules/ROOT/pages/platforms/overview.adoc b/doc/modules/ROOT/pages/platforms/overview.adoc index d0d94bc1f1..aafd0ae22f 100644 --- a/doc/modules/ROOT/pages/platforms/overview.adoc +++ b/doc/modules/ROOT/pages/platforms/overview.adoc @@ -28,6 +28,7 @@ Right now CIDER the supports to some extent the following: * Babashka * ClojureCLR (via Arcadia's nREPL server) * Lumo (via https://github.com/djblue/nrepl-cljs) +* Nbb All of them are derived from Clojure, so supporting them didn't really require much work. diff --git a/test/cider-tests.el b/test/cider-tests.el index c9693ad584..052c09f128 100644 --- a/test/cider-tests.el +++ b/test/cider-tests.el @@ -580,46 +580,60 @@ :to-equal (shell-quote-argument "/bin/command")))) (describe "cider-connect-sibling-cljs" - :var (-cider-cljs-repl-types bu-cider-shadow-default-options) + ;; restore: + ;; - `cider-cljs-repl-types` changed by `cider-register-cljs-repl-type`. + :var (-cider-cljs-repl-types) (before-all - (setq -cider-cljs-repl-types cider-cljs-repl-types - -cider-shadow-default-options cider-shadow-default-options)) + (setq -cider-cljs-repl-types cider-cljs-repl-types)) (after-each - (setq cider-cljs-repl-types -cider-cljs-repl-types - cider-shadow-default-options -cider-shadow-default-options)) + (setq cider-cljs-repl-types -cider-cljs-repl-types)) (describe "sets nrepl client local vars correctly" (it "for nbb project" (let* ((server-process (nrepl-start-mock-server-process)) (server-buffer (process-buffer server-process)) - (client-buffer (cider-connect-sibling-cljs '(:cljs-repl-type nbb) server-buffer))) - (expect (buffer-local-value 'cider-repl-type client-buffer) :to-equal 'cljs) - (expect (buffer-local-value 'cider-repl-init-function client-buffer) :to-be nil) + (client-buffer (cider-connect-sibling-cljs + '(:cljs-repl-type nbb) server-buffer))) + ;; native cljs REPL + (expect (buffer-local-value 'cider-repl-type client-buffer) + :to-equal 'cljs) + (expect (buffer-local-value 'cider-repl-init-function client-buffer) + :to-be nil) (delete-process (get-buffer-process client-buffer)))) (it "for shadow project" - (setq cider-shadow-default-options "a-shadow-alias") - (let* ((server-process (nrepl-start-mock-server-process)) + (let* ((cider-shadow-default-options "a-shadow-alias") + (server-process (nrepl-start-mock-server-process)) (server-buffer (process-buffer server-process)) - (client-buffer (cider-connect-sibling-cljs '(:cljs-repl-type shadow) server-buffer))) - (expect (buffer-local-value 'cider-repl-type client-buffer) :to-equal 'pending-cljs) - (expect (buffer-local-value 'cider-repl-init-function client-buffer) :not :to-be nil) + (client-buffer (cider-connect-sibling-cljs + '(:cljs-repl-type shadow) server-buffer))) + ;; starts as clj REPL and requires a form to switch over to cljs + (expect (buffer-local-value 'cider-repl-type client-buffer) + :to-equal 'pending-cljs) + (expect (buffer-local-value 'cider-repl-init-function client-buffer) + :not :to-be nil) (delete-process (get-buffer-process client-buffer)))) (it "for a custom cljs REPL type project" (cider-register-cljs-repl-type 'native-cljs) (let* ((server-process (nrepl-start-mock-server-process)) (server-buffer (process-buffer server-process)) - (client-buffer (cider-connect-sibling-cljs '(:cljs-repl-type native-cljs) - server-buffer))) - (expect (buffer-local-value 'cider-repl-type client-buffer) :to-equal 'cljs) + (client-buffer (cider-connect-sibling-cljs + '(:cljs-repl-type native-cljs) + server-buffer))) + (expect (buffer-local-value 'cider-repl-type client-buffer) + :to-equal 'cljs) (delete-process (get-buffer-process client-buffer)))) (it "for a custom REPL type project that needs to switch to cljs" - (cider-register-cljs-repl-type 'not-cljs-initially "(form-to-switch-to-cljs-repl)") + (cider-register-cljs-repl-type + 'not-cljs-initially "(form-to-switch-to-cljs-repl)") (let* ((server-process (nrepl-start-mock-server-process)) (server-buffer (process-buffer server-process)) - (client-buffer (cider-connect-sibling-cljs '(:cljs-repl-type not-cljs-initially) - server-buffer))) - (expect (buffer-local-value 'cider-repl-type client-buffer) :to-equal 'pending-cljs) - (expect (buffer-local-value 'cider-repl-init-function client-buffer) :not :to-be nil) + (client-buffer (cider-connect-sibling-cljs + '(:cljs-repl-type not-cljs-initially) + server-buffer))) + (expect (buffer-local-value 'cider-repl-type client-buffer) + :to-equal 'pending-cljs) + (expect (buffer-local-value 'cider-repl-init-function client-buffer) + :not :to-be nil) (delete-process (get-buffer-process client-buffer)))))) (provide 'cider-tests)