Thu Apr 22 23:20:17 1999  Guido van Rossum  <guido@cnri.reston.va.us>

        * help.txt:
        Bunch of updates necessary due to recent changes; added docs for File
        menu, command line and color preferences.

        * Bindings.py: Remove obsolete 'script' menu.

	* TODO.txt: Several wishes fulfilled.

	* OutputWindow.py:
	Moved classes OnDemandOutputWindow and PseudoFile here,
	from ScriptBinding.py where they are no longer needed.

	* ScriptBinding.py:
	Mostly rewritten.  Instead of the old Run module and Debug module,
	there are two new commands:

	Import module (F5) imports or reloads the module and also adds its
	name to the __main__ namespace.  This gets executed in the PyShell
	window under control of its debug settings.

	Run script (Control-F5) is similar but executes the contents of the
	file directly in the __main__ namespace.

	* PyShell.py: Nits: document use of $IDLESTARTUP; display idle version

	* idlever.py: New version to celebrate new command line

	* OutputWindow.py: Added flush(), for completeness.

	* PyShell.py:
	A lot of changes to make the command line more useful.  You can now do:
	  idle.py -e file ...    -- to edit files
	  idle.py script arg ... -- to run a script
	  idle.py -c cmd arg ... -- to run a command
	Other options, see also the usage message (also new!) for more details:
	  -d       -- enable debugger
	  -s       -- run $IDLESTARTUP or $PYTHONSTARTUP
	  -t title -- set Python Shell window's title
	sys.argv is set accordingly, unless -e is used.
	sys.path is absolutized, and all relevant paths are inserted into it.

	Other changes:
	- the environment in which commands are executed is now the
	  __main__ module
	- explicitly save sys.stdout etc., don't restore from sys.__stdout__
	- new interpreter methods execsource(), execfile(), stuffsource()
	- a few small nits

	* TODO.txt:
	Some more TODO items.  Made up my mind about command line args,
	Run/Import, __main__.

	* ColorDelegator.py:
	Super-elegant patch by Tim Peters that speeds up colorization
	dramatically (up to 15 times he claims).  Works by reading more than
	one line at a time, up to 100-line chunks (starting with one line and
	then doubling up to the limit).  On a typical machine (e.g. Tim's
	P5-166) this doesn't reduce interactive responsiveness in a noticeable
	way.

Wed Apr 21 15:49:34 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* ColorDelegator.py:
	Patch by Tim Peters to speed up colorizing of big multiline strings.

Tue Apr 20 17:32:52 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* extend.txt:
	For an event 'foo-bar', the corresponding method must be called
	foo_bar_event().  Therefore, fix the references to zoom_height() in
	the example.

	* IdlePrefs.py: Restored the original IDLE color scheme.

	* PyShell.py, IdlePrefs.py, ColorDelegator.py, EditorWindow.py:
	Color preferences code by Loren Luke (massaged by me somewhat)

	* SearchEngine.py:
	Patch by Mark Favas: it fixes the search engine behaviour where an
	unsuccessful search wraps around and re-searches that part of the file
	between the start of the search and the end of the file - only really
	an issue for very large files, but... (also removes a redundant
	m.span() call).

Mon Apr 19 16:26:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* TODO.txt: A few wishes are now fulfilled.

	* AutoIndent.py: Tim Peters implements some of my wishes:

	o Makes the tab key intelligently insert spaces when appropriate
	(see Help list banter twixt David Ascher and me; idea stolen from
	every other editor on earth <wink>).

	o newline_and_indent_event trims trailing whitespace on the old
	line (pymode and Codewright).

	o newline_and_indent_event no longer fooled by trailing whitespace or
	comment after ":" (pymode, PTUI).

	o newline_and_indent_event now reduces the new line's indentation after
	return, break, continue, raise and pass stmts (pymode).

	The last two are easy to fool in the presence of strings &
	continuations, but pymode requires Emacs's high-powered C parsing
	functions to avoid that in finite time.

======================================================================
	Python release 1.5.2c1, IDLE version 0.4
======================================================================

