Skip to content

Remove runtime-specific code / improve nREPL? #3193

Closed
@jackrusher

Description

@jackrusher

Branching off from our conversation around the nbb bug in this issue:

#3061 (comment)

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. 😊

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions