Open v-hunt opened 7 years ago
How hard to implement one?
AFAIK, Sublime Text's API doesn't really provide anything to be able to provide a nice debugging interface. Unless you would be fine with a text-based debugging, like https://github.com/martomo/SublimeTextXdebug, which would be a very different, a non-trivial task itself.
As @pradyunsg already said, that os not an easy task as the Sublime Text 3 API graphical capabilities are limited (very limited in fact).
@DamnWidget I know that ST3 graphical capabilities are quite poor, but can we find a way to emulate graphical behavior via ST capabilities?
If you feel brave enough (and you copromise with it's maintenance) I will accept PRs to implement that feature, I could even give you a hand with anaconda's specifics but there is too much already in my plate as to think to implement something like that.
Actually, I think something like SublimeTextXdebug would be ideal, since we do not have any decent debugger for python in Sublime text at this moment. In many cases, I write codes in sublime text and open Pycharm for debugging. Of course, developing a Xdebug for Python is non-trivial at all, I would be very happy to participate if I had enough time. :disappointed:
By the way, @DamnWidget In Golconda, would it includes some built-in debugger?
What do you mean @divinites? I am afraid that I don't understand your question.
@DamnWidget I mean, besides auto-completion and refactoring, which you have told us that Anaconda 3 will have better support for, are you going to integrate an advanced debugger as well?
I am not planing to integrate anything like that for now but if you have any idea about how to implement it feel free to work on it :)
Golconda is able to execute anything that you pass as the Golconda's plugin entry point (like docker) so you can do it in whatever language that you wish, anyway, I am still designing/writing it with a reference plugin implementation (what is now anaconda_go) so probably you want to wait until that is done and released.
@divinites What is Golconda? Could you be so kind to provide a link?
@DamnWidget So, should we consider current Anaconda as legacy and look ahead to Golconda project only?
It's early to define anaconda as legacy, there are lots of things that need to be done to consider anaconda as legacy but big features like this request will be taken into consideration in the future. You have to take into account that we highly depend on Package Control that lately is kind of slow reviewing and merging the PRs so the transition from anaconda to golconda is not gonna be fast.
I took a look to rpdb2
in my lunch time yesterday and it seems to get stacked if the Python interpreter gets stacked so if for example your Python interpreter gets blocked in a system call to the OS rpdb2
is pretty much useless.
Anyway, this is something that I always wanted to do but I was never in the mood, I even opened myself the oldest non resolved issue in this tracker the issue #54 that is still sitting there at the bottom of the list, @eivind88 was looking into some kind of variable inspector back in 2015 but I guess he ran out of free time or motivation.
This project is huge, I work not only on anaconda but in anaconda_php, anaconda_go and anaconda_rust each of then with their roadmaps and bugs, I am trying to decouple the anaconda's JsonServer and create a platform to make possible to integrate what today is known as the anaconda's JsonServer into any text editor with minimal effort. As you guys can understand I am the almost unique developer I can't do everything by myself but this is a thing that I really would like to integrate into the plugin some day.
@DamnWidget Terribly sorry for responding so late.
I ran out of time back in 2015, and kinda got lost in the POC i GIF'ed in the last comment on issue #54.
I didn't really get far with regards to a variable inspector; I just thought a bit about how I could make a limited demo with the then limited UI, e.g. hooking globals/locals into a panel or something like that. The plugin API has improved somewhat since then, though - now offering permanent panels, inline phantoms and whatnot.
As a sidenote, I'm currently working on an implementation of inline code evaluation and more via Jupyter integration, which I don't think would be a appropriate for Anaconda.
I know that
pdb/ipdb
is suitable for many cases, but graphical debugger is more convenient tool, especially for big projects. How hard to implement one? As for me, this is only one thing left that doesn't allow to consider Anaconda as an full-featured enterprise IDE.The only one idea that came into my mind is to develop the Sublime client to
rpdb2
server (A thing like Winpdb graphical client, but with Sublime Text 3 interface)