Skip to content

deps.edn cljs node repl switches back to cljs.user namespace #3781

Open
@harold

Description

@harold

Expected behavior

Evaluating (* 6 7) in the repl wouldn't switch to a different namespace

Actual behavior

;; Connected to nREPL server - nrepl://localhost:44565
;; CIDER 1.17.1 (Cologne), nREPL 1.3.1
;; Clojure 1.12.0, Java 11.0.26
;;     Docs: (doc function-name)
;;           (find-doc part-of-name)
;;   Source: (source function-name)
;;  Javadoc: (javadoc java-object-or-class)
;;     Exit: <C-c C-q>
;;  Results: Stored in vars *1, *2, *3, an exception in *e;
;;  Startup: /usr/local/bin/clojure -Sdeps \{\:deps\ \{nrepl/nrepl\ \{\:mvn/version\ \"1.3.1\"\}\ cider/cider-nrepl\ \{\:mvn/version\ \"0.52.1\"\}\ cider/piggieback\ \{\:mvn/version\ \"0.5.3\"\}\}\ \:aliases\ \{\:cider/nrepl\ \{\:main-opts\ \[\"-m\"\ \"nrepl.cmdline\"\ \"--middleware\"\ \"\[cider.nrepl/cider-middleware\,cider.piggieback/wrap-cljs-repl\]\"\]\}\}\} -M:cider/nrepl
;;
;; ClojureScript REPL type: node
;; ClojureScript REPL init form: (do (require 'cljs.repl.node) (cider.piggieback/cljs-repl (cljs.repl.node/repl-env)))
;;
To quit, type: :cljs/quit
niluser> 
cljs.user> (+ 1 2 3)
6
cljs.user> (require '["fs" :as fs])
nil
cljs.user> (str (fs/readFileSync "./deps.edn"))
"{:deps {org.clojure/clojurescript {:mvn/version \"1.11.132\"}}}\n"
cljs.user> (in-ns 'foo.bar)
nil
foo.bar> (* 6 7)
42
cljs.user>

Steps to reproduce the problem

  1. Ensure node is installed and on exec-path
(shell-command-to-string "node --version")
;; v20.16.0
  1. Project setup:
harold@straylight:~/src$ cd cider-cljs-node-repl/
harold@straylight:~/src/cider-cljs-node-repl$ echo '{:deps {org.clojure/clojurescript {:mvn/version "1.11.132"}}}' > deps.edn
harold@straylight:~/src/cider-cljs-node-repl$ cat deps.edn 
{:deps {org.clojure/clojurescript {:mvn/version "1.11.132"}}}
  1. find-file that deps.edn in emacs
  2. cider-jack-in-cljs
  3. "Select ClojureScript REPL type: " -> pick node
  4. Wait a few seconds for everything to start up, and piggieback to do its thing
  5. When at the cljs.user> prompt...
cljs.user> ;; prove we're in node
cljs.user> (require '["fs" :as fs])
nil
cljs.user> (str (fs/readFileSync "./deps.edn"))
"{:deps {org.clojure/clojurescript {:mvn/version \"1.11.132\"}}}\n"
cljs.user> (* 6 7)
42
cljs.user> (in-ns 'foo.bar)
nil
foo.bar> (* 6 7)
42
cljs.user> ;; expected to stay in foo.bar

Environment & Version information

CIDER version information

;; Connected to nREPL server - nrepl://localhost:40059
;; CIDER 1.17.1 (Cologne), nREPL 1.3.1
;; Clojure 1.12.0, Java 11.0.26

Lein / Clojure CLI version

$ clj --version
Clojure CLI version 1.12.0.1501

Emacs version

GNU Emacs 29.4 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) of 2024-07-01, modified by Debian

Operating system

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 24.10
Release:	24.10
Codename:	oracular

JDK distribution

$ java -version
openjdk version "11.0.26" 2025-01-21
OpenJDK Runtime Environment (build 11.0.26+4-post-Ubuntu-1ubuntu124.10)
OpenJDK 64-Bit Server VM (build 11.0.26+4-post-Ubuntu-1ubuntu124.10, mixed mode, sharing)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions