[Idle-dev] Erik Thompson's opinions on IDLE

Tal Einat taleinat at gmail.com
Thu Dec 7 23:09:14 CET 2006

On 12/7/06, Michael Foord <fuzzyman at voidspace.org.uk> wrote:
> Kurt B. Kaiser wrote:
> > "Tal Einat" <taleinat at gmail.com> writes:
> [snip..]
> > My top items:
> >
> Even a faked tab like the IDLE dialogs would be fine. :-)

I've actually been working on this lately. I took to enhancing tabpage.py,
which is what the config dialog uses, and added some features:

* Tab panes with several rows of tabs (optional)
* Dynamic tab rows (optional) - rows of tabs are added or removed as needed,
currently according to a configurable number of tabs per row.
* Simpler, more Pythonic API
* Two placements methods for the inner pages - grid.raise and
pack/pack_forget. Each creates different behavior, and I couldn't decide
between them, so I made it configurable :)

The code still needs quite a bit of work, its very raw right now - I just
wanted to get it working for the extension configuration dialog I was
working on. Still, IMO its a huge improvement, and perhaps a good step in
the direction of reuseability?

(Oh yea - I also made a dialog for extension configuration. :D)

I hadn't mentioned it until now because interest was low and I'm still
working on it. If you like I can send the code / submit a patch.

> Incremental search (in a text entry widget in the bottom status bar).
> >
> +1 million. :-)
> Not because I need it, but just because it's the best way.

I've been working some on that too. I've created a Search Bar extension
which can be used instead of the Find & Replace dialogs. The search bar
shows a thin bar on the bottom of the window, with an entry box and the
usual options (wrap, direction, case-sensitive...). For replacing, the bar
is twice as thick, with two entries and extra replacement options (replace,
find next, replace all).

As for incremental search, currently the search bar's engine highlights the
hits (and jumps) only when a find command is given. Having this done for
every key typed should be easy based on this, but I haven't implemented it

> Display/modification of sys.argv, probably in the status bar, or maybe
> > in a separate status bar which would appear when activated.
> >

This is a very good direction IMO. One of the things IDLE is most useful for
is writing scripts, and being able to run them with a given sys.argv, easily
visible and changeable, would be bery helpful. I think this should be a
toggle-able option, to reduce clutter.

> > A solid way to copy code from the Shell to an edit window (smart
> > copy/paste doing tab conversion where necessary?).
> >

I believe the opposite direction - pasting code to the Shell - needs some
improvement too. For instance, pasting code with empty lines to the shell
doesn't work, you have to remove the empty lines first.

> A way to cut text in the shell without restarting it when it gets too
> > full (You lose the history when you restart the shell.  Maybe save
> > history across restarts?)

This is exactly what the Squeezer extension does! (along with not
having IDLE hang on large amounts of output)

Currently it only allow squeezing of stdout or stderr text, but I have
already discussed requests for it to be able to sqeeze arbitrarty text in
the shell, seems like it should be possible without too much of a hassle.

> > Any comments or votes on the above?
> >

+1 (or more?) on all of these.

IDLE has somewhat of a performance problem, which can be annoying. Sometimes
when you type fast, the text takes time to catch up with you. I know several
people who stopped using IDLE because of this. How about investiaging ways
to improve speed?

- Tal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/idle-dev/attachments/20061208/7fc497dd/attachment.html 

More information about the IDLE-dev mailing list