Open jsadusk opened 3 months ago
I submitted a PR to fix this: https://github.com/svaante/dape/pull/148
My PR doesn't actually work, because it prevents mapping from local back to remote. "Remote" files in this context are symlinks in a bazel cache for a specific run target, local files are in the project repo. I am not sure how to find a mapping back from a project repo file to the bazel cache in an automatic fashion. However each separate run target gets its own sandbox directory, so putting a remote prefix in a config is not feasible. I'm searching for a way to build a good bazel config. The portion of the above PR that adds tramp prefix does seem to be good however.
Which version of dape
are you using?
Dape detects if command-cwd
is by tramp
and sets prefix-local
prefix-remote
.
This is done in dape-config-tramp
I am not sure why this does not work in your case.
I'm looking at the code and I think the issue is I'm trying to do an attach to an already running debugpy, so it doesn't look like command-cwd
gets set:
https://github.com/svaante/dape/blob/master/dape.el#L92
Also, because I'm trying to work with bazel's insane sandbox directory, I'm setting prefix-local and prefix-remote, which I think prevents that auto set.
Aside, would it be possible to make prefix-local and prefix-remote be lambdas? I'm struggling with making an automatic way to determine the sandbox directory path conversion with a simple string replacement.
Oh and I currently have dape master checked out in my straight
repo.
Deleting my previous issue because I have a working config, it is just very manual and I'm trying to figure out if there's a way to do this automatically.
Here's my use case. I am developing python, remotely via tramp over ssh, and my python is being launched by the bazel build system. This has a few implications:
bazel run
with a config option for debugpy. As a result, an attach config is necessary, and the debugpy config entry doesn't workGiven all this, I was able to make dape work, beautifully I might add, with this config:
(paths are not real for security reasons)
Setting
prefix-local
andprefix-remote
made everything work. But there's no reason those can't be automatically determined. First,/ssh:dev:
is in the project root, but it looks likedape--path
doesn't make use of the project dir. Second, the file returned by the debugger inside the sandbox is a symlink. I think ifdape-path
followed symlinks it would be able to resolve this easily.Does this seem like a reasonable enhancement? I may try to make a PR myself to do this if you don't mind.