Skip to content

Commit a8952d8

Browse files
deprecated: :repl/cljs, :repl/figwheel & :repl/rebel-cljs
Use the editor driven workflow for clojurescript projects with Figwheel to have a connected editor To use Rebel terminal UI, the editor will not be connected although will trigger figwheel rebuild when file changes are saved. https://practical.li/spacemacs/clojure-repl/clojurescript-repl/
1 parent c340346 commit a8952d8

File tree

4 files changed

+125
-29
lines changed

4 files changed

+125
-29
lines changed

CHANGELOG.org

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Unreleased
44
** Changed
55
*** DEPRECATED: `:lib/reloaded` & `:lib/tools-ns` - use `:dev/reloaded`
6+
*** DEPRECATED: `:repl/rebel-cljs`, `:repl/figwheel`, `:repl/rebel-cljs` requires JVM with Nashorn, i.e. Java 8 - use figwheel-main template and [[https://practical.li/spacemacs/clojure-repl/clojurescript-repl/][Practicalli ClojureScript project workflow]]
67

78
* 2023-04-26
89
** Added
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
;; ---------------------------------------------------------
2+
;; Figwheel experiments
3+
;;
4+
;; Attemps to run a ClojureScript terminal REPL with nREPL
5+
;; to connect an Editor e.g. Emacs/Spacemacs, Neovim/Conjure
6+
;;
7+
;; Abandoned approach
8+
9+
;; Recommend either
10+
;; Run figwheel-main project aliases for Rebel realine and use Emacs as an editor (file save triggers reload)
11+
;; Run cider-jack-in-cljs and do everything in the editor
12+
;; ---------------------------------------------------------
13+
14+
15+
16+
17+
{:aliases
18+
{;;
19+
;;
20+
;; Rebel Readline, ClojureScript and Figwheel experiements
21+
22+
23+
24+
;; ClojureScript REPL with basic UI (rlwrap)
25+
;; clojure -M:repl/cljs
26+
;; - use with figwheel alias in figwheel-main template project
27+
:repl/cljs
28+
{:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.60"}
29+
nrepl/nrepl {:mvn/version "1.0.0"}
30+
cider/cider-nrepl {:mvn/version "0.30.0"}
31+
cider/piggieback {:mvn/version "0.5.3"}}
32+
:main-opts ["--main" "nrepl.cmdline"
33+
"--middleware" "[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"
34+
"--interactive"]}
35+
36+
;; Derived from Cider Jack-in command
37+
;; clojure -M:repl/figwheel-headless
38+
;; - check cider will connect to a terminal repl
39+
;; `cider-jack-in-cljs` to start figwheel
40+
:repl/figwheel-headless
41+
{:extra-deps
42+
{nrepl/nrepl {:mvn/version "1.0.0"}
43+
cider/cider-nrepl {:mvn/version "0.30.0"}
44+
cider/piggieback {:mvn/version "0.5.3"}
45+
com.bhauman/figwheel-main {:mvn/version "0.2.18"}}
46+
:main-opts
47+
["-m" "nrepl.cmdline"
48+
"--middleware" "[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"]}
49+
50+
51+
52+
53+
54+
55+
56+
;; Start Rebel and then start nREPL via custom `user` namespace
57+
;; https://figwheel.org/docs/vim.html
58+
59+
;; partially works with older version of cider-nrepl and piggieback, but fails with newer versions
60+
;; - figwheel-main commands mostly work, although not reliably
61+
;; clojure-connect-cljs and select figwheel-main | dev build tries to start the dev build
62+
;; so should not start the figwheel build in the `user` namespace (or write a custom connect type for cider)
63+
64+
:repl/figwheel
65+
{:extra-paths ["src" "resources" "test" "target"]
66+
:extra-deps
67+
{;; org.clojure/clojure {:mvn/version "1.11.1"}
68+
;; org.clojure/clojurescript {:mvn/version "1.10.773"}
69+
com.bhauman/figwheel-main {:mvn/version "0.2.18"}
70+
com.bhauman/rebel-readline {:mvn/version "0.1.4"}
71+
com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}
72+
org.clojure/tools.nrepl {:mvn/version "0.2.13"}
73+
cider/cider-nrepl {:mvn/version "0.30.0"}
74+
cider/piggieback {:mvn/version "0.5.3"}}
75+
:main-opts ["-m" "rebel-readline.main"]}
76+
77+
:repl/cljs-figwheel
78+
{:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.60"}
79+
nrepl/nrepl {:mvn/version "1.0.0"}
80+
cider/cider-nrepl {:mvn/version "0.30.0"}
81+
cider/piggieback {:mvn/version "0.5.3"}}
82+
:main-opts ["--main" "nrepl.cmdline"
83+
"--middleware" "[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"
84+
"--interactive"
85+
"-f" "figwheel.main/-main" "-b" "dev" "-r"]}
86+
87+
;; Connects to clojurescript repl, evaluation updates app,
88+
;; Java 11 or earlier - requires Nashorn JavaScript engine in JVM
89+
:repl/nrepl-figwheel
90+
{:extra-deps
91+
{org.clojure/clojurescript {:mvn/version "1.9.946"}
92+
nrepl/nrepl {:mvn/version "0.8.3"}
93+
cider/cider-nrepl {:mvn/version "0.30.0"}
94+
cider/piggieback {:mvn/version "0.5.3"}
95+
org.slf4j/slf4j-nop {:mvn/version "2.0.7"}
96+
;; org.openjdk.nashorn/nashorn-core {:mvn/version "15.4"}
97+
jakarta.xml.bind/jakarta.xml.bind-api {:mvn/version "2.3.2"}
98+
cljs-tooling/cljs-tooling {:mvn/version "0.3.1"}
99+
com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}
100+
com.bhauman/figwheel-main {:mvn/version "0.2.18"}}
101+
:extra-paths ["target" "test"]
102+
:main-opts
103+
["--main" "nrepl.cmdline"
104+
"--middleware" "[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"
105+
"--interactive"
106+
"-f" "rebel-readline.cljs.main/-main"]}
107+
108+
#_()}}

deps-deprecated.edn

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,21 @@
4646
"--middleware" "[cider.nrepl/cider-middleware]"
4747
"--interactive"]}
4848

49-
;; End of REPL's
49+
;; DEPRECATED
50+
;;- requires Nashorn which was removed from Java 11 onward
51+
;; ClojureScript REPL with rebel readline with nrepl for editor connection
52+
;; https://github.com/bhauman/rebel-readline/tree/master/rebel-readline-cljs
53+
;; CIDER: run `cider-connect-cljs` and select REPL host and port, figwheel-main and dev build
54+
;; Requires Nashorn ClojureScript REPL
55+
:repl/rebel-cljs
56+
{:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.60"}
57+
org.openjdk.nashorn/nashorn-core {:mvn/version "15.4"}
58+
com.bhauman/figwheel-main {:mvn/version "0.2.18"}
59+
com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}}
60+
:main-opts ["--main" "rebel-readline.cljs.main"
61+
"-f" "rebel-readline.cljs.main/-main"]}
62+
63+
;; End of REPL's
5064
;; ---------------------------------------------------
5165

5266
;; ---------------------------------------------------
@@ -327,6 +341,7 @@
327341
:main-opts ["-m" "nrepl.cmdline"
328342
"--middleware" "[refactor-nrepl.middleware/wrap-refactor,cider.nrepl/cider-middleware]"]}
329343

344+
;; REPLACED: `:repl/cljs`
330345
;; Run a REPL using nREPL server for access by cider-connect-cljs
331346
;; clojure -M:middleware/cider-cljs
332347
;; Using figwheel-main template and cider-connect-cljs: clojure -M:middleware/cider-cljs:fig

deps.edn

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -176,26 +176,6 @@
176176
"--middleware"
177177
"[cider.nrepl/cider-middleware,portal.nrepl/wrap-portal]"]}
178178

179-
;; clojure -M:repl/cljs
180-
:repl/cljs
181-
{:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.60"}
182-
nrepl/nrepl {:mvn/version "1.0.0"}
183-
cider/cider-nrepl {:mvn/version "0.30.0"}
184-
cider/piggieback {:mvn/version "0.5.3"}}
185-
:main-opts ["-m" "nrepl.cmdline"
186-
"--interactive"
187-
"--middleware" "[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"]}
188-
189-
:repl/figwheel
190-
{:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.60"}
191-
com.bhauman/figwheel-main {:mvn/version "0.2.18"}
192-
nrepl/nrepl {:mvn/version "1.0.0"}
193-
cider/cider-nrepl {:mvn/version "0.30.0"}
194-
cider/piggieback {:mvn/version "0.5.3"}}
195-
:main-opts ["-m" "nrepl.cmdline"
196-
"--interactive"
197-
"--middleware" "[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"]}
198-
199179
;; Rebel Readline enhanced REPL UI
200180
;; REPL UI with syntax highlighting, built in docs and a quit command `:repl/quit`
201181

@@ -265,14 +245,6 @@
265245
"--interactive"
266246
"-f" "rebel-readline.main/-main"]}
267247

268-
;; ClojureScript REPL with rebel readline with nrepl for editor connection
269-
;; https://github.com/bhauman/rebel-readline/tree/master/rebel-readline-cljs
270-
;; CIDER: run `cider-connect-cljs` and select REPL host and port, figwheel-main and dev build
271-
:repl/rebel-cljs
272-
{:extra-deps {com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}}
273-
:main-opts ["-e" "(apply require clojure.main/repl-requires)"
274-
"-m" "rebel-readline-cljs.main"]}
275-
276248
:lib/rebel
277249
{:extra-deps {com.bhauman/rebel-readline {:mvn/version "0.1.4"}}}
278250

0 commit comments

Comments
 (0)