I was looking for the Microsoft doc defining the protocol for a Repl that was posted here some time ago. Slack is not helping π
In particular I am interested in understanding if unrepl can be really generalized to other languages repls (node is the first candidate here). If a Repl can be upgraded to anything the client needs, the I should be able to have repl that can switch from ClojureScript to JavaScript so TypeScript.
Maybe this is a dream but I see so many repl implementations in the wild and my stomach is churning every time I see how much duplication there is out there (especially in JS land!)
Probably this has been already clarified anyways, just wanted to get confirmation. I saw the need of porting the nrepl implementation to cljs. I am not promising..But I will have a look at that π
One thing I am curious about, why choosing the edn format as output? Transit is notoriously faster and equally supported. A side question: is the output configurable by the "upgraded" repl?
@richiardiandrea LSP https://github.com/Microsoft/language-server-protocol
On unrepl generalization there are many aspects to that: β’ the upgrade strategy is not possible for all langs (not blocking but unrepl has to be started first) β’ I believe most messages are not too clojure specific β’ edn: because itβs easy to produce with no additional lib; if you want to switch to a binary serialization you have at least two options: re-upgrade unrepl (again not possible everywhere) or use a session command to switch formats.
@richiardiandrea LSP is strictly not a REPL. My argument is that something like LSP should be used for tooling (ie. auto-complete, doc lookup, etc) but definitely NOT as a REPL.
Thanks folks, yes not all langs for sure. But for instance all JS langs should be doable. As long as there is an "extension" in node.js node_modules, for instance, it can be picked up. Same could be for Java Scala Clojure in the JVM...The idea of having one repl per platform with the same protocol is really appealing to me π