Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graphical debugger for Anaconda #554

Open
v-hunt opened this issue Oct 9, 2016 · 14 comments
Open

Graphical debugger for Anaconda #554

v-hunt opened this issue Oct 9, 2016 · 14 comments

Comments

@v-hunt
Copy link

v-hunt commented Oct 9, 2016

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)

@pradyunsg
Copy link
Contributor

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.

@DamnWidget
Copy link
Owner

As @pradyunsg already said, that os not an easy task as the Sublime Text 3 API graphical capabilities are limited (very limited in fact).

@v-hunt
Copy link
Author

v-hunt commented Oct 10, 2016

@DamnWidget I know that ST3 graphical capabilities are quite poor, but can we find a way to emulate graphical behavior via ST capabilities?

@DamnWidget
Copy link
Owner

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.

@divinites
Copy link

divinites commented Oct 11, 2016

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. 😞

By the way, @DamnWidget In Golconda, would it includes some built-in debugger?

@DamnWidget
Copy link
Owner

DamnWidget commented Oct 11, 2016

What do you mean @divinites? I am afraid that I don't understand your question.

@divinites
Copy link

@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?

@DamnWidget
Copy link
Owner

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.

@v-hunt
Copy link
Author

v-hunt commented Oct 12, 2016

@divinites What is Golconda? Could you be so kind to provide a link?

@DamnWidget
Copy link
Owner

@v-hunt
Copy link
Author

v-hunt commented Oct 12, 2016

@DamnWidget So, should we consider current Anaconda as legacy and look ahead to Golconda project only?

@DamnWidget
Copy link
Owner

DamnWidget commented Oct 12, 2016

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.

@DamnWidget
Copy link
Owner

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.

@EivindArvesen
Copy link

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants