What's New in IDLE 3.8.0 (since 3.7.0)
Released on 2019-10-20?
======================================


bpo-33905: Add test for idlelib.stackview.StackBrowser.

bpo-33924: Change mainmenu.menudefs key 'windows' to 'window'.
Every other menudef key is the lowercase version of the
corresponding main menu entry (in this case, 'Window').

bpo-33906: Rename idlelib.windows as window
Match Window on the main menu and remove last plural module name.
Change imports, test, and attribute references to match new name.

bpo-33917: Fix and document idlelib/idle_test/template.py.
The revised file compiles, runs, and tests OK.  idle_test/README.txt
explains how to use it to create new IDLE test files.

bpo-33904: In rstrip module, rename class RstripExtension as Rstrip.

bpo-33907: For consistency and clarity, rename calltip objects.
Module calltips and its class CallTips are now calltip and Calltip.
In module calltip_w, class CallTip is now CalltipWindow.

bpo-33855: Minimally test all IDLE modules.
Standardize the test file format.  Add missing test files that import
the tested module and perform at least one test.  Check and record the
coverage of each test.

bpo-33856: Add 'help' to Shell's initial welcome message.


What's New in IDLE 3.7.0 (since 3.6.0)
Released on 2018-06-27
======================================

bpo-33656: On Windows, add API call saying that tk scales for DPI.
On Windows 8.1+ or 10, with DPI compatibility properties of the Python
binary unchanged, and a monitor resolution greater than 96 DPI, this
should make text and lines sharper and some colors brighter.
On other systems, it should have no effect.  If you have a custom theme,
you may want to adjust a color or two.  If perchance it make text worse
on your monitor, you can disable the ctypes.OleDLL call near the top of
pyshell.py and report the problem on python-list or idle-dev@python.org.

bpo-33768: Clicking on a context line moves that line to the top
of the editor window.

bpo-33763: Replace the code context label widget with a text widget.

bpo-33664: Scroll IDLE editor text by lines.
(Previously, the mouse wheel and scrollbar slider moved text by a fixed
number of pixels, resulting in partial lines at the top of the editor
box.)  This change also applies to the shell and grep output windows,
but currently not to read-only text views.

bpo-33679: Enable theme-specific color configuration for Code Context.
(Previously, there was one code context foreground and background font
color setting, default or custom, on the extensions tab, that applied
to all themes.)  For built-in themes, the foreground is the same as
normal text and the background is a contrasting gray.  Context colors for
custom themes are set on the Hightlights tab along with other colors.
When one starts IDLE from a console and loads a custom theme without
definitions for 'context', one will see a warning message on the
console.

bpo-33642: Display up to maxlines non-blank lines for Code Context.
If there is no current context, show a single blank line.  (Previously,
the Code Contex had numlines lines, usually with some blank.)  The use
of a new option, 'maxlines' (default 15), avoids possible interference
with user settings of the old option, 'numlines' (default 3).

bpo-33628: Cleanup codecontext.py and its test.

bpo-32831: Add docstrings and tests for codecontext.py.
Coverage is 100%.  Patch by Cheryl Sabella.

bpo-33564: Code context now recognizes async as a block opener.

bpo-21474: Update word/identifier definition from ascii to unicode.
In text and entry boxes, this affects selection by double-click,
movement left/right by control-left/right, and deletion left/right
by control-BACKSPACE/DEL.

bpo-33204: Consistently color invalid string prefixes.
A 'u' string prefix cannot be paired with either 'r' or 'f'.
IDLE now consistently colors as much of the prefix, starting at the
right, as is valid.  Revise and extend colorizer test.

bpo-32984: Set __file__ while running a startup file.
Like Python, IDLE optionally runs 1 startup file in the Shell window
before presenting the first interactive input prompt.  For IDLE,
option -s runs a file named in environmental variable IDLESTARTUP or
PYTHONSTARTUP; -r file runs file.  Python sets __file__ to the startup
file name before running the file and unsets it before the first
prompt.  IDLE now does the same when run normally, without the -n
option.

bpo-32940: Replace StringTranslatePseudoMapping with faster code.

bpo-32916: Change 'str' to 'code' in idlelib.pyparse and users.

bpo-32905: Remove unused code in pyparse module.

bpo-32874: IDLE - add pyparse tests with 97% coverage.

bpo-32837: IDLE - require encoding argument for textview.view_file.
Using the system and place-dependent default encoding for open()
is a bad idea for IDLE's system and location-independent files.

bpo-32826: Add "encoding=utf-8" to open() in IDLE's test_help_about.
GUI test test_file_buttons() only looks at initial ascii-only lines,
but failed on systems where open() defaults to 'ascii' because
readline() internally reads and decodes far enough ahead to encounter
a non-ascii character in CREDITS.txt.

bpo-32765: Update configdialog General tab create page docstring.
Add new widgets to the widget list.

bpo-32207: Improve tk event exception tracebacks in IDLE.
When tk event handling is driven by IDLE's run loop, a confusing
and distracting queue.EMPTY traceback context is no longer added
to tk event exception tracebacks.  The traceback is now the same
as when event handling is driven by user code.  Patch based on
a suggestion by Serhiy Storchaka.

bpo-32164: Delete unused file idlelib/tabbedpages.py.
Use of TabbedPageSet in configdialog was replaced by ttk.Notebook.

bpo-32100: Fix old and new bugs in pathbrowser; improve tests.
Patch mostly by Cheryl Sabella.

bpo-31860: The font sample in the settings dialog is now editable.
Edits persist while IDLE remains open.
Patch by Serhiy Storchake and Terry Jan Reedy.

bpo-31858: Restrict shell prompt manipulation to the shell.
Editor and output windows only see an empty last prompt line.  This
simplifies the code and fixes a minor bug when newline is inserted.
Sys.ps1, if present, is read on Shell start-up, but is not set or changed.
Patch by Terry Jan Reedy.

bpo-28603: Fix a TypeError that caused a shell restart when printing
a traceback that includes an exception that is unhashable.
Patch by Zane Bitter.

bpo-13802: Use non-Latin characters in the Font settings sample.
Even if one selects a font that defines a limited subset of the unicode
Basic Multilingual Plane, tcl/tk will use other fonts that define a
character.  The expanded example give users of non-Latin characters
a better idea of what they might see in the shell and editors.

To make room for the expanded sample, frames on the Font tab are
re-arranged.  The Font/Tabs help explains a bit about the additions.
Patch by Terry Jan Reedy

bpo-31460: Simplify the API of IDLE's Module Browser.
Passing a widget instead of an flist with a root widget opens the
option of creating a browser frame that is only part of a window.
Passing a full file name instead of pieces assumed to come from a
.py file opens the possibility of browsing python files that do not
end in .py.

bpo-31649: Make _htest and _utest parameters keyword-only.
These are used to adjust code for human and unit tests.

bpo-31459: Rename module browser from Class Browser to Module Browser.
The original module-level class and method browser became a module
browser, with the addition of module-level functions, years ago.
Nested classes and functions were added yesterday.  For back-
compatibility, the virtual event <<open-class-browser>>, which
appears on the Keys tab of the Settings dialog, is not changed.
Patch by Cheryl Sabella.

bpo-1612262: Module browser now shows nested classes and functions.
Original patches for code and tests by Guilherme Polo and
Cheryl Sabella, respectively.  Revisions by Terry Jan Reedy.

bpo-31500: Tk's default fonts now are scaled on HiDPI displays.
This affects all dialogs.  Patch by Serhiy Storchaka.

bpo-31493: Fix code context update and font update timers.
Canceling timers prevents a warning message when test_idle completes.

bpo-31488: Update non-key options in former extension classes.
When applying configdialog changes, call .reload for each feature class.
Change ParenMatch so updated options affect existing instances attached
to existing editor windows.

bpo-31477: Improve rstrip entry in IDLE doc.
Strip Trailing Whitespace strips more than blank spaces.
Multiline string literals are not skipped.

bpo-31480: fix tests to pass with zzdummy extension disabled. (#3590)
To see the example in action, enable it on options extensions tab.

bpo-31421: Document how IDLE runs tkinter programs.
IDLE calls tcl/tk update in the background in order to make live
interaction and experimentatin with tkinter applications much easier.

bpo-31414: Fix tk entry box tests by deleting first.
Adding to an int entry is not the same as deleting and inserting
because int('') will fail.  Patch by Terry Jan Reedy.

bpo-27099: Convert IDLE's built-in 'extensions' to regular features.
  About 10 IDLE features were implemented as supposedly optional
extensions.  Their different behavior could be confusing or worse for
users and not good for maintenance.  Hence the conversion.
  The main difference for users is that user configurable key bindings
for builtin features are now handled uniformly.  Now, editing a binding
in a keyset only affects its value in the keyset.  All bindings are
defined together in the system-specific default keysets in config-
extensions.def.  All custom keysets are saved as a whole in config-
extension.cfg.  All take effect as soon as one clicks Apply or Ok.
   The affected events are '<<force-open-completions>>',
'<<expand-word>>', '<<force-open-calltip>>', '<<flash-paren>>',
'<<format-paragraph>>', '<<run-module>>', '<<check-module>>', and
'<<zoom-height>>'.  Any (global) customizations made before 3.6.3 will
not affect their keyset-specific customization after 3.6.3. and vice
versa.
  Initial patch by Charles Wohlganger, revised by Terry Jan Reedy.

bpo-31051:  Rearrange condigdialog General tab.
Sort non-Help options into Window (Shell+Editor) and Editor (only).
Leave room for the addition of new options.
Patch by Terry Jan Reedy.

bpo-30617: Add docstrings and tests for outwin subclass of editor.
Move some data and functions from the class to module level.
Patch by Cheryl Sabella.

bpo-31287: Do not modify tkinter.messagebox in test_configdialog.
Instead, mask it with an instance mock that can be deleted.
Patch by Terry Jan Reedy.

bpo-30781: Use ttk widgets in ConfigDialog pages.
These should especially look better on MacOSX.
Patches by Terry Jan Reedy and Cheryl Sabella.

bpo-31206: Factor HighPage(Frame) class from ConfigDialog.
Patch by Cheryl Sabella.

bp0-31001: Add tests for configdialog highlight tab.
Patch by Cheryl Sabella.

bpo-31205: Factor KeysPage(Frame) class from ConfigDialog.
The slightly modified tests continue to pass.
Patch by Cheryl Sabella.

bpo-31002: Add tests for configdialog keys tab.
Patch by Cheryl Sabella.

bpo-19903: Change calltipes to use inspect.signature.
Idlelib.calltips.get_argspec now uses inspect.signature instead of
inspect.getfullargspec, like help() does.  This improves the signature
in the call tip in a few different cases, including builtins converted
to provide a signature.  A message is added if the object is not
callable, has an invalid signature, or if it has positional-only
parameters.  Patch by Louie Lu.

bop-31083: Add an outline of a TabPage class in configdialog.
Add template as comment. Update existing classes to match outline.
Initial patch by Cheryl Sabella.

bpo-31050: Factor GenPage(Frame) class from ConfigDialog.
The slightly modified tests for the General tab continue to pass.
Patch by Cheryl Sabella.

bpo-31004: Factor FontPage(Frame) class from ConfigDialog.
The slightly modified tests continue to pass. The General test
broken by the switch to ttk.Notebook is fixed.
Patch mostly by Cheryl Sabella.

bpo-30781: IDLE - Use ttk Notebook in ConfigDialog.
This improves navigation by tabbing.
Patch by Terry Jan Reedy.

bpo-31060: IDLE - Finish rearranging methods of ConfigDialog.
Grouping methods pertaining to each tab and the buttons will aid
writing tests and improving the tabs and will enable splitting the
groups into classes.
Patch by Terry Jan Reedy.

bpo-30853: IDLE -- Factor a VarTrace class out of ConfigDialog.
Instance tracers manages pairs consisting of a tk variable and a
callback function.  When tracing is turned on, setting the variable
calls the function.  Test coverage for the new class is 100%.
Patch by Terry Jan Reedy.

bpo-31003: IDLE: Add more tests for General tab.
Patch by Terry Jan Reedy.

bpo-30993: IDLE - Improve configdialog font page and tests.
*In configdialog: Document causal pathways in create_font_tab
docstring.  Simplify some attribute names. Move set_samples calls to
var_changed_font (idea from Cheryl Sabella).  Move related functions to
positions after the create widgets function.
* In test_configdialog: Fix test_font_set so not order dependent.  Fix
renamed test_indent_scale so it tests the widget.  Adjust tests for
movement of set_samples call.  Add tests for load functions.  Put all
font tests in one class and tab indent tests in another.  Except for
two lines, these tests completely cover the related functions.
Patch by Terry Jan Reedy.

bpo-30981: IDLE -- Add more configdialog font page tests.

bpo-28523: IDLE: replace 'colour' with 'color' in configdialog.

bpo-30917: Add tests for idlelib.config.IdleConf.
Increase coverage from 46% to 96%.
Patch by Louie Lu.

bpo-30913: Document ConfigDialog tk Vars, methods, and widgets in docstrings
This will facilitate improving the dialog and splitting up the class.
Original patch by Cheryl Sabella.

bpo-30899: Add tests for ConfigParser subclasses in config.
Coverage is 100% for those classes and ConfigChanges.
Patch by Louie Lu.

bpo-30881: Add docstrings to browser.py.
Patch by Cheryl Sabella.

bpo-30851: Remove unused tk variables in configdialog.
One is a duplicate, one is set but cannot be altered by users.
Patch by Cheryl Sabella.

bpo-30870: Select font option with Up and Down keys, as well as with mouse.
Added test increases configdialog coverage to 60%
Patches mostly by Louie Lu.

bpo-8231: Call config.IdleConf.GetUserCfgDir only once per process.

bpo-30779: Factor ConfigChanges class from configdialog, put in config; test.
* In config, put dump test code in a function; run it and unittest in
  'if __name__ == '__main__'.
* Add class config.ConfigChanges based on changes_class_v4.py on bpo issue.
* Add class test_config.ChangesTest, partly using configdialog_tests_v1.py.
* Revise configdialog to use ConfigChanges; see tracker msg297804.
* Revise test_configdialog to match configdialog changes.
* Remove configdialog functions unused or moved to ConfigChanges.
Cheryl Sabella contributed parts of the patch.

bpo-30777: Configdialog - add docstrings and improve comments.
Patch by Cheryl Sabella.

bpo-30495: Improve textview with docstrings, PEP8 names, and more tests.
Split TextViewer class into ViewWindow, ViewFrame, and TextFrame classes
so that instances of the latter two can be placed with other widgets
within a multiframe window.
Patches by Cheryl Sabella and Terry Jan Reedy.

bpo-30723: Make several improvements to parenmatch.
* Add 'parens' style to highlight both opener and closer.
* Make 'default' style, which is not default, a synonym for 'opener'.
* Make time-delay work the same with all styles.
* Add help for config dialog extensions tab, including parenmatch.
* Add new tests.
Original patch by Charles Wohlganger.  Revisions by Terry Jan Reedy

bpo-30674: Grep -- Add docstrings.  Patch by Cheryl Sabella.

bpo-21519: IDLE's basic custom key entry dialog now detects
duplicates properly. Original patch by Saimadhav Heblikar.

bpo-29910: IDLE no longer deletes a character after commenting out a
region by a key shortcut.  Add "return 'break'" for this and other
potential conflicts between IDLE and default key bindings.
Patch by Serhiy Storchaka.

bpo-30728: Modernize idlelib.configdialog:
* replace import * with specific imports;
* lowercase method and attribute lines.
Patch by Cheryl Sabella.

bpo-6739: Verify user-entered key sequences by trying to bind them
with to a tk widget.  Add tests for all 3 validation functions.
Original patch by G Polo.  Tests added by Cheryl Sabella.
Code revised and more tests added by Terry Jan Reedy

bpo-24813: Add icon to help_about and make other changes.

bpo-15786: Fix several problems with IDLE's autocompletion box.
The following should now work: clicking on selection box items;
using the scrollbar; selecting an item by hitting Return.
Hangs on MacOSX should no longer happen. Patch by Louie Lu.

bpo-25514: Add doc subsubsection about IDLE failure to start.
Popup no-connection message directs users to this section.

bpo-30642: Fix reference leaks in IDLE tests.
Patches by Louie Lu and Terry Jan Reedy.

bpo-30495: Add docstrings for textview.py and use PEP8 names.
Patches by Cheryl Sabella and Terry Jan Reedy.

bpo-30290: Help-about: use pep8 names and add tests.
Increase coverage to 100%.
Patches by Louie Lu, Cheryl Sabella, and Terry Jan Reedy.

bpo-30303: Add _utest option to textview; add new tests.
Increase coverage to 100%.
Patches by Louie Lu and Terry Jan Reedy.

Issue #29071: IDLE colors f-string prefixes but not invalid ur prefixes.

Issue #28572: Add 10% to coverage of IDLE's test_configdialog.
Update and augment description of the configuration system.


What's New in IDLE 3.6.0 (since 3.5.0)
Released on 2016-12-23
======================================

- Issue #15308: Add 'interrupt execution' (^C) to Shell menu.
  Patch by Roger Serwy, updated by Bayard Randel.

- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen.

- Issue #27891: Consistently group and sort imports within idlelib modules.

- Issue #17642: add larger font sizes for classroom projection.

- Add version to title of IDLE help window.

- Issue #25564: In section on IDLE -- console differences, mention that
  using exec means that __builtins__ is defined for each statement.

- Issue #27821: Fix 3.6.0a3 regression that prevented custom key sets
  from being selected when no custom theme was defined.

- Issue #27714: text_textview and test_autocomplete now pass when re-run
  in the same process.  This occurs when test_idle fails when run with the
  -w option but without -jn.  Fix warning from test_config.

- Issue #27621: Put query response validation error messages in the query
  box itself instead of in a separate massagebox.  Redo tests to match.
  Add Mac OSX refinements.  Original patch by Mark Roseman.

- Issue #27620: Escape key now closes Query box as cancelled.

- Issue #27609: IDLE: tab after initial whitespace should tab, not
  autocomplete. This fixes problem with writing docstrings at least
  twice indented.

- Issue #27609: Explicitly return None when there are also non-None
  returns. In a few cases, reverse a condition and eliminate a return.

- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports.
  Users must include the same imports required to run directly in Python.

- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets.
  Make the default key set depend on the platform.
  Add tests for the changes to the config module.

- Issue #27452: add line counter and crc to IDLE configHandler test dump.

- Issue #27477: IDLE search dialogs now use ttk widgets.

- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets.
  Make the default key set depend on the platform.
  Add tests for the changes to the config module.

- Issue #27452: make command line "idle-test> python test_help.py" work.
  __file__ is relative when python is started in the file's directory.

- Issue #27452: add line counter and crc to IDLE configHandler test dump.

- Issue #27380: IDLE: add query.py with base Query dialog and ttk widgets.
  Module had subclasses SectionName, ModuleName, and HelpSource, which are
  used to get information from users by configdialog and file =>Load Module.
  Each subclass has itw own validity checks.  Using ModuleName allows users
  to edit bad module names instead of starting over.
  Add tests and delete the two files combined into the new one.

- Issue #27372: Test_idle no longer changes the locale.

- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names.

- Issue #27245: IDLE: Cleanly delete custom themes and key bindings.
  Previously, when IDLE was started from a console or by import, a cascade
  of warnings was emitted.  Patch by Serhiy Storchaka.

- Issue #24137: Run IDLE, test_idle, and htest with tkinter default root disabled.
  Fix code and tests that fail with this restriction.
  Fix htests to not create a second and redundant root and mainloop.

- Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import.

- Issue #5124: Paste with text selected now replaces the selection on X11.
  This matches how paste works on Windows, Mac, most modern Linux apps,
  and ttk widgets.  Original patch by Serhiy Storchaka.

- Issue #24750: Switch all scrollbars in IDLE to ttk versions.
  Where needed, minimal tests are added to cover changes.

- Issue #24759: IDLE requires tk 8.5 and availability ttk widgets.
  Delete now unneeded tk version tests and code for older versions.
  Add test for IDLE syntax colorizer.

- Issue #27239: idlelib.macosx.isXyzTk functions initialize as needed.

- Issue #27262: move Aqua unbinding code, which enable context menus, to maxosx.

- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory
  is a private implementation of test.test_idle and tool for maintainers.

- Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests.
  These persisted after other warnings were suppressed in #20567.
  Apply Serhiy Storchaka's update_idletasks solution to four test files.
  Record this additional advice in idle_test/README.txt

- Issue #20567: Revise idle_test/README.txt with advice about avoiding
  tk warning messages from tests.  Apply advice to several IDLE tests.

- Issue # 24225: Update idlelib/README.txt with new file names
  and event handlers.

- Issue #27156: Remove obsolete code not used by IDLE.  Replacements:
  1. help.txt, replaced by help.html, is out-of-date and should not be used.
  Its dedicated viewer has be replaced by the html viewer in help.py.
  2. 'import idlever; I = idlever.IDLE_VERSION' is the same as
  'import sys; I = version[:version.index(' ')]'
  3. After 'ob = stackviewer.VariablesTreeItem(*args)',
  'ob.keys()' == 'list(ob.object.keys).
  4. In macosc, runningAsOSXAPP == isAquaTk; idCarbonAquaTk == isCarbonTk

- Issue #27117: Make colorizer htest and turtledemo work with dark themes.
  Move code for configuring text widget colors to a new function.

- Issue #24225: Rename many idlelib/*.py and idle_test/test_*.py files.
  Edit files to replace old names with new names when the old name
  referred to the module rather than the class it contained.
  See the issue and IDLE section in What's New in 3.6 for more.

- Issue #26673: When tk reports font size as 0, change to size 10.
  Such fonts on Linux prevented the configuration dialog from opening.

- Issue #21939: Add test for IDLE's percolator.
  Original patch by Saimadhav Heblikar.

- Issue #21676: Add test for IDLE's replace dialog.
  Original patch by Saimadhav Heblikar.

- Issue #18410: Add test for IDLE's search dialog.
  Original patch by Westley Martínez.

- Issue #21703: Add test for undo delegator.  Patch mostly by
  Saimadhav Heblikar .

- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks.

- Issue #23977: Add more asserts to test_delegator.

- Issue #20640: Add tests for idlelib.configHelpSourceEdit.
  Patch by Saimadhav Heblikar.

- In the 'IDLE-console differences' section of the IDLE doc, clarify
  how running with IDLE affects sys.modules and the standard streams.

- Issue #25507: fix incorrect change in IOBinding that prevented printing.
  Augment IOBinding htest to include all major IOBinding functions.

- Issue #25905: Revert unwanted conversion of ' to ’ RIGHT SINGLE QUOTATION
  MARK in README.txt and open this and NEWS.txt with 'ascii'.
  Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'.

- Issue 15348: Stop the debugger engine (normally in a user process)
  before closing the debugger window (running in the IDLE process).
  This prevents the RuntimeErrors that were being caught and ignored.

- Issue #24455: Prevent IDLE from hanging when a) closing the shell while the
  debugger is active (15347); b) closing the debugger with the [X] button
  (15348); and c) activating the debugger when already active (24455).
  The patch by Mark Roseman does this by making two changes.
  1. Suspend and resume the gui.interaction method with the tcl vwait
  mechanism intended for this purpose (instead of root.mainloop & .quit).
  2. In gui.run, allow any existing interaction to terminate first.

- Change 'The program' to 'Your program' in an IDLE 'kill program?' message
  to make it clearer that the program referred to is the currently running
  user program, not IDLE itself.

- Issue #24750: Improve the appearance of the IDLE editor window status bar.
  Patch by Mark Roseman.

- Issue #25313: Change the handling of new built-in text color themes to better
  address the compatibility problem introduced by the addition of IDLE Dark.
  Consistently use the revised idleConf.CurrentTheme everywhere in idlelib.

- Issue #24782: Extension configuration is now a tab in the IDLE Preferences
  dialog rather than a separate dialog.   The former tabs are now a sorted
  list.  Patch by Mark Roseman.

- Issue #22726: Re-activate the config dialog help button with some content
  about the other buttons and the new IDLE Dark theme.

- Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme.
  It is more or less IDLE Classic inverted, with a cobalt blue background.
  Strings, comments, keywords, ... are still green, red, orange, ... .
  To use it with IDLEs released before November 2015, hit the
  'Save as New Custom Theme' button and enter a new name,
  such as 'Custom Dark'.  The custom theme will work with any IDLE
  release, and can be modified.

- Issue #25224: README.txt is now an idlelib index for IDLE developers and
  curious users.  The previous user content is now in the IDLE doc chapter.
  'IDLE' now means 'Integrated Development and Learning Environment'.

- Issue #24820: Users can now set breakpoint colors in
  Settings -> Custom Highlighting.  Original patch by Mark Roseman.

- Issue #24972: Inactive selection background now matches active selection
  background, as configured by users, on all systems.  Found items are now
  always highlighted on Windows.  Initial patch by Mark Roseman.

- Issue #24570: Idle: make calltip and completion boxes appear on Macs
  affected by a tk regression.  Initial patch by Mark Roseman.

- Issue #24988: Idle ScrolledList context menus (used in debugger)
  now work on Mac Aqua.  Patch by Mark Roseman.

- Issue #24801: Make right-click for context menu work on Mac Aqua.
  Patch by Mark Roseman.

- Issue #25173: Associate tkinter messageboxes with a specific widget.
  For Mac OSX, make them a 'sheet'.  Patch by Mark Roseman.

- Issue #25198: Enhance the initial html viewer now used for Idle Help.
  * Properly indent fixed-pitch text (patch by Mark Roseman).
  * Give code snippet a very Sphinx-like light blueish-gray background.
  * Re-use initial width and height set by users for shell and editor.
  * When the Table of Contents (TOC) menu is used, put the section header
  at the top of the screen.

- Issue #25225: Condense and rewrite Idle doc section on text colors.

- Issue #21995: Explain some differences between IDLE and console Python.

- Issue #22820: Explain need for *print* when running file from Idle editor.

- Issue #25224: Doc: augment Idle feature list and no-subprocess section.

- Issue #25219: Update doc for Idle command line options.
  Some were missing and notes were not correct.

- Issue #24861: Most of idlelib is private and subject to change.
  Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__.

- Issue #25199: Idle: add synchronization comments for future maintainers.

- Issue #16893: Replace help.txt with help.html for Idle doc display.
  The new idlelib/help.html is rstripped Doc/build/html/library/idle.html.
  It looks better than help.txt and will better document Idle as released.
  The tkinter html viewer that works for this file was written by Mark Roseman.
  The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated.

- Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6.

- Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts).


What's New in IDLE 3.5.0?
=========================
*Release date: 2015-09-13*

- Issue #23672: Allow Idle to edit and run files with astral chars in name.
  Patch by Mohd Sanad Zaki Rizvi.

- Issue 24745: Idle editor default font. Switch from Courier to
  platform-sensitive TkFixedFont.  This should not affect current customized
  font selections.  If there is a problem, edit $HOME/.idlerc/config-main.cfg
  and remove 'fontxxx' entries from [Editor Window].  Patch by Mark Roseman.

- Issue #21192: Idle editor. When a file is run, put its name in the restart bar.
  Do not print false prompts. Original patch by Adnan Umer.

