calva

2026-05-28T10:55:41.345119Z

@pez or @brandon.ringe please review https://github.com/BetterThanTomorrow/calva/pull/3227

❀️ 2
πŸ™ 2
bringe 2026-05-28T16:33:37.331969Z

Thanks! I want to take a closer look and maybe test it later this evening, unless pez gets to it sooner.

2026-05-29T14:00:45.410559Z

@pez @brandon.ringe a couple of days ago, I managed to extend the current Calva debugger to support adding breakpoints through the UI. It works similarly to the instrumentation form used for debugging, but instead of inserting #debug, it inserts #break. It also supports conditional breakpoints. Do you think it would make sense for me to continue working on this extension for the Calva debugger?

pez 2026-05-29T14:08:33.872809Z

@vnareiko.lt that sounds great!

πŸ‘ 1
pez 2026-05-29T14:12:45.358709Z

A thing that I have tried pretty hard, but failed at, regarding the debugger, is to enable the stack frames. Just mentioning that, in case you get addicted to fixing things with the debugger. πŸ˜ƒ

2026-05-29T14:13:32.029629Z

Ok. Will take that into account πŸ™‚

bringe 2026-05-29T19:13:25.417439Z

@vnareiko.lt Sounds interesting! How does it utilize the UI for this?

bringe 2026-06-01T16:17:23.582599Z

Very cool! Can that workflow support adding a breakpoint to an inner form on a given line, and not just an outer form? Like

(filter (fn [x] #break (> x 1)) [1 2])

bringe 2026-06-01T16:18:12.500609Z

Even if not, I think the functionality is useful even with that limitation. I'm just curious.

pez 2026-06-01T16:31:48.075899Z

VS Code breakpoint UI can be per statement which should translate to per form for us. So here’s guessing that it is possible. πŸ˜ƒ

🀞 1
πŸŽ‰ 1
2026-06-02T07:03:00.447859Z

I will create a feature request in GitHub and try to complete the implementation. If you have any suggestions, questions, or additional requirements, please add them so that I can create a proper issue that captures all requirements.

2026-06-02T07:04:54.837329Z

Also, if you have any code snippets that cover edge cases, please share them with me so I can use them for testing purposes.

pez 2026-06-02T07:13:13.995849Z

There is a potential Ux issue with that the debugger is JVM Clojure only, not available for ClojureScript or any other dialect. We should understand if the breakpoints UI can be dynamically enabled, or if it is a static only thing. If the former, all good, we only enable it when the debugger op/ops is available in the nrepl server. If the latter it is not a show stopper, but at least we need to figure out how to document it/show info when breakpoints are placed, etc.

2026-06-02T07:16:47.683499Z

Since the debugger is JVM-only, the proper implementation would be to enable breakpoints dynamically and document this behavior as well. Will check if it is possible to have a dynamic behavior :)

pez 2026-06-02T07:19:22.127389Z

Small nuance (to borrow an expression from my friend Opus): I’d label it as nrepl-server dependent, rather than JVM. So if some other dialect starts to support debugging, we shouldn’t need to update Calva.

πŸ‘ 1