Description
Branching off from our conversation around the nbb
bug in this issue:
I have recently implemented an nREPL for a new evaluation context, and I found a few odd things with how Cider uses the nREPL protocol. For example, the nREPL "spec" claims that the op
for completions is completions
, but Cider uses complete
. Presumably, all the other clients in the Clojure space do likewise, so I guess we should fix the spec.
In addition, when the server is missing ops that Cider wants, it sends JVM-specific forms to eval
to try to get a similar effect to the op. This means that when someone is building an nREPL server in a non-JVM context they must detect those forms via string comparison and take evasive action or just send endless exception messages to Cider.
None of this is great for tool builders, so I was hoping that maybe we could clean things up a bit and make the standard more of a standard. 😊