dev-tooling

Benjamin 2022-11-29T15:37:08.808069Z

cljs.core/inc the client can check this -> means the server has cljs available? When I put it like that then I get the answer is yes

borkdude 2022-11-29T15:40:18.562359Z

yeah, sounds good

mkvlr 2022-11-29T16:32:59.237219Z

@benjamin.schwerdtner should the client check this or rather the server?

mkvlr 2022-11-29T16:33:35.383629Z

if we do cljs according to the nrepl protocol, I feel the upgrade and check should already happen on the server

Benjamin 2022-11-29T16:34:07.083249Z

context, in the end, is to say if a .cljs file is handled by which repl

Benjamin 2022-11-29T16:35:27.854119Z

what is

cljs according to the nrepl protocol
I think I missed that

mkvlr 2022-11-29T16:36:15.043869Z

currently a lot of the upgrade process (upgrading a JVM Clojure repl to a ClojureScript one) is driven by the client (e.g. cider)

mkvlr 2022-11-29T16:37:29.901189Z

whereas I feel it might be worth exploring if we can move that into to server, e.g. you say what server to start and then you just connect to it from cider, where all the upgrade complexity is contained to the sever and doesn’t need to be implemented in every client. Does that make sense?

Benjamin 2022-11-29T16:38:16.019969Z

Oh yes

👍 1
Benjamin 2022-11-29T16:54:07.480719Z

Here is 1 idea to fix some of the upgrade complexity + "selecting things" in the editor. We add a file like project-root/ nrepl.edn

{:nrepl/run-command
 ;; potentially you run clj with an alias an setup things similar to this
 ;; 
 "nbb nrepl-server :port 1779"
 :nrepl/port 1779
 :nrepl/host "localhost"}
Now I can say something like =cider-jack-in-dwim= and it starts a
repl.
It can even first try to connect to the port, if it is running.

** pros
Less selecting
Implementation is straightforward

** cons
1 more file