I've just checked in the variable display for the debugger. It
was a lot of detail work, merging the way Eclipse & python think.
Final architecture is fairly simple.
From Eclipse's point of view, variables are arranged
hierarchically, with each variable belonging to a stack frame, or
another variable. The variables come in two flavors, simple &
container. The content of containers is obtained dynamically over
the network with GetVariablesCommand.
The debugger responds to GetVariableCommand by creating an
dictionary of variable contents, and returning this dictionary to
Eclipse. Right now, I know how to build dictionary for
dictionaries, objects & tuples. Unimplemented container objects
will get plea for volunteers to implement them. It is pretty
simple, and involves subsclassing Resolver class in pydevd_vars.
Current areas for improvement are:
- implementing unimplemented container variables
- smarter refresh when stepping. Right now, the variable
hierarchy closes after every step.
I've also checked in minor tweaks to the editor.
I hope to implement breakpoints by the end of the week, and then
I am ready for 0.4. Anything you'd like to check in before the
next release?
This will probably be my last big feature release. But more on
that later...
Aleks
|