Juno.jl icon indicating copy to clipboard operation
Juno.jl copied to clipboard

Debugger enhancements ideas

Open aviatesk opened this issue 6 years ago • 5 comments

Couple of ideas to improve our debugger:

  • [x] Datatip for local bindings: https://github.com/JunoLab/Atom.jl/pull/173
  • [ ] Inline evaluation including local bindings during debugging?:
    • it would be nice if selection-based inline evaluation can handle local bindings in a current scope function (as in the debugger prompt)
  • ~~[ ] Reverse the order of workspace items stack ?: https://github.com/JunoLab/Atom.jl/pull/175~~: Discarded
  • [ ] Watch list
    • Debugger.jl already has this feature: it would also be much fancier if we can use this feature in Juno as well with a friendly UI.
  • ~~[ ] Complete local completions: MethodCompletions / ModuleCompletions etc including local bindings: https://github.com/JunoLab/Atom.jl/pull/181~~: Discarded

Feel free to add your own :)

aviatesk avatar Sep 15 '19 11:09 aviatesk

If I may add: A visual indicator that the file being stepped through is not the same code the debugger is running. (Not saved or module needs to be recompiled).

BioTurboNick avatar Sep 30 '19 18:09 BioTurboNick

@BioTurboNick: related, https://github.com/timholy/Revise.jl/pull/345. But that won't help with the "not saved" part.

timholy avatar Oct 02 '19 07:10 timholy

May I add idea to execute code in debug by ctrl+enter? Now when I am at breakpoint and want to execure code, I need to copy-paste it into the REPL, becaue ctrl+enter tried to execute it in global context, even during debugging.

racinmat avatar Dec 26 '19 20:12 racinmat

yeah I guess that's would be good and could easily be implemented. Will try to do when I have time.

aviatesk avatar Dec 26 '19 20:12 aviatesk

Here's one: allow debugger to start at the top script level by clicking a button.

Naively this can be done by wrapping the whole script in a function and Juno.@enter that function. However I'm not sure how global can be dealt with, and I recall the scope rules are different at global vs. inside a function, so it's probably more complicated than that.

zhopan77 avatar Jan 24 '20 20:01 zhopan77