cpython/Tools/idle
Guido van Rossum cc0ade8cd5 Change our special entries from <console#N> to <pyshell#N>.
Patch linecache.checkcache() to keep our special entries alive.
Add popup menu to all editor windows to set a breakpoint.
1998-10-19 02:26:16 +00:00
..
AutoExpand.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
AutoIndent.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
Bindings.py Get rid of conflicting ^X binding. Use ^W. 1998-10-16 20:08:34 +00:00
ClassBrowser.py Generalized the scrolled list which is the base for the class and 1998-10-15 23:27:08 +00:00
ColorDelegator.py Raise priority of 'sel' tag so its foreground (on Windows) will take 1998-10-19 02:22:41 +00:00
Debugger.py Use and pass through the 'force' flag to set_dict() where appropriate. 1998-10-19 02:24:40 +00:00
Delegator.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
EditorWindow.py Get rid of conflicting ^X binding. Use ^W. 1998-10-16 20:08:34 +00:00
FileList.py Add class browser functionality. 1998-10-13 16:32:44 +00:00
FrameViewer.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
help.txt Added history and completion commands. 1998-10-13 17:38:03 +00:00
HelpWindow.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
History.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
idle Add Unix main script and test program. 1998-10-10 18:58:15 +00:00
idle.pyw Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
IdleHistory.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
IOBinding.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
Outline.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
Percolator.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
PopupMenu.py Disable "Open stack viewer" and "help" commands. 1998-10-19 02:20:30 +00:00
PyShell.py Change our special entries from <console#N> to <pyshell#N>. 1998-10-19 02:26:16 +00:00
README Get rid of conflicting ^X binding. Use ^W. 1998-10-16 20:08:34 +00:00
ScrolledList.py Add close() method 1998-10-16 16:10:09 +00:00
SearchBinding.py Add parent argument to 'to to line number' dialog box. 1998-10-12 16:07:27 +00:00
StackViewer.py Add optional 'force' argument (default 0) to load_dict(). 1998-10-19 02:19:30 +00:00
tabnanny.py Print serious errors to stderr instead of stdout. 1998-09-14 16:22:21 +00:00
test.py Cosmetic change 1998-10-15 14:08:20 +00:00
UndoDelegator.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00
WidgetRedirector.py Initial checking of Tk-based Python IDE. 1998-10-10 18:48:31 +00:00

TO DO:

- "Recent documents" menu item
- use platform specific default bindings
- title and Windows menu should have base filename first
- restructure state sensitive code to avoid testing flags all the time
- integrated debugger
- object browser instead of current stack viewer
- save some user state (e.g. window and cursor positions, bindings)
- make backups when saving
- check file mtimes at various points
- interface with RCS/CVS/Perforce ???
- more search options: case [in]sensitive, fwd/back, string/regex
- global query replace
- incremental search
- more emacsisms:
  - reindent, reformat text etc.
  - M-[, M-] to move by paragraphs
  - smart stuff with whitespace around Return
  - filter region?
  - grep?
- status bar?
- better help?

Details:
    
- when there's a selection, left/right arrow should go to either
  end of the selection
- ^O should honor autoindent

Structural problems:

- too much knowledge in FileList about EditorWindow (for example)
- Several occurrences of scrollable listbox with title and certain
  behavior; should create base class to generalize this
- class browser could become an outline?

======================================================================

Comparison to PTUI
------------------

- PTUI's shell is worse:
  no coloring;
  no editing of multi-line commands;
  ^P seems to permanently remove some text from the buffer

- PTUI's undo is worse:
  no redo;
  one char at a time

- PTUI's framework is better:
  status line
  (not sure if I like the toolbar)

- PTUI's GUI is a tad ugly:
  I don't like the multiple buffers in one window model

- PTUI's help is better (HTML!)

- PTUI's search/replace is better (more features)

- PTUI's auto indent is better
  (understands that "if a: # blah, blah" opens a block)

- PTUI's key bindings are a bit weird (DEL to dedent a line!?!?!?)

- PTUI's fontify is faster but synchronous (and still too slow);
  also doesn't do as good a job if editing affects lines far below

- PTUI has more bells and whistles:
  open multiple
  append
  zap tabs
  fontify (you could argue it's not needed in my code)
  comment/uncomment
  modularize
  examine
  go