Fork me on GitHub
#nrepl
<
2018-11-20
>
bozhidar10:11:55

@pez What’s the failure?

bozhidar10:11:09

> Exception in thread "nREPL-worker-2" java.lang.IllegalArgumentException: No implementation of method: :send of protocol: #'clojure.tools.nrepl.transport/Transport found for class: nrepl.transport.FnTransport

bozhidar10:11:33

According to this stacktrace you’ve got a mixture of tools.nrepl and nrepl in your project.

bozhidar10:11:24

Are you sure you don’t have tools.nrepl somewhere in its dependency tree?

pez10:11:15

@bozhidar The failure related to the :repl-options map in the project file?

pez11:11:41

You're right, it says tools.nrepl right there. I'll print out the dependency tree and see if I can see it lurking around there. But I really shouldn't have that. I used the broomstick to chase everything like that out!

bozhidar13:11:50

It must be there, otherwise you can’t get such a stacktrace.

bozhidar13:11:00

As for the :repl-options problem - I don’t know.

bozhidar13:11:05

I don’t have time to play with lein master myself. I just use the lein-nrepl plugin instead.

pez13:11:52

When using that plugin my user namespace didn't load as it does with a ”normal” repl.

pez14:11:04

I got in a hurry since I had been thinking Calva was ready for 0.4.5 and now when you made me see that I hadn't even tested that, I want to make it as painless as possible for the users when leiningen upgrades and 0.4.5 starts to be used.

bozhidar14:11:08

What’s in your user.clj, btw?

bozhidar14:11:23

That’s often the reason for problems like yours.

pez14:11:48

In the project I tried the plugin with, user.clj contains just this:

(ns routing-example.user
  (:use [figwheel-sidecar.repl-api :as ra]))

(defn start []
  (ra/start-figwheel!)
  (ra/cljs-repl "dev"))

(defn stop []
  (ra/stop-figwheel!))

bozhidar16:11:40

I’ll have to check figwheel-sidecar deps then. Likely it’s pulling the wrong version of nREPL.

bozhidar16:11:10

Yep, that’s messing everything up. If you remove this file all will be good.

bozhidar16:11:45

This loads tools.nrepl, which makes cider-nrepl believe you’re using tools.nrepl (as it checks if it’s loaded to decide which nREPL version to use).

bozhidar16:11:53

I’m pretty sure everything will work fine for you without this file.