Open TheJoeSchr opened 1 year ago
I'm actually investigating Clojure DAP support at the moment, but it has nothing to do with Conjure and wouldn't benefit from it in any way as far as I can tell. DAP is entirely seperate to REPL evals as far as I know so far 🤔 https://github.com/Olical/clojure-dap
On reflection, I see what you're talking about now. I don't think this would ever be a sort of magically "if you have DAP it just uses that" sort of thing, instead it would be an entirely different client called conjure.client.python.dap
, probably. So it would requiring copy/paste/editing an existing client and mapping the eval
method of the client to call the dapui
module's function.
Afraid there's no easy one line fix here, it requires a bit of thought and experimentation, but it's certainly possible.
Why do you want to lean on DAP specifically? Just so you can have evals + debugging in the same context? I guess that would make sense and will be the behaviour with my Clojure version since Conjure + DAP will both connect to the same running nREPL.
First of all, thanks so much for taking the time and reflecting on what I meant. I sometimes fail to communicate my intentions, with language not native and general laziness :smile:
I have https://github.com/Olical/clojure-dap
in my .vimrc since you basically created it, ready to load ;)
Why do you want to lean on DAP specifically? Just so you can have evals + debugging in the same context? I guess that would make sense and will be the behaviour with my Clojure version since Conjure + DAP will both connect to the same running nREPL.
yes that's what I meant. Just for further reference, here is my dreamworkflow. For python. Because afaik it's a clojure is already pretty great. with REPL based debugging, where you can still step into a long running program IF you had the foresight to run with nREPL.
conjure
+ debugger REPL (so all context, libraries, etc is loaded)
4b. until bug is fixeddebugpy
autoReload: { enabled: true }
)I mean, if the same is possible by just using conjure with python, I would be happy as well. But I don't know how I could start a main.py
with complex args and long running loop so I then latter can jack-in to it's REPL via conjure. Maybe I'm mixing concepts.
Maybe pre-loading something like this to every process and then connect via conjure is an easier approach: https://github.com/ionelmc/python-manhole
Afraid there's no easy one line fix here, it requires a bit of thought and experimentation, but it's certainly possible.
Also I forgot to say, I'm of course not really expecting you to support this usecase out of box. But if you could point me into the right direction, I may be able to cobble something together and then share via extension. Also just knowing it's possible helps
Hi,
I love this extension. So much that I also want to use it when working with other language than clojure. I know there is already support for python, but when working on bigger projects it's often needed to debug into before you are at the right part. so just using REPL is not quite working.
long story short, there is this great debugger extension
nvim-dap
andnvim-dap-ui
, so no need forconjure
to redo this work. but alsoconjure
does a really good job of selecting expression, running them, posting results as virtual text, etc.So I think the ideal solution would be, if
conjure
could just used the REPL already running bynvim-dap
. On there readme, they have a snippet how to send it to the REPL:vnoremap <M-k> <Cmd>lua require("dapui").eval()<CR>
from: https://github.com/mfussenegger/nvim-dap-ui#evaluate-expressionHow could I tell
conjure
to use this instead of starting it's own python REPL? Ideally detecting ifnvim-dap
is running or not!Thanks for your great work!