@@ -52,6 +52,8 @@ CIDER packs plenty of features. Here are some of them (in no particular order):
52
52
- [Using the cider minor mode](#using-the-cider-minor-mode)
53
53
- [Pretty printing in the REPL](#pretty-printing-in-the-repl)
54
54
- [Limiting printed output in the REPL](#limiting-printed-output-in-the-repl)
55
+ - [ClojureScript usage](#clojurescript-usage)
56
+ - [ClojureScript usage](#clojurescript-usage)
55
57
- [ Keyboard shortcuts] ( #keyboard-shortcuts )
56
58
- [cider-mode](#cider-mode)
57
59
- [cider-repl-mode](#cider-repl-mode)
@@ -568,6 +570,57 @@ section of your Leiningen project's configuration.
568
570
:global-vars {*print-length* 100 }
569
571
```
570
572
573
+ ### ClojureScript usage
574
+
575
+ ClojureScript support relies on the
576
+ [ piggieback] ( https://github.com/cemerick/piggieback ) nREPL middleware being
577
+ present in your REPL session. This is supported by (and is the recommended
578
+ method for using) both the [ Austin] ( https://github.com/cemerick/austin ) and
579
+ [ Weasel] ( https://github.com/tomjakubowski/weasel ) ClojureScript REPLs.
580
+
581
+ * Example usage of a non-browser connected Austin REPL (requires
582
+ e.g. ` [com.cemerick/austin "0.1.5"] ` in your project's ` :plugins ` ):
583
+
584
+ - At the Clojure REPL:
585
+
586
+ ``` clojure
587
+ (cemerick.piggieback/cljs-repl
588
+ :repl-env (cemerick.austin/exec-env ))
589
+ ```
590
+
591
+ * Example usage of browser-connected Weasel REPL (requires e.g. `[weasel " 0.4.2" ]` in your project's
592
+ `:dependencies`):
593
+
594
+ - At the Clojure REPL:
595
+
596
+ ```clojure
597
+ (require 'weasel.repl.websocket)
598
+ (cemerick.piggieback/cljs-repl
599
+ :repl-env (weasel.repl.websocket/repl-env :ip " 0.0.0.0"
600
+ :port 9001 ))
601
+ ```
602
+
603
+ - and in your ClojureScript:
604
+
605
+ ```clojure
606
+ (ns my.cljs.core
607
+ (:require [weasel.repl :as ws-repl]))
608
+
609
+ (ws-repl/connect " ws://localhost:9001" )
610
+ ```
611
+
612
+ The [clojure-quick-repls](https://github.com/symfrog/clojure-quick-repls )
613
+ library provides helper functions to automate REPL creation for both Clojure and
614
+ Clojurescript, and will also automatically route requests to the correct REPL
615
+ according to the file extension of the current buffer (note that CIDER does not
616
+ provide the latter functionality out-of-the-box).
617
+
618
+ Provided that a Piggieback-enabled ClojureScript environment is active in your
619
+ REPL session, code loading and evaluation will work seamlessly regardless of the
620
+ presence of the `cider-nrepl` middleware. If the middleware is present then most
621
+ other features of CIDER will also be enabled (including code completion,
622
+ documentation lookup, the namespace browser, and macroexpansion).
623
+
571
624
## Keyboard shortcuts
572
625
573
626
* <kbd>M-x cider-jack-in</kbd>: Launch an nREPL server and a REPL client.
@@ -755,14 +808,25 @@ change `*cider-repl localhost*` to `*cider-repl foo*`.
755
808
756
809
## Caveats
757
810
758
- ### Completion
811
+ ### ClojureScript
812
+
813
+ Currently, the following features are not supported for ClojureScript
814
+ development:
815
+
816
+ * Grimoire lookup
817
+ * The inspector
818
+ * Reloading
819
+ * Running tests
820
+ * Tracing
821
+
822
+ There is currently no support for both Clojure and ClojureScript evaluation in
823
+ the same nREPL session. If Piggieback is active, code evaluation and all
824
+ features will assume ClojureScript.
759
825
760
- ClojureScript completion is provided by the
761
- [ cider-nrepl] ( https://github.com/clojure-emacs/cider-nrepl ) 'complete'
762
- implementation middleware which relies on
763
- [ piggieback] ( https://github.com/cemerick/piggieback ) . Include it in
764
- your project middlewares and call ` (cemerick.piggieback/cljs-repl) ` or
765
- another method to start up the ClojureScript REPL.
826
+ The aforementioned
827
+ [ clojure-quick-repls] ( https://github.com/symfrog/clojure-quick-repls ) aids this
828
+ situation by routing requests to the correct REPL according to the file
829
+ extension of the current buffer.
766
830
767
831
### Microsoft Windows
768
832
0 commit comments