|
1 | 1 | = Other Platforms
|
2 | 2 |
|
3 |
| -== The Problem |
| 3 | +== Overview |
4 | 4 |
|
5 |
| -CIDER was created in the early days of Clojure where there weren't any |
6 |
| -of the alternative implementations that exist today. This lead to a design |
7 |
| -that relied on knowledge of certain specifics of Clojure and |
8 |
| -the Clojure nREPL server. |
| 5 | +Here "other platforms" essentially means any (Clojure) platforms that hasn't |
| 6 | +been mentioned specifically earlier in a dedicated section of the documentation. |
9 | 7 |
|
10 |
| -Later, with the introduction of ClojureScript we made another set |
11 |
| -of assumptions, related to the way hosted ClojureScript works. (e.g. that |
12 |
| -you start with an ordinary Clojure REPL that gets "upgraded" to a |
13 |
| -ClojureScript REPL by the invocation of a special form) |
| 8 | +As noted earlier in the documentation, down the road CIDER might support non-Clojure |
| 9 | +platforms as well. As things stand today, however, that's not particularly high on our |
| 10 | +list of priorities. |
14 | 11 |
|
15 |
| -Lately we've been working to address this and |
16 |
| -make CIDER more runtime-agnostic. |
17 |
| - |
18 |
| -== The Solution |
| 12 | +== Usage |
19 | 13 |
|
20 | 14 | As of CIDER 1.6, the default CIDER connection command `cider-connect-clj` is
|
21 | 15 | capable of connecting to any nREPL server that implements the core nREPL
|
22 |
| -protocol interface. |
23 |
| - |
24 |
| -As such, all of these work: |
25 |
| - |
26 |
| -* https://github.com/babashka/nbb[nbb] |
27 |
| -* https://github.com/babashka/scittle[scittle] |
28 |
| -* https://github.com/BetterThanTomorrow/joyride[joyride] |
| 16 | +protocol interface. So, all you need to do is the following: |
29 | 17 |
|
30 |
| -First start an nREPL server (the project's Readme usually has a section |
| 18 | +* Start an nREPL server (the project's README usually has a section |
31 | 19 | on starting a nREPL server).
|
| 20 | +* kbd:[M-x `cider-connect-clj` <RET>] |
32 | 21 |
|
33 |
| -You can use |
| 22 | +And that's it! You'll get every feature that's implemented by the nREPL server |
| 23 | +you're using. |
34 | 24 |
|
35 |
| -kbd:[M-x `cider-connect-clj` <RET>] |
| 25 | +== Supported Platform |
36 | 26 |
|
37 |
| -to connect to any Clojure(Script) nREPL server. |
| 27 | +Here's an incomplete list of Clojure platforms that you can use as described above. |
38 | 28 |
|
39 |
| -Features: |
| 29 | +* https://github.com/babashka/nbb[nbb] |
| 30 | +* https://github.com/babashka/scittle[scittle] |
| 31 | +* https://github.com/BetterThanTomorrow/joyride[joyride] |
40 | 32 |
|
41 |
| -* Eval, load file etc. |
42 |
| -* Code completion. |
43 |
| -* Errors as overlays. (The default CIDER error buffer is not implemented currently). |
44 |
| -* Other nREPL features the server provides; This might be rather minimal. |
| 33 | +NOTE: For `nbb` you can alternatively connect via `cider-connect-cljs`, see xref:platforms/nbb.adoc[nbb]. |
45 | 34 |
|
46 |
| -Basically you'll get every feature that's implemented by the nREPL server you're using. |
| 35 | +== Limitations & Caveats |
47 | 36 |
|
48 |
| -NOTE: For `nbb` you can alternatively connect via `cider-connect-cljs`, see xref:platforms/nbb.adoc[nbb]. |
| 37 | +* Everything will be treated as a Clojure connection, regardless of the underlying platform. |
| 38 | +* Errors will be displayed only as overlays. (The default CIDER error buffer is not implemented currently). |
| 39 | +* The amount of functionality you'll get will be dependant on how well the nREPL server you're using implements the core nREPL protocol. |
0 commit comments