- Issue #13884: Idle menus. Remove tearoff lines. Patch by Roger Serwy.

- Issue #23184: remove unused names and imports in idlelib.
  Initial patch by Al Sweigart.

- Issue #20577: Configuration of the max line length for the FormatParagraph
  extension has been moved from the General tab of the Idle preferences dialog
  to the FormatParagraph tab of the Config Extensions dialog.
  Patch by Tal Einat.

- Issue #16893: Update Idle doc chapter to match current Idle and add new
  information.

- Issue #3068: Add Idle extension configuration dialog to Options menu.
  Changes are written to HOME/.idlerc/config-extensions.cfg.
  Original patch by Tal Einat.

- Issue #16233: A module browser (File : Class Browser, Alt+C) requires an
  editor window with a filename.  When Class Browser is requested otherwise,
  from a shell, output window, or 'Untitled' editor, Idle no longer displays
  an error box.  It now pops up an  Open Module box (Alt+M). If a valid name
  is entered and a module is opened, a corresponding browser is also opened.

- Issue #4832: Save As to type Python files automatically adds .py to the
  name you enter (even if your system does not display it).  Some systems
  automatically add .txt when type is Text files.

- Issue #21986: Code objects are not normally pickled by the pickle module.
  To match this, they are no longer pickled when running under Idle.

- Issue #23180: Rename IDLE "Windows" menu item to "Window".
  Patch by Al Sweigart.

- Issue #17390: Adjust Editor window title; remove 'Python',
  move version to end.

- Issue #14105: Idle debugger breakpoints no longer disappear
  when inserting or deleting lines.

- Issue #17172: Turtledemo can now be run from Idle.
  Currently, the entry is on the Help menu, but it may move to Run.
  Patch by Ramchandra Apt and Lita Cho.

- Issue #21765: Add support for non-ascii identifiers to HyperParser.

- Issue #21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav
  Heblikar.

- Issue #18592: Add unittest for SearchDialogBase. Patch by Phil Webster.

- Issue #21694: Add unittest for ParenMatch. Patch by Saimadhav Heblikar.

- Issue #21686: add unittest for HyperParser. Original patch by Saimadhav
  Heblikar.

- Issue #12387: Add missing upper(lower)case versions of default Windows key
  bindings for Idle so Caps Lock does not disable them. Patch by Roger Serwy.

- Issue #21695: Closing a Find-in-files output window while the search is
  still in progress no longer closes Idle.

- Issue #18910: Add unittest for textView. Patch by Phil Webster.

- Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar.

- Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster.

- Issue #21477: htest.py - Improve framework, complete set of tests.
  Patches by Saimadhav Heblikar

- Issue #18104: Add idlelib/idle_test/htest.py with a few sample tests to begin
  consolidating and improving human-validated tests of Idle. Change other files
  as needed to work with htest.  Running the module as __main__ runs all tests.

- Issue #21139: Change default paragraph width to 72, the PEP 8 recommendation.

- Issue #21284: Paragraph reformat test passes after user changes reformat width.

- Issue #17654: Ensure IDLE menus are customized properly on OS X for
  non-framework builds and for all variants of Tk.


What's New in IDLE 3.4.0?
=========================
*Release date: 2014-03-16*

- Issue #17390: Display Python version on Idle title bar.
  Initial patch by Edmond Burnett.

- Issue #5066: Update IDLE docs. Patch by Todd Rovito.

- Issue #17625: Close the replace dialog after it is used.

- Issue #16226: Fix IDLE Path Browser crash.
  (Patch by Roger Serwy)

- Issue #15853: Prevent IDLE crash on OS X when opening Preferences menu
  with certain versions of Tk 8.5.  Initial patch by Kevin Walzer.


What's New in IDLE 3.3.0?
=========================
*Release date: 2012-09-29*

- Issue #17625: Close the replace dialog after it is used.

- Issue #7163: Propagate return value of sys.stdout.write.

- Issue #15318: Prevent writing to sys.stdin.

- Issue #4832: Modify IDLE to save files with .py extension by
  default on Windows and OS X (Tk 8.5) as it already does with X11 Tk.

- Issue #13532, #15319: Check that arguments to sys.stdout.write are strings.

- Issue # 12510: Attempt to get certain tool tips no longer crashes IDLE.
  Erroneous tool tips have been corrected. Default added for callables.

- Issue #10365: File open dialog now works instead of crashing even when
  parent window is closed while dialog is open.

- Issue 14876: use user-selected font for highlight configuration.

- Issue #14937: Perform auto-completion of filenames in strings even for
  non-ASCII filenames. Likewise for identifiers.

- Issue #8515: Set __file__ when run file in IDLE.
  Initial patch by Bruce Frederiksen.

- IDLE can be launched as `python -m idlelib`

- Issue #14409: IDLE now properly executes commands in the Shell window
  when it cannot read the normal config files on startup and
  has to use the built-in default key bindings.
  There was previously a bug in one of the defaults.

- Issue #3573: IDLE hangs when passing invalid command line args
  (directory(ies) instead of file(s)).

- Issue #14018: Update checks for unstable system Tcl/Tk versions on OS X
  to include versions shipped with OS X 10.7 and 10.8 in addition to 10.6.


What's New in IDLE 3.2.1?
=========================
*Release date: 15-May-11*

- Issue #6378: Further adjust idle.bat to start associated Python

- Issue #11896: Save on Close failed despite selecting "Yes" in dialog.

- Issue #1028: Ctrl-space binding to show completions was causing IDLE to exit.
  Tk < 8.5 was sending invalid Unicode null; replaced with valid null.

- Issue #4676: <Home> toggle failing on Tk 8.5, causing IDLE exits and strange selection
  behavior. Improve selection extension behaviour.

- Issue #3851: <Home> toggle non-functional when NumLock set on Windows.


What's New in IDLE 3.1b1?
=========================
*Release date: 06-May-09*

- Issue #5707: Use of 'filter' in keybindingDialog.py was causing custom key assignment to
  fail.  Patch by Amaury Forgeot d'Arc.

- Issue #4815: Offer conversion to UTF-8 if source files have
  no encoding declaration and are not encoded in UTF-8.

- Issue #4008: Fix problems with non-ASCII source files.

- Issue #4323: Always encode source as UTF-8 without asking
  the user (unless a different encoding is declared); remove
  user configuration of source encoding; all according to
  PEP 3120.

- Issue #2665: On Windows, an IDLE installation upgraded from an old version
  would not start if a custom theme was defined.

------------------------------------------------------------------------
Refer to NEWS2x.txt and HISTORY.txt for information on earlier releases.
------------------------------------------------------------------------
