You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,7 @@
10
10
- Cache the result of `cider--running-nrepl-paths` (used by `cider-locate-running-nrepl-ports`) for `cider-running-nrepl-paths-cache-ttl` seconds (default 5). Repeated `cider-connect` completions no longer re-spawn a fresh round of `ps`/`lsof` subprocesses each time. `cider-clear-running-nrepl-paths-cache` discards the cache on demand.
11
11
- New `nrepl-make-eval-handler` with a keyword-arg API (`:on-value`, `:on-stdout`, `:on-stderr`, `:on-done`, `:on-eval-error`, `:on-content-type`, `:on-truncated`). Sub-handlers no longer take a buffer argument -- they close over whatever they need. `nrepl-make-response-handler`, the legacy 7-positional-arg form, is preserved as an obsolete shim that adapts the old (buffer x) lambdas to the new (x) lambdas, so existing extensions keep working.
12
12
- Decouple the nREPL transport layer from CIDER's UI layer (closes [#1099](https://github.com/clojure-emacs/cider/issues/1099)). `nrepl-make-eval-handler` is now CIDER-agnostic: it no longer references `nrepl-namespace-handler-function`, `nrepl-err-handler-function`, `nrepl-need-input-handler-function`, or any hardcoded UI strings. New `:on-ns` and `:on-status` keyword slots let any consumer wire up their own namespace tracking and status handling. The editor-level `cider-make-eval-handler` wraps it with CIDER's UI behavior (ns tracking, default error handler, need-input prompt, "Evaluation interrupted." / "Namespace not found." messages); in-tree callers all use it.
13
+
-[#3839](https://github.com/clojure-emacs/cider/pull/3839): Add jack-in support for ClojureCLR.
Copy file name to clipboardExpand all lines: doc/modules/ROOT/pages/caveats.adoc
+4-6Lines changed: 4 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,13 +60,11 @@ from your Emacs config.
60
60
61
61
== ClojureCLR Support
62
62
63
-
CIDER currently has very basic support for ClojureCLR (via Arcadia's nREPL server). The reasons for this are the following:
63
+
CIDER currently has very basic support for ClojureCLR (via either a port of Babashka's nREPL server or Arcadia's nREPL server). The reasons for this are the following:
64
64
65
-
* nREPL itself runs only on the JVM (because it leverages Java APIs
66
-
internally). There's an
67
-
https://github.com/clojure/clr.tools.nrepl[nREPL port for ClojureCLR], but
68
-
it's not actively maintained and it doesn't behave like the Clojure nREPL.
69
-
* `cider-nrepl` uses a lot of Java code internally itself.
65
+
* The https://github.com/clojure/clr.tools.nrepl/tree/master/partial-nrepl-nrepl-port[nrepl/nrepl port to ClojureCLR] is not yet working
66
+
* `cider-nrepl` uses a lot of Java code internally itself and would need to be adapted/ported like any
67
+
other clojure library adapted/ported to ClojureCLR.
70
68
71
69
Those issues are not insurmountable, but are beyond the scope of our current roadmap.
72
70
If someone would like to tackle them, we'd be happy to provide assistance.
Copy file name to clipboardExpand all lines: doc/modules/ROOT/pages/platforms/clojureclr.adoc
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,27 +2,27 @@
2
2
3
3
== Current Status
4
4
5
-
ClojureCLR on CIDER is not great due to the lack of a fully-functional nREPL
6
-
server for ClojureCLR. There are currently two options:
5
+
You will get basic CIDER functionality with ClojureCLR. Three nREPL server options:
7
6
8
-
- https://github.com/clojure/clr.tools.nrepl[clr.tools.nrepl]: A direct (but incomplete) port of the reference Clojure nREPL server.
7
+
- https://github.com/clojure/clr.tools.nrepl[clr.tools.nrepl]: At present port of babashka's nREPL server (https://github.com/babashka/babashka.nrepl[babashka.nrepl]).
8
+
- https://github.com/clojure/clr.tools.nrepl/tree/master/partial-nrepl-nrepl-port[port of nrepl/nrepl]: A non-working, work-in-progress port of nrepl/nrepl, which may
9
+
ultimately better integrate with CIDER once CIDER's middleware (cider-nrepl) is also adapted/ported.
9
10
- https://github.com/arcadia-unity/Arcadia/blob/master/Editor/NRepl.cs[Arcadia's nREPL]: A basic, but working nREPL implementation in C#.
10
11
11
-
If you need to use CIDER with ClojureCLR today Arcadia's nREPL is your only usable option. That being said - `clr.tools.nrepl` is a much
12
-
more sophisticated project and ideally we should get it over to the finish line.
12
+
An alternative to CIDER & a nREPL server is inf-clojure with ClojureCLR's stock socket REPL server.
13
13
14
14
== Usage
15
15
16
16
NOTE: Contributions welcome!
17
17
18
-
As `cider-jack-in` doesn't support ClojureCLR projects out-of-the-box currently, you'll need to start an nREPL server externally and
19
-
connect to it with `cider-connect`.
18
+
`cider-jack-in-universal` will jack into a clr.tools.nrepl server as long as a `deps-clr.edn` file
19
+
exists in the project directory, otherwise you may call `cider-jack-in-universal` with prefix
20
+
argument 6, by either `M-6` or `C-u 6` followed by `M-x cider-jack-in-universal`.
20
21
21
22
== Plans
22
23
23
24
In an ideal world we'll achieve the following objectives:
24
25
25
-
- out-of-the-box ClojureCLR support with `cider-jack-in`
26
26
- feature parity between Clojure's nREPL implementation and `clr.tools.nrepl` (the project can use some help)
27
27
- adapting `cider-nrepl` for ClojureCLR (some of its codebase is JVM-specific)
0 commit comments