Wed Apr  7 18:41:59 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* README.txt, NEWS.txt: New version.

	* idlever.py: Version bump awaiting impending new release.
	(Not much has changed :-( )

Mon Mar 29 14:52:28 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* ScriptBinding.py, PyShell.py:
	At Tim Peters' recommendation, add a dummy flush() method to
	PseudoFile.

Thu Mar 11 23:21:23 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* PathBrowser.py: Don't crash when sys.path contains an empty string.

	* Attic/Outline.py: This file was never supposed to be part of IDLE.

	* PathBrowser.py:
	- Don't crash in the case where a superclass is a string instead of a
	pyclbr.Class object; this can happen when the superclass is
	unrecognizable (to pyclbr), e.g. when module renaming is used.

	- Show a watch cursor when calling pyclbr (since it may take a while
	recursively parsing imported modules!).

Wed Mar 10 05:18:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* EditorWindow.py, Bindings.py: Add PathBrowser to File module

	* PathBrowser.py: "Path browser" - 4 scrolled lists displaying:
	    directories on sys.path
	    modules in selected directory
	    classes in selected module
	    methods of selected class

	Sinlge clicking in a directory, module or class item updates the next
	column with info about the selected item.  Double clicking in a
	module, class or method item opens the file (and selects the clicked
	item if it is a class or method).

	I guess eventually I should be using a tree widget for this, but the
	ones I've seen don't work well enough, so for now I use the old
	Smalltalk or NeXT style multi-column hierarchical browser.

	* MultiScrolledLists.py:
	New utility: multiple scrolled lists in parallel

	* ScrolledList.py: - White background.
	- Display "(None)" (or text of your choosing) when empty.
	- Don't set the focus.

======================================================================
	Python release 1.5.2b2, IDLE version 0.3
======================================================================
	
Wed Feb 17 22:47:41 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* NEWS.txt: News in 0.3.

	* README.txt, idlever.py: Bump version to 0.3.

	* EditorWindow.py:
	After all, we don't need to call the callbacks ourselves!

	* WindowList.py:
	When deleting, call the callbacks *after* deleting the window from our list!

	* EditorWindow.py:
	Fix up the Windows menu via the new callback mechanism instead of
	depending on menu post commands (which don't work when the menu is
	torn off).

	* WindowList.py:
	Support callbacks to patch up Windows menus everywhere.

	* ChangeLog: Oh, why not.  Checking in the Emacs-generated change log.

Tue Feb 16 22:34:17 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* ScriptBinding.py:
	Only pop up the stack viewer when requested in the Debug menu.

Mon Feb  8 22:27:49 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* WindowList.py: Don't crash if a window no longer exists.

	* TODO.txt: Restructured a bit.

Mon Feb  1 23:06:17 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* PyShell.py: Add current dir or paths of file args to sys.path.

	* Debugger.py: Add canonic() function -- for brand new bdb.py feature.

	* StackViewer.py: Protect against accessing an empty stack.

Fri Jan 29 20:44:45 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* ZoomHeight.py:
	Use only the height to decide whether to zoom in or out.

Thu Jan 28 22:24:30 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* EditorWindow.py, FileList.py:
	Make sure the Tcl variables are shared between windows.

	* PyShell.py, EditorWindow.py, Bindings.py:
	Move menu/key binding code from Bindings.py to EditorWindow.py,
	with changed APIs -- it makes much more sense there.
	Also add a new feature: if the first character of a menu label is
	a '!', it gets a checkbox.  Checkboxes are bound to Boolean Tcl variables
	that can be accessed through the new getvar/setvar/getrawvar API;
	the variable is named after the event to which the menu is bound.

	* Debugger.py: Add Quit button to the debugger window.

	* SearchDialog.py:
	When find_again() finds exactly the current selection, it's a failure.

	* idle.py, Attic/idle: Rename idle -> idle.py

Mon Jan 18 15:18:57 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* EditorWindow.py, WindowList.py: Only deiconify when iconic.

	* TODO.txt: Misc

Tue Jan 12 22:14:34 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* testcode.py, Attic/test.py:
	Renamed test.py to testcode.py so one can import Python's
	test package from inside IDLE.  (Suggested by Jack Jansen.)

	* EditorWindow.py, ColorDelegator.py:
	Hack to close a window that is colorizing.

	* Separator.py: Vladimir Marangozov's patch:
	The separator dances too much and seems to jump by arbitrary amounts
	in arbitrary directions when I try to move it for resizing the frames.
	This patch makes it more quiet.

Mon Jan 11 14:52:40 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* TODO.txt: Some requests have been fulfilled.

	* EditorWindow.py:
	Set the cursor to a watch when opening the class browser (which may
	take quite a while, browsing multiple files).

	Newer, better center() -- but assumes no wrapping.

	* SearchBinding.py:
	Got rid of debug print statement in goto_line_event().

	* ScriptBinding.py:
	I think I like it better if it prints the traceback even when it displays
	the stack viewer.

	* Debugger.py: Bind ESC to close-window.

	* ClassBrowser.py: Use a HSeparator between the classes and the items.
	Make the list of classes wider by default (40 chars).
	Bind ESC to close-window.

	* Separator.py:
	Separator classes (draggable divider between two panes).

Sat Jan  9 22:01:33 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* WindowList.py:
	Don't traceback when wakeup() is called when the window has been destroyed.
	This can happen when a torn-of Windows menu references closed windows.
	And Tim Peters claims that the Windows menu is his favorite to tear off...

	* EditorWindow.py: Allow tearing off of the Windows menu.

	* StackViewer.py: Close on ESC.

	* help.txt: Updated a bunch of things (it was mostly still 0.1!)

	* extend.py: Added ScriptBinding to standard bindings.

	* ScriptBinding.py:
	This now actually works.  See doc string.  It can run a module (i.e.
	import or reload) or debug it (same with debugger control).  Output
	goes to a fresh output window, only created when needed.

======================================================================
	Python release 1.5.2b1, IDLE version 0.2
======================================================================
	
Fri Jan  8 17:26:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* README.txt, NEWS.txt: What's new in this release.

	* Bindings.py, PyShell.py:
	Paul Prescod's patches to allow the stack viewer to pop up when a
	traceback is printed.

Thu Jan  7 00:12:15 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* FormatParagraph.py:
	Change paragraph width limit to 70 (like Emacs M-Q).

	* README.txt:
	Separating TODO from README.  Slight reformulation of features.  No
	exact release date.

	* TODO.txt: Separating TODO from README.

Mon Jan  4 21:19:09 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* FormatParagraph.py:
	Hm.  There was a boundary condition error at the end of the file too.

	* SearchBinding.py: Hm.  Add Unix binding for replace, too.

	* keydefs.py: Ran eventparse.py again.

	* FormatParagraph.py: Added Unix Meta-q key binding;
	fix find_paragraph when at start of file.

	* AutoExpand.py: Added Meta-/ binding for Unix as alt for Alt-/.

	* SearchBinding.py:
	Add unix binding for grep (otherwise the menu entry doesn't work!)

	* ZoomHeight.py: Adjusted Unix height to work with fvwm96. :=(

	* GrepDialog.py: Need to import sys!

	* help.txt, extend.txt, README.txt: Formatted some paragraphs

	* extend.py, FormatParagraph.py:
	Add new extension to reformat a (text) paragraph.

	* ZoomHeight.py: Typo in Win specific height setting.

Sun Jan  3 00:47:35 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* AutoIndent.py: Added something like Tim Peters' backspace patch.

	* ZoomHeight.py: Adapted to Unix (i.e., more hardcoded constants).

Sat Jan  2 21:28:54 1999  Guido van Rossum  <guido@cnri.reston.va.us>

	* keydefs.py, idlever.py, idle.pyw, idle.bat, help.txt, extend.txt, extend.py, eventparse.py, ZoomHeight.py, WindowList.py, UndoDelegator.py, StackViewer.py, SearchEngine.py, SearchDialogBase.py, SearchDialog.py, ScrolledList.py, SearchBinding.py, ScriptBinding.py, ReplaceDialog.py, Attic/README, README.txt, PyShell.py, Attic/PopupMenu.py, OutputWindow.py, IOBinding.py, Attic/HelpWindow.py, History.py, GrepDialog.py, FileList.py, FrameViewer.py, EditorWindow.py, Debugger.py, Delegator.py, ColorDelegator.py, Bindings.py, ClassBrowser.py, AutoExpand.py, AutoIndent.py:
	Checking in IDLE 0.2.

	Much has changed -- too much, in fact, to write down.
	The big news is that there's a standard way to write IDLE extensions;
	see extend.txt.  Some sample extensions have been provided, and
	some existing code has been converted to extensions.  Probably the
	biggest new user feature is a new search dialog with more options,
	search and replace, and even search in files (grep).

	This is exactly as downloaded from my laptop after returning
	from the holidays -- it hasn't even been tested on Unix yet.

Fri Dec 18 15:52:54 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* FileList.py, ClassBrowser.py:
	Fix the class browser to work even when the file is not on sys.path.

Tue Dec  8 20:39:36 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* Attic/turtle.py: Moved to Python 1.5.2/Lib

Fri Nov 27 03:19:20 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* help.txt: Typo

	* EditorWindow.py, FileList.py: Support underlining of menu labels

	* Bindings.py:
	New approach, separate tables for menus (platform-independent) and key
	definitions (platform-specific), and generating accelerator strings
	automatically from the key definitions.

Mon Nov 16 18:37:42 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* Attic/README: Clarify portability and main program.

	* Attic/README: Added intro for 0.1 release and append Grail notes.

Mon Oct 26 18:49:00 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* Attic/turtle.py: root is now a global called _root

Sat Oct 24 16:38:38 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* Attic/turtle.py: Raise the root window on reset().
	Different action on WM_DELETE_WINDOW is more likely to do the right thing,
	allowing us to destroy old windows.

	* Attic/turtle.py:
	Split the goto() function in two: _goto() is the internal one,
	using Canvas coordinates, and goto() uses turtle coordinates
	and accepts variable argument lists.

	* Attic/turtle.py: Cope with destruction of the window

	* Attic/turtle.py: Turtle graphics

	* Debugger.py: Use of Breakpoint class should be bdb.Breakpoint.

Mon Oct 19 03:33:40 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* SearchBinding.py:
	Speed up the search a bit -- don't drag a mark around...

	* PyShell.py:
	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.

	* Debugger.py:
	Use and pass through the 'force' flag to set_dict() where appropriate.
	Default source and globals checkboxes to false.
	Don't interact in user_return().
	Add primitive set_breakpoint() method.

	* ColorDelegator.py:
	Raise priority of 'sel' tag so its foreground (on Windows) will take
	priority over text colorization (which on Windows is almost the
	same color as the selection background).

	Define a tag and color for breakpoints ("BREAK").

	* Attic/PopupMenu.py: Disable "Open stack viewer" and "help" commands.

	* StackViewer.py:
	Add optional 'force' argument (default 0) to load_dict().
	If set, redo the display even if it's the same dict.

Fri Oct 16 21:10:12 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* StackViewer.py: Do nothing when loading the same dict as before.

	* PyShell.py: Details for debugger interface.

	* Debugger.py:
	Restructured and more consistent.  Save checkboxes across instantiations.

	* EditorWindow.py, Attic/README, Bindings.py:
	Get rid of conflicting ^X binding.  Use ^W.

	* Debugger.py, StackViewer.py:
	Debugger can now show local and global variables.

	* Debugger.py: Oops

	* Debugger.py, PyShell.py: Better debugger support (show stack etc).

	* Attic/PopupMenu.py: Follow renames in StackViewer module

	* StackViewer.py:
	Rename classes to StackViewer (the widget) and StackBrowser (the toplevel).

	* ScrolledList.py: Add close() method

	* EditorWindow.py: Clarify 'Open Module' dialog text

	* StackViewer.py: Restructured into a browser and a widget.

Thu Oct 15 23:27:08 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* ClassBrowser.py, ScrolledList.py:
	Generalized the scrolled list which is the base for the class and
	method browser into a separate class in its own module.

	* Attic/test.py: Cosmetic change

	* Debugger.py: Don't show function name if there is none

Wed Oct 14 03:43:05 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* Debugger.py, PyShell.py: Polish the Debugger GUI a bit.
	Closing it now also does the right thing.

Tue Oct 13 23:51:13 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* Debugger.py, PyShell.py, Bindings.py:
	Ad primitive debugger interface (so far it will step and show you the
	source, but it doesn't yet show the stack).

	* Attic/README: Misc

	* StackViewer.py: Whoops -- referenced self.top before it was set.

	* help.txt: Added history and completion commands.

	* help.txt: Updated

	* FileList.py: Add class browser functionality.

	* StackViewer.py:
	Add a close() method and bind to WM_DELETE_WINDOW protocol

	* PyShell.py: Clear the linecache before printing a traceback

	* Bindings.py: Added class browser binding.

	* ClassBrowser.py: Much improved, much left to do.

	* PyShell.py: Make the return key do what I mean more often.

	* ClassBrowser.py:
	Adding the beginnings of a Class browser.  Incomplete, yet.

	* EditorWindow.py, Bindings.py:
	Add new command, "Open module".  You select or type a module name,
	and it opens the source.

Mon Oct 12 23:59:27 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* PyShell.py: Subsume functionality from Popup menu in Debug menu.
	Other stuff so the PyShell window can be resurrected from the Windows menu.

	* FileList.py: Get rid of PopUp menu.
	Create a simple Windows menu.  (Imperfect when Untitled windows exist.)
	Add wakeup() method: deiconify, raise, focus.

	* EditorWindow.py: Generalize menu creation.

	* Bindings.py: Add Debug and Help menu items.

	* EditorWindow.py: Added a menu bar to every window.

	* Bindings.py: Add menu configuration to the event configuration.

	* Attic/PopupMenu.py: Pass a root to the help window.

	* SearchBinding.py:
	Add parent argument to 'to to line number' dialog box.

Sat Oct 10 19:15:32 1998  Guido van Rossum  <guido@cnri.reston.va.us>

	* StackViewer.py:
	Add a label at the top showing (very basic) help for the stack viewer.
	Add a label at the bottom showing the exception info.

	* Attic/test.py, Attic/idle: Add Unix main script and test program.

	* idle.pyw, help.txt, WidgetRedirector.py, UndoDelegator.py, StackViewer.py, SearchBinding.py, Attic/README, PyShell.py, Attic/PopupMenu.py, Percolator.py, Outline.py, IOBinding.py, History.py, Attic/HelpWindow.py, FrameViewer.py, FileList.py, EditorWindow.py, Delegator.py, ColorDelegator.py, Bindings.py, AutoIndent.py, AutoExpand.py:
	Initial checking of Tk-based Python IDE.
	Features: text editor with syntax coloring and undo;
	subclassed into interactive Python shell which adds history.

