tpope / vim-fireplace

fireplace.vim: Clojure REPL support
https://www.vim.org/scripts/script.php?script_id=4978
1.74k stars 139 forks source link

Fixed bug where fireplace#path was empty for me #332

Closed kovasap closed 5 years ago

kovasap commented 5 years ago

This basically adds another fallback option to get the classpath. I'm not sure exactly why the other options didn't work, but know that this one does! My problem was similar to this one:

https://stackoverflow.com/questions/28499823/vim-fireplace-cannot-find-source-files-when-jumping-to-symbols

but I'm not on windows and am using different versions for things.

tpope commented 5 years ago

I'm afraid it's not going to be that simple.

Do you have any symlinks that might be confusing it?

kovasap commented 5 years ago

Hmm, this solution does work for me in that I can go to the declaration of all symbols NOT defined in my current codebase (all dependencies) after I implemented it for myself. I am still trying to puzzle out how to get symbols defined in my codebase to be in the fireplace#path().

What do you mean by symlinks? One piece here that may be relevant is how I start up my repl. I use the following script:

start.bash:
    port=47788
    clj -A:dev:linux -m nrepl.cmdline -p $port &
    sleep 4 # give nrepl time to start before we try to connect
    lein repl :connect localhost:$port
    echo "killing nrepl..."
    pkill -f clojure # not the best way to do this...
    echo "killed nrepl"

The project I am working has its development environment set up with the clj CLI instead of leiningen (using deps.edn). The best way I found to get my environment working is by starting the clj nrepl and using lein to connect to it (for vim-fireplace's sake). Perhaps this is the issue? Does vim-fireplace support using the clj CLI?

tpope commented 5 years ago

I don't know the first thing about the clj CLI, it's a plausible culprit if it's doing something funny.

Try adding :echo repl.path() after the for repl in s:repls line and see if it outputs the class path you expect.

kovasap commented 5 years ago

hmm, it looks like doing what you said does produce a classpath that may be the exact same as my (System/getProperty ...) call, but the if statement that looks to see if the current buffer is in the path is not triggered. This lines up with my issue that with my edit I can find definitions in all dependencies, but not in my project. Perhaps my repl.path() does not return the files in my project for some reason? Do you know of a way to get this info into it?

tpope commented 5 years ago

repl.path() is basically just a more elaborate version of the code you inlined:

https://github.com/tpope/vim-fireplace/blob/05f53470cea1d6b23cb1fd2a8cb29c80ab81b8d0/autoload/fireplace/nrepl.vim#L42-L61

By "not triggered" I assume you mean s:includes_file() is returning false? What is the value of repl.path() and what is the full path to the current file your are editing?

kovasap commented 5 years ago

My repl.path() is:

['target', 'src', 'resources', '/home/kovas/.m2/repository/com/cognitect/transit-java/0.8.
332/transit-java-0.8.332.jar', '/home/kovas/.m2/repository/org/clojure/data.json/0.2.6/dat
a.json-0.2.6.jar', '/home/kovas/.m2/repository/org/clojure/clojure/1.10.0/clojure-1.10.0.j
ar', '/home/kovas/.m2/repository/defexample/defexample/1.7.0/defexample-1.7.0.jar', '/home
/kovas/.m2/repository/org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1.jar', '/home/kovas/.m2/rep
ository/joda-time/joda-time/2.9.9/joda-time-2.9.9.jar', '/home/kovas/.m2/repository/common
s-codec/commons-codec/1.11/commons-codec-1.11.jar', '/home/kovas/.m2/repository/org/clojur
e/tools.analyzer/0.6.9/tools.analyzer-0.6.9.jar', '/home/kovas/.m2/repository/com/bhauman/
cljs-test-display/0.1.1/cljs-test-display-0.1.1.jar', '/home/kovas/.m2/repository/org/ecli
pse/jetty/jetty-xml/9.4.12.v20180830/jetty-xml-9.4.12.v20180830.jar', '/home/kovas/.m2/rep
ository/com/bhauman/figwheel-repl/0.2.0/figwheel-repl-0.2.0.jar', '/home/kovas/.m2/reposit
ory/org/eclipse/jetty/jetty-servlet/9.4.12.v20180830/jetty-servlet-9.4.12.v20180830.jar',
'/home/kovas/.m2/repository/ring/ring-devel/1.7.1/ring-devel-1.7.1.jar', '/home/kovas/.m2/
repository/com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1
.3.jar', '/home/kovas/.m2/repository/org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-
0.2.44.jar', '/home/kovas/.m2/repository/co/deps/ring-etag-middleware/0.2.0/ring-etag-midd
leware-0.2.0.jar', '/home/kovas/.m2/repository/expound/expound/0.7.2/expound-0.7.2.jar', '
/home/kovas/.m2/repository/org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176.jar', '/home/
kovas/.m2/repository/org/clojure/tools.cli/0.3.5/tools.cli-0.3.5.jar', '/home/kovas/.m2/re
pository/us/bpsm/edn-java/0.4.7/edn-java-0.4.7.jar', '/home/kovas/.m2/repository/commons-f
ileupload/commons-fileupload/1.3.3/commons-fileupload-1.3.3.jar', '/home/kovas/.m2/reposit
ory/com/bhauman/figwheel-main/0.2.0/figwheel-main-0.2.0.jar', '/home/kovas/.m2/repository/
ring/ring-ssl/0.3.0/ring-ssl-0.3.0.jar', '/home/kovas/.m2/repository/org/codehaus/mojo/ani
mal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar', '/home/kovas/.m2/reposi
tory/org/eclipse/jetty/jetty-http/9.4.12.v20180830/jetty-http-9.4.12.v20180830.jar', '/hom
e/kovas/.m2/repository/org/eclipse/jetty/jetty-util/9.4.12.v20180830/jetty-util-9.4.12.v20
180830.jar', '/home/kovas/.m2/repository/com/taoensso/encore/2.91.0/encore-2.91.0.jar', '/
home/kovas/.m2/repository/org/clojure/tools.analyzer.jvm/0.7.2/tools.analyzer.jvm-0.7.2.ja
r', '/home/kovas/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/barbary
-watchservice-1.0.jar', '/home/kovas/.m2/repository/edna/edna/1.6.0/edna-1.6.0.jar', '/hom
e/kovas/.m2/repository/com/jsyn/jsyn/20170328/jsyn-20170328.jar', '/home/kovas/.m2/reposit
ory/ring-cors/ring-cors/0.1.12/ring-cors-0.1.12.jar', '/home/kovas/.m2/repository/com/goog
lecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar', '/home/kovas/.m2/repository/r
ing/ring-defaults/0.3.2/ring-defaults-0.3.2.jar', '/home/kovas/.m2/repository/org/clojure/
google-closure-library/0.0-20170809-b9c14c6b/google-closure-library-0.0-20170809-b9c14c6b.
jar', '/home/kovas/.m2/repository/io/aviso/pretty/0.1.33/pretty-0.1.33.jar', '/home/kovas/
.m2/repository/ring-basic-authentication/ring-basic-authentication/1.0.5/ring-basic-authen
tication-1.0.5.jar', '/home/kovas/.m2/repository/org/clojure/clojurescript/1.10.520/clojur
escript-1.10.520.jar', '/home/kovas/.m2/repository/org/eclipse/jetty/websocket/websocket-a
pi/9.4.12.v20180830/websocket-api-9.4.12.v20180830.jar', '/home/kovas/.m2/repository/ring/
ring-jetty-adapter/1.7.1/ring-jetty-adapter-1.7.1.jar', '/home/kovas/.m2/repository/common
s-io/commons-io/2.6/commons-io-2.6.jar', '/home/kovas/.m2/repository/org/clojure/tools.nam
espace/0.2.11/tools.namespace-0.2.11.jar', '/home/kovas/.m2/repository/nightlight/nightlig
ht/2.4.1/nightlight-2.4.1.jar', '/home/kovas/.m2/repository/com/google/jsinterop/jsinterop
-annotations/1.0.0/jsinterop-annotations-1.0.0.jar', '/home/kovas/.m2/repository/org/lwjgl
/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-linux.jar', '/home/kovas/.m2/repository/org/lwjgl
/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-linux.jar', '/home/kovas/.m2/repository/org
/eclipse/jetty/websocket/websocket-client/9.4.12.v20180830/websocket-client-9.4.12.v201808
30.jar', '/home/kovas/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.7/jackson
-core-2.8.7.jar', '/home/kovas/.m2/repository/clj-time/clj-time/0.14.3/clj-time-0.14.3.jar
', '/home/kovas/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/9.4.12.v20180
830/websocket-servlet-9.4.12.v20180830.jar', '/home/kovas/.m2/repository/org/lwjgl/lwjgl-s
tb/3.2.1/lwjgl-stb-3.2.1-natives-linux.jar', '/home/kovas/.m2/repository/org/clojars/oakes
/sound-engine-clj/0.4.0-1/sound-engine-clj-0.4.0-1.jar', '/home/kovas/.m2/repository/org/e
clipse/jetty/jetty-security/9.4.12.v20180830/jetty-security-9.4.12.v20180830.jar', '/home/
kovas/.m2/repository/net/mikera/clojure-utils/0.8.0/clojure-utils-0.8.0.jar', '/home/kovas
/.m2/repository/org/mozilla/rhino/1.7R5/rhino-1.7R5.jar', '/home/kovas/.m2/repository/com/
taoensso/truss/1.5.0/truss-1.5.0.jar', '/home/kovas/.m2/repository/org/clojars/oakes/meico
/0.3.5-1/meico-0.3.5-1.jar', '/home/kovas/.m2/repository/ring/ring-headers/0.3.0/ring-head
ers-0.3.0.jar', '/home/kovas/.m2/repository/org/clojure/google-closure-library-third-party
/0.0-20170809-b9c14c6b/google-closure-library-third-party-0.0-20170809-b9c14c6b.jar', '/ho
me/kovas/.m2/repository/hiccup/hiccup/1.0.5/hiccup-1.0.5.jar', '/home/kovas/.m2/repository
/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1.jar', '/home/kovas/.m2/repository/binaryage/env-config/
0.2.2/env-config-0.2.2.jar', '/home/kovas/.m2/repository/djy/djy/0.1.4/djy-0.1.4.jar', '/h
ome/kovas/.m2/repository/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1.jar', '/home/kova
s/.m2/repository/com/google/javascript/closure-compiler-externs/v20180805/closure-compiler
-externs-v20180805.jar', '/home/kovas/.m2/repository/org/javassist/javassist/3.18.1-GA/jav
assist-3.18.1-GA.jar', '/home/kovas/.m2/repository/org/clojure/java.classpath/0.3.0/java.c
lasspath-0.3.0.jar', '/home/kovas/.m2/repository/ns-tracker/ns-tracker/0.3.1/ns-tracker-0.
3.1.jar', '/home/kovas/.m2/repository/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-
linux.jar', '/home/kovas/.m2/repository/com/google/guava/guava/25.1-jre/guava-25.1-jre.jar
', '/home/kovas/.m2/repository/binaryage/devtools/0.9.10/devtools-0.9.10.jar', '/home/kova
s/.m2/repository/clj_manifest/clj_manifest/0.2.0/clj_manifest-0.2.0.jar', '/home/kovas/.m2
/repository/org/msgpack/msgpack/0.6.12/msgpack-0.6.12.jar', '/home/kovas/.m2/repository/or
chestra/orchestra/2018.12.06-2/orchestra-2018.12.06-2.jar', '/home/kovas/.m2/repository/co
m/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar', '/home/kovas/.m2/repos
itory/com/taoensso/timbre/4.10.0/timbre-4.10.0.jar', '/home/kovas/.m2/repository/com/cogni
tect/transit-clj/0.8.309/transit-clj-0.8.309.jar', '/home/kovas/.m2/repository/play-cljc/p
lay-cljc/0.3.0/play-cljc-0.3.0.jar', '/home/kovas/.m2/repository/args4j/args4j/2.0.26/args
4j-2.0.26.jar', '/home/kovas/.m2/repository/crypto-random/crypto-random/1.2.0/crypto-rando
m-1.2.0.jar', '/home/kovas/.m2/repository/ring/ring-codec/1.1.1/ring-codec-1.1.1.jar', '/h
ome/kovas/.m2/repository/eval-soup/eval-soup/1.5.0/eval-soup-1.5.0.jar', '/home/kovas/.m2/
repository/ring/ring-anti-forgery/1.3.0/ring-anti-forgery-1.3.0.jar', '/home/kovas/.m2/rep
ository/com/bhauman/spell-spec/0.1.1/spell-spec-0.1.1.jar', '/home/kovas/.m2/repository/ig
lu/iglu/0.2.0/iglu-0.2.0.jar', '/home/kovas/.m2/repository/crypto-equality/crypto-equality
/1.0.0/crypto-equality-1.0.0.jar', '/home/kovas/.m2/repository/org/checkerframework/checke
r-qual/2.0.0/checker-qual-2.0.0.jar', '/home/kovas/.m2/repository/net/java/dev/jna/jna/3.2
.2/jna-3.2.2.jar', '/home/kovas/.m2/repository/net/mikera/vectorz-clj/0.48.0/vectorz-clj-0
.48.0.jar', '/home/kovas/.m2/repository/org/bitbucket/daveyarwood/fluid-r3/0.1.1/fluid-r3-
0.1.1.jar', '/home/kovas/.m2/repository/com/bhauman/figwheel-core/0.2.0/figwheel-core-0.2.
0.jar', '/home/kovas/.m2/repository/org/eclipse/jetty/jetty-client/9.4.12.v20180830/jetty-
client-9.4.12.v20180830.jar', '/home/kovas/.m2/repository/net/mikera/mathz/0.3.0/mathz-0.3
.0.jar',  '/home/kovas/.m2/repository/org/eclipse/jetty/jetty-io/9.4.12.v20180830/jetty-io-
9.4.12.v20180830.jar', '/home/kovas/.m2/repository/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-nativ
es-linux.jar', '/home/kovas/.m2/repository/org/clojure/tools.reader/1.3.2/tools.reader-1.3
.2.jar', '/home/kovas/.m2/repository/net/mikera/vectorz/0.66.0/vectorz-0.66.0.jar', '/home
/kovas/.m2/repository/compliment/compliment/0.3.8/compliment-0.3.8.jar', '/home/kovas/.m2/
repository/org/clojars/oakes/alda-core/0.3.10-1/alda-core-0.3.10-1.jar', '/home/kovas/.m2/
repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar', '/home/kova
s/.m2/repository/nrepl/nrepl/0.5.3/nrepl-0.5.3.jar', '/home/kovas/.m2/repository/clj-stack
trace/clj-stacktrace/0.2.8/clj-stacktrace-0.2.8.jar', '/home/kovas/.m2/repository/com/goog
le/javascript/closure-compiler-unshaded/v20180805/closure-compiler-unshaded-v20180805.jar'
, '/home/kovas/.m2/repository/org/eclipse/jetty/websocket/websocket-server/9.4.12.v2018083
0/websocket-server-9.4.12.v20180830.jar', '/home/kovas/.m2/repository/dynadoc/dynadoc/1.5.
5/dynadoc-1.5.5.jar', '/home/kovas/.m2/repository/org/eclipse/jetty/websocket/websocket-co
mmon/9.4.12.v20180830/websocket-common-9.4.12.v20180830.jar', '/home/kovas/.m2/repository/
net/mikera/randomz/0.3.0/randomz-0.3.0.jar', '/home/kovas/.m2/repository/com/google/protob
uf/protobuf-java/3.0.2/protobuf-java-3.0.2.jar', '/home/kovas/.m2/repository/ring/ring-ser
vlet/1.7.1/ring-servlet-1.7.1.jar', '/home/kovas/.m2/repository/org/clojure/core.memoize/0
.5.9/core.memoize-0.5.9.jar', '/home/kovas/.m2/repository/hawk/hawk/0.2.11/hawk-0.2.11.jar
', '/home/kovas/.m2/repository/ring/ring/1.7.1/ring-1.7.1.jar', '/home/kovas/.m2/repositor
y/org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7.jar', '/home/kovas/.m2/repos
itory/nrepl/bencode/1.0.0/bencode-1.0.0.jar', '/home/kovas/.m2/repository/org/eclipse/jett
y/jetty-server/9.4.12.v20180830/jetty-server-9.4.12.v20180830.jar', '/home/kovas/.m2/repos
itory/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar', '/home/kovas/.m2/repository
/ring/ring-core/1.7.1/ring-core-1.7.1.jar', '/home/kovas/.m2/repository/org/clojure/core.c
ache/0.6.5/core.cache-0.6.5.jar', '/home/kovas/.m2/repository/org/ow2/asm/asm-all/4.2/asm-
all-4.2.jar', '/home/kovas/.m2/repository/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1.jar'
, '/home/kovas/.m2/repository/org/clojure/core.async/0.4.490/core.async-0.4.490.jar', '/ho
me/kovas/.m2/repository/org/clojure/data.codec/0.1.1/data.codec-0.1.1.jar', '/home/kovas/.
m2/repository/com/google/code/gson/gson/2.7/gson-2.7.jar', '/home/kovas/.m2/repository/htt
p-kit/http-kit/2.3.0/http-kit-2.3.0.jar']

and my project files are in /home/kovas/clojure/hello-world/src/hello_world (the file i am editing is core.cljc). It looks like this is not in the path for some reason.

tpope commented 5 years ago

The issue is that those first 3 paths are relative rather than absolute. Any idea why that might be?

kovasap commented 5 years ago

Good question; I'm not sure why. Perhaps something about the clj CLI. Do you know of any clojure functions that will return a classpath with only absolute paths? Or another thought is to use (System/getProperty "user.dir") and prepend it to all relative paths in the fireplace#path() function (or repl.path()?).

What do you think would make the most sense?

tpope commented 5 years ago

Do you have Cider installed? My first instinct is the Cider classpath op should take responsibility for that.

kovasap commented 5 years ago

i did have the cider/cider-nrepl package in my lein/profiles.clj file and in my deps.edn, but when trying to run clj -A:dev:linux -m nrepl.cmdline -p 123124--middleware "[cider.nrepl/cider-middleware]", I got the following error:

Exception in thread "main" Syntax error compiling at (cider/nrepl.clj:1:1).
        at clojure.lang.Compiler.load(Compiler.java:7647)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:372)
        at clojure.lang.RT.load(RT.java:463)
        at clojure.lang.RT.load(RT.java:428)
        at clojure.core$load$fn__6824.invoke(core.clj:6126)
        at clojure.core$load.invokeStatic(core.clj:6125)
        at clojure.core$load.doInvoke(core.clj:6109)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5908)
        at clojure.core$load_one.invoke(core.clj:5903)
        at clojure.core$load_lib$fn__6765.invoke(core.clj:5948)
        at clojure.core$load_lib.invokeStatic(core.clj:5947)
        at clojure.core$load_lib.doInvoke(core.clj:5928)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$load_libs.invokeStatic(core.clj:5985)
        at clojure.core$load_libs.doInvoke(core.clj:5969)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$require.invokeStatic(core.clj:6007)
        at clojure.core$require.doInvoke(core.clj:6007)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at nrepl.cmdline$require_and_resolve.invokeStatic(cmdline.clj:172)
        at nrepl.cmdline$require_and_resolve.invoke(cmdline.clj:163)
        at nrepl.cmdline$fn__1226.invokeStatic(cmdline.clj:177)
        at nrepl.cmdline$fn__1226.invoke(cmdline.clj:177)
        at clojure.core$map$fn__5847$fn__5848.invoke(core.clj:2742)
        at clojure.core$map$fn__5847$fn__5848.invoke(core.clj:2742)
        at clojure.lang.PersistentVector.reduce(PersistentVector.java:343)
        at clojure.core$transduce.invokeStatic(core.clj:6883)
        at clojure.core$into.invokeStatic(core.clj:6899)
        at clojure.core$into.invoke(core.clj:6887)
        at nrepl.cmdline$__GT_mw_list.invokeStatic(cmdline.clj:204)
        at nrepl.cmdline$__GT_mw_list.invoke(cmdline.clj:202)
        at nrepl.cmdline$build_handler.invokeStatic(cmdline.clj:213)
        at nrepl.cmdline$build_handler.invoke(cmdline.clj:206)
        at nrepl.cmdline$run.invokeStatic(cmdline.clj:266)
        at nrepl.cmdline$run.invoke(cmdline.clj:240)
        at nrepl.cmdline$_main.invokeStatic(cmdline.clj:296)
        at nrepl.cmdline$_main.doInvoke(cmdline.clj:293)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.lang.Var.applyTo(Var.java:705)
        at clojure.core$apply.invokeStatic(core.clj:665)
        at clojure.main$main_opt.invokeStatic(main.clj:491)
        at clojure.main$main_opt.invoke(main.clj:487)
        at clojure.main$main.invokeStatic(main.clj:598)
        at clojure.main$main.doInvoke(main.clj:561)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.lang.Var.applyTo(Var.java:705)
        at clojure.main.main(main.java:37)
Caused by: java.io.FileNotFoundException: Could not locate nrepl/middleware/caught__init.class, nrepl/middleware/caught.clj or nrepl/middleware/caught.cljc on classpath.
        at clojure.lang.RT.load(RT.java:466)
        at clojure.lang.RT.load(RT.java:428)
        at clojure.core$load$fn__6824.invoke(core.clj:6126)
        at clojure.core$load.invokeStatic(core.clj:6125)
        at clojure.core$load.doInvoke(core.clj:6109)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5908)
        at clojure.core$load_one.invoke(core.clj:5903)
        at clojure.core$load_lib$fn__6765.invoke(core.clj:5948)
        at clojure.core$load_lib.invokeStatic(core.clj:5947)
        at clojure.core$load_lib.doInvoke(core.clj:5928)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$load_libs.invokeStatic(core.clj:5985)
        at clojure.core$load_libs.doInvoke(core.clj:5969)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$require.invokeStatic(core.clj:6007)
        at clojure.core$require.doInvoke(core.clj:6007)
        at clojure.lang.RestFn.invoke(RestFn.java:619)
        at cider.nrepl$eval1265$loading__6706__auto____1266.invoke(nrepl.clj:1)
        at cider.nrepl$eval1265.invokeStatic(nrepl.clj:1)
        at cider.nrepl$eval1265.invoke(nrepl.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:7176)
        at clojure.lang.Compiler.eval(Compiler.java:7165)
        at clojure.lang.Compiler.load(Compiler.java:7635)
        ... 50 more
rlwrap: error: read error on master pty: Input/output error

This makes me think my cider is not installed correctly. I'll try to debug this; perhaps it is the reason why my paths are absolute!

Is this what you meant by your last comment? Is this middleware important? If not, is there a way to verify that cider is actually being used by vim-fireplace correctly I can try?

kovasap commented 5 years ago

ok i think i solved my problem. the issue seemed to be that I had nrepl/nrepl as a dependency in my deps.edn. this seemed to clash with the cider-nrepl package somehow. once I removed that and added cider/cider-nrepl {:mvn/version "0.21.1"} to my deps.edn and --middleware "[cider.nrepl/cider-middleware]" to my clj call, everything works as expected without the changes in this PR.

Thanks so much for taking the time to help me through this!