[Idle-dev] Big change to IDLE Shell

Tal Einat taleinat at gmail.com
Thu May 20 17:19:29 EDT 2021


On Wed, May 19, 2021 at 4:01 AM Mark Roseman <mark at markroseman.com> wrote:
>
>
>
> On May 17, 2021, at 10:22 PM, Terry Reedy <tjreedy at udel.edu> wrote:
>> 5) Tabbed edit windows (already in IdleX).
>>
>> Tabbed windows, with not just editors on tabs, was one of my initial goals 11 years ago, along with using ttk widgets (done).  Other things, including a bit of opposition, keep intervening.  I will increment its priority.
>>
>> After Roger Sewey, IdleX author, got the commit bit, at my suggestion, he fixed about 10 issues in a few months, and then disappeared and quit contributing.  To do tabbed windows, he must have made some preliminary changes that could have already been merged.  (Separate the editor window into a menu window and a frame.)  But no one else has yet dived into his tabbed window code to see if it is usable.  Mark Roseman also said he did the same but I have not seen his code either.
>>
>> Part of the holdup is that the current class inheritance tree is wrong and needs to be refactored, without breaking things.
>>
>
> Is there interest in building something akin to https://tkdocs.com/images/idle_onewindow.png into IDLE in the foreseeable future?
>
> I’ve considered updating the code I did a while back (https://github.com/roseman/idle) but getting it from where it was to a series of patches that would actually find it’s way into IDLE I thought would be challenging due to multiple steps needed.
>
> As you say, restructuring things so that editors, shells, debuggers etc. are assumed to fit in frames and not be their own toplevel was a starting point (e.g., I introduced a generic ‘Component’ class).
>
> And to be honest, how to determine what is considered an “acceptable" UI change for IDLE remains wholly opaque to me. There are still many things in there that leave me scratching my head.
>
> Some things would be simplified now (e.g., at that point ttk wasn’t assumed) but I’m still not confident about reworking that, with proper testing, etc. to the point that it would be accepted into the main codebase.

Hi Mark, good to have you join this conversation!

I've been through much of what you describe, including having my own
fork of IDLE and trying to bring some of its improvements into
CPython's IDLE... Like Roger Serwy, I was also given commit
permissions to CPython to do this work, but could only manage to do
rather little before running out of time and energy. Partly this is
because getting something into CPython's IDLE is much harder, more so
than I expected. Still, I've been able to continue contributing over
the years.

In recent years Terry J. Reedy has taken the lead on IDLE. Terry has
been doing a fantastic job of moving IDLE forward while also fixing
many bugs and making it more robust. He's also been very responsible
in deciding which changes to make. Thanks to his stewardship, I think
now is the best time in the past 15 years or so to attempt to bring
such improvements into IDLE proper.

I encourage you to try! Start with something significant, but not
huge. Perhaps discuss this with us in advance, so that we can decide
together what we'd like done and on the general approach, to avoid
working a lot on something that is eventually rejected (I've gone
through that too many times!).

- Tal


More information about the IDLE-dev mailing list