Closed kovasap closed 5 years ago
I'm afraid it's not going to be that simple.
Do you have any symlinks that might be confusing it?
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?
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.
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?
repl.path()
is basically just a more elaborate version of the code you inlined:
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?
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.
The issue is that those first 3 paths are relative rather than absolute. Any idea why that might be?
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?
Do you have Cider installed? My first instinct is the Cider classpath op should take responsibility for that.
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?
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!
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.