1What's New in IDLE 3.11.z
2(since 3.11.0)
3Released after 2022-10-24
4=========================
5
6
7gh-104719: Remove IDLE's modification of tokenize.tabsize and test
8other uses of tokenize data and methods.
9
10gh-104499: Fix completions for Tk Aqua 8.7 (currently blank).
11
12gh-104486: Make About print both tcl and tk versions if different,
13as is expected someday.
14
15gh-88496 Fix IDLE test hang on macOS.
16
17gh-103314 Support sys.last_exc after exceptions in Shell.
18Patch by Irit Katriel.
19
20
21What's New in IDLE 3.11.0
22(since 3.10.0)
23Released on 2022-10-24
24=========================
25
26gh-97527: Fix a bug in the previous bugfix that caused IDLE to not
27start when run with 3.10.8, 3.12.0a1, and at least Microsoft Python
283.10.2288.0 installed without the Lib/test package.  3.11.0 was never
29affected.
30
31gh-65802: Document handling of extensions in Save As dialogs.
32
33gh-95191: Include prompts when saving Shell (interactive input/output).
34
35gh-95511: Fix the Shell context menu copy-with-prompts bug of copying
36an extra line when one selects whole lines.
37
38gh-95471: Tweak Edit menu. Move 'Select All' above 'Cut' as it is used
39with 'Cut' and 'Copy' but not 'Paste'.  Add a separator between 'Replace'
40and 'Go to Line' to help IDLE issue triagers.
41
42gh-95411: Enable using IDLE's module browser with .pyw files.
43
44gh-89610: Add .pyi as a recognized extension for IDLE on macOS.  This allows
45opening stub files by double clicking on them in the Finder.
46
47bpo-28950: Apply IDLE syntax highlighting to `.pyi` files.  Add util.py
48for common components.  Patch by Alex Waygood and Terry Jan Reedy.
49
50bpo-46630: Make query dialogs on Windows start with a cursor in the
51entry box.
52
53bpo-46591: Make the IDLE doc URL on the About IDLE dialog clickable.
54
55bpo-45296: Clarify close, quit, and exit in IDLE.  In the File menu,
56'Close' and 'Exit' are now 'Close Window' (the current one) and 'Exit'
57is now 'Exit IDLE' (by closing all windows).  In Shell, 'quit()' and
58'exit()' mean 'close Shell'.  If there are no other windows,
59this also exits IDLE.
60
61bpo-45495: Add context keywords 'case' and 'match' to completions list.
62
63bpo-45296: On Windows, change exit/quit message to suggest Ctrl-D, which
64works, instead of <Ctrl-Z Return>, which does not work in IDLE.
65
66
67What's New in IDLE 3.10.0
68(since 3.9.0)
69Released on 2021-10-04
70=========================
71
72bpo-45193: Make completion boxes appear on Ubuntu again.
73
74bpo-40128: Mostly fix completions on macOS when not using tcl/tk 8.6.11
75(as with 3.9).
76
77bpo-33962: Move the indent space setting from the Font tab to the new Windows
78tab. Patch by Mark Roseman and Terry Jan Reedy.
79
80bpo-40468: Split the settings dialog General tab into Windows and Shell/Ed
81tabs. Move help sources, which extend the Help menu, to the Extensions tab.
82Make space for new options and shorten the dialog. The latter makes the
83dialog better fit small screens.
84
85bpo-44010: Highlight the new match statement's soft keywords: match, case,
86and _. This highlighting is not perfect and will be incorrect in some rare
87cases, especially for some _s in case patterns.
88
89bpo-44026: Include interpreter's typo fix suggestions in message line
90for NameErrors and AttributeErrors.  Patch by E. Paine.
91
92bpo-41611: Avoid occasional uncaught exceptions and freezing when using
93completions on macOS.
94
95bpo-37903: Add mouse actions to the shell sidebar.  Left click and
96optional drag selects one or more lines of text, as with the
97editor line number sidebar.  Right click after selecting text lines
98displays a context menu with 'copy with prompts'.  This zips together
99prompts from the sidebar with lines from the selected text.  This option
100also appears on the context menu for the text.
101
102bpo-43981: Fix reference leaks in test_sidebar and test_squeezer.
103Patches by Terry Jan Reedy and Pablo Galindo
104
105bpo-37892: Change Shell input indents from tabs to spaces.  Shell input
106now 'looks right'.  Making this feasible motivated the shell sidebar.
107
108bpo-37903: Move the Shell input prompt to a side bar.
109
110bpo-43655: Make window managers on macOS and X Window recognize
111IDLE dialog windows as dialogs.
112
113bpo-42225: Document that IDLE can fail on Unix either from misconfigured IP
114masquerade rules or failure displaying complex colored (non-ascii) characters.
115
116bpo-43283: Document why printing to IDLE's Shell is often slower than
117printing to a system terminal and that it can be made faster by
118pre-formatting a single string before printing.
119
120bpo-23544: Disable Debug=>Stack Viewer when user code is running or
121Debugger is active, to prevent hang or crash.  Patch by Zackery Spytz.
122
123bpo-43008: Make IDLE invoke :func:`sys.excepthook` in normal,
1242-process mode.  User hooks were previously ignored.
125Patch by Ken Hilton.
126
127bpo-33065: Fix problem debugging user classes with __repr__ method.
128
129bpo-32631: Finish zzdummy example extension module: make menu entries
130work; add docstrings and tests with 100% coverage.
131
132bpo-42508: Keep IDLE running on macOS.  Remove obsolete workaround
133that prevented running files with shortcuts when using new universal2
134installers built on macOS 11.
135
136bpo-42426: Fix reporting offset of the RE error in searchengine.
137
138bpo-42416: Display docstrings in IDLE calltips in more cases,
139by using inspect.getdoc.
140
141bpo-33987: Mostly finish using ttk widgets, mainly for editor,
142settings, and searches.  Some patches by Mark Roseman.
143
144bpo-40511: Stop unnecessary "flashing" when typing opening and closing
145parentheses inside the parentheses of a function call.
146
147bpo-38439: Add a 256x256 pixel IDLE icon to the Windows .ico file. Created by
148Andrew Clover. Remove the low-color gif variations from the .ico file.
149
150bpo-41775: Make 'IDLE Shell' the shell title.
151
152bpo-35764: Rewrite the Calltips doc section.
153
154bpo-40181: In calltips, stop reminding that '/' marks the end of
155positional-only arguments.
156
157
158What's New in IDLE 3.9.0 (since 3.8.0)
159Released on 2020-10-05?
160======================================
161
162bpo-41468: Improve IDLE run crash error message (which users should
163never see).
164
165bpo-41373: Save files loaded with no line ending, as when blank, or
166different line endings, by setting its line ending to the system
167default. Fix regression in 3.8.4 and 3.9.0b4.
168
169bpo-41300: Save files with non-ascii chars.  Fix regression in
1703.9.0b4 and 3.8.4.
171
172bpo-37765: Add keywords to module name completion list.  Rewrite
173Completions section of IDLE doc.
174
175bpo-41152: The encoding of ``stdin``, ``stdout`` and ``stderr`` in IDLE
176is now always UTF-8.
177
178bpo-41144: Make Open Module open a special module such as os.path.
179
180bpo-40723: Make test_idle pass when run after import.
181Patch by Florian Dahlitz.
182
183bpo-38689: IDLE will no longer freeze when inspect.signature fails
184when fetching a calltip.
185
186bpo-27115: For 'Go to Line', use a Query entry box subclass with
187IDLE standard behavior and improved error checking.
188
189bpo-39885: When a context menu is invoked by right-clicking outside
190of a selection, clear the selection and move the cursor.  Cut and
191Copy require that the click be within the selection.
192
193bpo-39852: Edit "Go to line" now clears any selection, preventing
194accidental deletion.  It also updates Ln and Col on the status bar.
195
196bpo-39781: Selecting code context lines no longer causes a jump.
197
198bpo-39663: Add tests for pyparse find_good_parse_start().
199
200bpo-39600: Remove duplicate font names from configuration list.
201
202bpo-38792: Close a shell calltip if a :exc:`KeyboardInterrupt`
203or shell restart occurs.  Patch by Zackery Spytz.
204
205bpo-30780: Add remaining configdialog tests for buttons and
206highlights and keys tabs.
207
208bpo-39388: Settings dialog Cancel button cancels pending changes.
209
210bpo-39050: Settings dialog Help button again displays help text.
211
212bpo-32989: Add tests for editor newline_and_indent_event method.
213Remove unneeded arguments and dead code from pyparse
214find_good_parse_start method.
215
216bpo-38943: Fix autocomplete windows not always appearing on some
217systems.  Patch by Johnny Najera.
218
219bpo-38944: Escape key now closes IDLE completion windows.  Patch by
220Johnny Najera.
221
222bpo-38862: 'Strip Trailing Whitespace' on the Format menu removes extra
223newlines at the end of non-shell files.
224
225bpo-38636: Fix IDLE Format menu tab toggle and file indent width. These
226functions (default shortcuts Alt-T and Alt-U) were mistakenly disabled
227in 3.7.5 and 3.8.0.
228
229bpo-4630: Add an option to toggle IDLE's cursor blink for shell,
230editor, and output windows.  See Settings, General, Window Preferences,
231Cursor Blink.  Patch by Zackery Spytz.
232
233bpo-26353: Stop adding newline when saving an IDLE shell window.
234
235bpo-38598: Do not try to compile IDLE shell or output windows.
236
237
238What's New in IDLE 3.8.0 (since 3.7.0)
239Released on 2019-10-14
240======================================
241
242bpo-36698: IDLE no longer fails when writing non-encodable characters
243to stderr.  It now escapes them with a backslash, like the regular
244Python interpreter.  Add an errors field to the standard streams.
245
246bpo-13153: Improve tkinter's handing of non-BMP (astral) unicode
247characters, such as 'rocket \U0001f680'.  Whether a proper glyph or
248replacement char is displayed depends on the OS and font.  For IDLE,
249astral chars in code interfere with editing.
250
251bpo-35379: When exiting IDLE, catch any AttributeError.  One happens
252when EditorWindow.close is called twice.  Printing a traceback, when
253IDLE is run from a terminal, is useless and annoying.
254
255bpo-38183: To avoid test issues, test_idle ignores the user config
256directory.  It no longer tries to create or access .idlerc or any files
257within.  Users must run IDLE to discover problems with saving settings.
258
259bpo-38077: IDLE no longer adds 'argv' to the user namespace when
260initializing it.  This bug only affected 3.7.4 and 3.8.0b2 to 3.8.0b4.
261
262bpo-38401: Shell restart lines now fill the window width, always start
263with '=', and avoid wrapping unnecessarily. The line will still wrap
264if the included file name is long relative to the width.
265
266bpo-37092: Add mousewheel scrolling for IDLE module, path, and stack
267browsers.  Patch by George Zhang.
268
269bpo-35771: To avoid occasional spurious test_idle failures on slower
270machines, increase the ``hover_delay`` in test_tooltip.
271
272bpo-37824: Properly handle user input warnings in IDLE shell.
273Cease turning SyntaxWarnings into SyntaxErrors.
274
275bpo-37929: IDLE Settings dialog now closes properly when there is no
276shell window.
277
278bpo-37849: Fix completions list appearing too high or low when shown
279above the current line.
280
281bpo-36419: Refactor autocompete and improve testing.
282
283bpo-37748: Reorder the Run menu.  Put the most common choice,
284Run Module, at the top.
285
286bpo-37692: Improve highlight config sample with example shell
287interaction and better labels for shell elements.
288
289bpo-37628: Settings dialog no longer expands with font size.
290The font and highlight sample boxes gain scrollbars instead.
291
292bpo-17535: Add optional line numbers for IDLE editor windows.
293
294bpo-37627: Initialize the Customize Run dialog with the command line
295arguments most recently entered before.  The user can optionally edit
296before submitting them.
297
298bpo-33610: Code context always shows the correct context when toggled on.
299
300bpo-36390: Gather Format menu functions into format.py.  Combine
301paragraph.py, rstrip.py, and format methods from editor.py.
302
303bpo-37530: Optimize code context to reduce unneeded background activity.
304Font and highlight changes now occur along with text changes instead
305of after a random delay.
306
307bpo-27452: Cleanup config.py by inlining RemoveFile and simplifying
308the handling of __file__ in CreateConfigHandlers/
309
310bpo-26806: To compensate for stack frames added by IDLE and avoid
311possible problems with low recursion limits, add 30 to limits in the
312user code execution process.  Subtract 30 when reporting recursion
313limits to make this addition mostly transparent.
314
315bpo-37325: Fix tab focus traversal order for help source and custom
316run dialogs.
317
318bpo-37321: Both subprocess connection error messages now refer to
319the 'Startup failure' section of the IDLE doc.
320
321bpo-37177: Properly attach search dialogs to their main window so
322that they behave like other dialogs and do not get hidden behind
323their main window.
324
325bpo-37039: Adjust "Zoom Height" to individual screens by momentarily
326maximizing the window on first use with a particular screen.  Changing
327screen settings may invalidate the saved height.  While a window is
328maximized, "Zoom Height" has no effect.
329
330bpo-35763: Make calltip reminder about '/' meaning positional-only less
331obtrusive by only adding it when there is room on the first line.
332
333bpo-5680: Add 'Run Customized' to the Run menu to run a module with
334customized settings. Any command line arguments entered are added
335to sys.argv. One can suppress the normal Shell main module restart.
336
337bpo-35610: Replace now redundant editor.context_use_ps1 with
338.prompt_last_line.  This finishes change started in bpo-31858.
339
340bpo-32411: Stop sorting dict created with desired line order.
341
342bpo-37038: Make idlelib.run runnable; add test clause.
343
344bpo-36958: Print any argument other than None or int passed to
345SystemExit or sys.exit().
346
347bpo-36807: When saving a file, call file.flush() and os.fsync()
348so bits are flushed to e.g. a USB drive.
349
350bpo-36429: Fix starting IDLE with pyshell.
351Add idlelib.pyshell alias at top; remove pyshell alias at bottom.
352Remove obsolete __name__=='__main__' command.
353
354bpo-30348: Increase test coverage of idlelib.autocomplete by 30%.
355Patch by Louie Lu.
356
357bpo-23205: Add tests and refactor grep's findfiles.
358
359bpo-36405: Use dict unpacking in idlelib.
360
361bpo-36396: Remove fgBg param of idlelib.config.GetHighlight().
362This param was only used twice and changed the return type.
363
364bpo-23216: IDLE: Add docstrings to search modules.
365
366bpo-36176: Fix IDLE autocomplete & calltip popup colors.
367Prevent conflicts with Linux dark themes
368(and slightly darken calltip background).
369
370bpo-36152: Remove colorizer.ColorDelegator.close_when_done and the
371corresponding argument of .close().  In IDLE, both have always been
372None or False since 2007.
373
374bpo-36096: Make colorizer state variables instance-only.
375
376bpo-32129: Avoid blurry IDLE application icon on macOS with Tk 8.6.
377Patch by Kevin Walzer.
378
379bpo-24310: Document settings dialog font tab sample.
380
381bpo-35689: Add docstrings and tests for colorizer.
382
383bpo-35833: Revise IDLE doc for control codes sent to Shell.
384Add a code example block.
385
386bpo-35770: IDLE macosx deletes Options => Configure IDLE.
387It previously deleted Window => Zoom Height by mistake.
388(Zoom Height is now on the Options menu).  On Mac, the settings
389dialog is accessed via Preferences on the IDLE menu.
390
391bpo-35769: Change new file name from 'Untitled' to 'untitled'.
392
393bpo-35660: Fix imports in window module.
394
395bpo-35641: Properly format calltip for function without docstring.
396
397bpo-33987: Use ttk Frame for ttk widgets.
398
399bpo-34055: Fix erroneous 'smart' indents and newlines in IDLE Shell.
400
401bpo-28097: Add Previous/Next History entries to Shell menu.
402
403bpo-35591: Find Selection now works when selection not found.
404
405bpo-35598: Update config_key: use PEP 8 names and ttk widgets,
406make some objects global, and add tests.
407
408bpo-35196: Speed up squeezer line counting.
409
410bpo-35208: Squeezer now counts wrapped lines before newlines.
411
412bpo-35555: Gray out Code Context menu entry when it's not applicable.
413
414bpo-22703: Improve the Code Context and Zoom Height menu labels.
415The Code Context menu label now toggles between Show/Hide Code Context.
416The Zoom Height menu now toggles between Zoom/Restore Height.
417Zoom Height has moved from the Window menu to the Options menu.
418
419bpo-35521: Document the editor code context feature.
420Add some internal references within the IDLE doc.
421
422bpo-34864: When starting IDLE on MacOS, warn if the system setting
423"Prefer tabs when opening documents" is "Always".  As previous
424documented for this issue, running IDLE with this setting causes
425problems.  If the setting is changed while IDLE is running,
426there will be no warning until IDLE is restarted.
427
428bpo-35213: Where appropriate, use 'macOS' in idlelib.
429
430bpo-34864: Document two IDLE on MacOS issues.  The System Preferences
431Dock "prefer tabs always" setting disables some IDLE features.
432Menus are a bit different than as described for Windows and Linux.
433
434bpo-35202: Remove unused imports in idlelib.
435
436bpo-33000: Document that IDLE's shell has no line limit.
437A program that runs indefinitely can overfill memory.
438
439bpo-23220: Explain how IDLE's Shell displays output.
440Add new subsection "User output in Shell".
441
442bpo-35099: Improve the doc about IDLE running user code.
443"IDLE -- console differences" is renamed "Running user code".
444It mostly covers the implications of using custom sys.stdxxx objects.
445
446bpo-35097: Add IDLE doc subsection explaining editor windows.
447Topics include opening, title and status bars, .py* extension, and running.
448
449Issue 35093: Document the IDLE document viewer in the IDLE doc.
450Add a paragraph in "Help and preferences", "Help sources" subsection.
451
452bpo-1529353: Explain Shell text squeezing in the IDLE doc.
453
454bpo-35088: Update idlelib.help.copy_string docstring.
455We now use git and backporting instead of hg and forward merging.
456
457bpo-35087: Update idlelib help files for the current doc build.
458The main change is the elimination of chapter-section numbers.
459
460bpo-1529353: Output over N lines (50 by default) is squeezed down to a button.
461N can be changed in the PyShell section of the General page of the
462Settings dialog.  Fewer, but possibly extra long, lines can be squeezed by
463right clicking on the output.  Squeezed output can be expanded in place
464by double-clicking the button or into the clipboard or a separate window
465by right-clicking the button.
466
467bpo-34548: Use configured color theme for read-only text views.
468
469bpo-33839: Refactor ToolTip and CallTip classes; add documentation
470and tests.
471
472bpo-34047: Fix mouse wheel scrolling direction on macOS.
473
474bpo-34275: Make calltips always visible on Mac.
475Patch by Kevin Walzer.
476
477bpo-34120: Fix freezing after closing some dialogs on Mac.
478This is one of multiple regressions from using newer tcl/tk.
479
480bpo-33975: Avoid small type when running htests.
481Since part of the purpose of human-viewed tests is to determine that
482widgets look right, it is important that they look the same for
483testing as when running IDLE.
484
485bpo-33905: Add test for idlelib.stackview.StackBrowser.
486
487bpo-33924: Change mainmenu.menudefs key 'windows' to 'window'.
488Every other menudef key is the lowercase version of the
489corresponding main menu entry (in this case, 'Window').
490
491bpo-33906: Rename idlelib.windows as window
492Match Window on the main menu and remove last plural module name.
493Change imports, test, and attribute references to match new name.
494
495bpo-33917: Fix and document idlelib/idle_test/template.py.
496The revised file compiles, runs, and tests OK.  idle_test/README.txt
497explains how to use it to create new IDLE test files.
498
499bpo-33904: In rstrip module, rename class RstripExtension as Rstrip.
500
501bpo-33907: For consistency and clarity, rename calltip objects.
502Module calltips and its class CallTips are now calltip and Calltip.
503In module calltip_w, class CallTip is now CalltipWindow.
504
505bpo-33855: Minimally test all IDLE modules.
506Standardize the test file format.  Add missing test files that import
507the tested module and perform at least one test.  Check and record the
508coverage of each test.
509
510bpo-33856: Add 'help' to Shell's initial welcome message.
511
512
513What's New in IDLE 3.7.0 (since 3.6.0)
514Released on 2018-06-27
515======================================
516
517bpo-33656: On Windows, add API call saying that tk scales for DPI.
518On Windows 8.1+ or 10, with DPI compatibility properties of the Python
519binary unchanged, and a monitor resolution greater than 96 DPI, this
520should make text and lines sharper and some colors brighter.
521On other systems, it should have no effect.  If you have a custom theme,
522you may want to adjust a color or two.  If perchance it make text worse
523on your monitor, you can disable the ctypes.OleDLL call near the top of
524pyshell.py and report the problem on python-list or [email protected].
525
526bpo-33768: Clicking on a context line moves that line to the top
527of the editor window.
528
529bpo-33763: Replace the code context label widget with a text widget.
530
531bpo-33664: Scroll IDLE editor text by lines.
532(Previously, the mouse wheel and scrollbar slider moved text by a fixed
533number of pixels, resulting in partial lines at the top of the editor
534box.)  This change also applies to the shell and grep output windows,
535but currently not to read-only text views.
536
537bpo-33679: Enable theme-specific color configuration for Code Context.
538(Previously, there was one code context foreground and background font
539color setting, default or custom, on the extensions tab, that applied
540to all themes.)  For built-in themes, the foreground is the same as
541normal text and the background is a contrasting gray.  Context colors for
542custom themes are set on the Hightlights tab along with other colors.
543When one starts IDLE from a console and loads a custom theme without
544definitions for 'context', one will see a warning message on the
545console.
546
547bpo-33642: Display up to maxlines non-blank lines for Code Context.
548If there is no current context, show a single blank line.  (Previously,
549the Code Contex had numlines lines, usually with some blank.)  The use
550of a new option, 'maxlines' (default 15), avoids possible interference
551with user settings of the old option, 'numlines' (default 3).
552
553bpo-33628: Cleanup codecontext.py and its test.
554
555bpo-32831: Add docstrings and tests for codecontext.py.
556Coverage is 100%.  Patch by Cheryl Sabella.
557
558bpo-33564: Code context now recognizes async as a block opener.
559
560bpo-21474: Update word/identifier definition from ascii to unicode.
561In text and entry boxes, this affects selection by double-click,
562movement left/right by control-left/right, and deletion left/right
563by control-BACKSPACE/DEL.
564
565bpo-33204: Consistently color invalid string prefixes.
566A 'u' string prefix cannot be paired with either 'r' or 'f'.
567IDLE now consistently colors as much of the prefix, starting at the
568right, as is valid.  Revise and extend colorizer test.
569
570bpo-32984: Set __file__ while running a startup file.
571Like Python, IDLE optionally runs 1 startup file in the Shell window
572before presenting the first interactive input prompt.  For IDLE,
573option -s runs a file named in environmental variable IDLESTARTUP or
574PYTHONSTARTUP; -r file runs file.  Python sets __file__ to the startup
575file name before running the file and unsets it before the first
576prompt.  IDLE now does the same when run normally, without the -n
577option.
578
579bpo-32940: Replace StringTranslatePseudoMapping with faster code.
580
581bpo-32916: Change 'str' to 'code' in idlelib.pyparse and users.
582
583bpo-32905: Remove unused code in pyparse module.
584
585bpo-32874: IDLE - add pyparse tests with 97% coverage.
586
587bpo-32837: IDLE - require encoding argument for textview.view_file.
588Using the system and place-dependent default encoding for open()
589is a bad idea for IDLE's system and location-independent files.
590
591bpo-32826: Add "encoding=utf-8" to open() in IDLE's test_help_about.
592GUI test test_file_buttons() only looks at initial ascii-only lines,
593but failed on systems where open() defaults to 'ascii' because
594readline() internally reads and decodes far enough ahead to encounter
595a non-ascii character in CREDITS.txt.
596
597bpo-32765: Update configdialog General tab create page docstring.
598Add new widgets to the widget list.
599
600bpo-32207: Improve tk event exception tracebacks in IDLE.
601When tk event handling is driven by IDLE's run loop, a confusing
602and distracting queue.EMPTY traceback context is no longer added
603to tk event exception tracebacks.  The traceback is now the same
604as when event handling is driven by user code.  Patch based on
605a suggestion by Serhiy Storchaka.
606
607bpo-32164: Delete unused file idlelib/tabbedpages.py.
608Use of TabbedPageSet in configdialog was replaced by ttk.Notebook.
609
610bpo-32100: Fix old and new bugs in pathbrowser; improve tests.
611Patch mostly by Cheryl Sabella.
612
613bpo-31860: The font sample in the settings dialog is now editable.
614Edits persist while IDLE remains open.
615Patch by Serhiy Storchake and Terry Jan Reedy.
616
617bpo-31858: Restrict shell prompt manipulation to the shell.
618Editor and output windows only see an empty last prompt line.  This
619simplifies the code and fixes a minor bug when newline is inserted.
620Sys.ps1, if present, is read on Shell start-up, but is not set or changed.
621Patch by Terry Jan Reedy.
622
623bpo-28603: Fix a TypeError that caused a shell restart when printing
624a traceback that includes an exception that is unhashable.
625Patch by Zane Bitter.
626
627bpo-13802: Use non-Latin characters in the Font settings sample.
628Even if one selects a font that defines a limited subset of the unicode
629Basic Multilingual Plane, tcl/tk will use other fonts that define a
630character.  The expanded example give users of non-Latin characters
631a better idea of what they might see in the shell and editors.
632
633To make room for the expanded sample, frames on the Font tab are
634re-arranged.  The Font/Tabs help explains a bit about the additions.
635Patch by Terry Jan Reedy
636
637bpo-31460: Simplify the API of IDLE's Module Browser.
638Passing a widget instead of an flist with a root widget opens the
639option of creating a browser frame that is only part of a window.
640Passing a full file name instead of pieces assumed to come from a
641.py file opens the possibility of browsing python files that do not
642end in .py.
643
644bpo-31649: Make _htest and _utest parameters keyword-only.
645These are used to adjust code for human and unit tests.
646
647bpo-31459: Rename module browser from Class Browser to Module Browser.
648The original module-level class and method browser became a module
649browser, with the addition of module-level functions, years ago.
650Nested classes and functions were added yesterday.  For back-
651compatibility, the virtual event <<open-class-browser>>, which
652appears on the Keys tab of the Settings dialog, is not changed.
653Patch by Cheryl Sabella.
654
655bpo-1612262: Module browser now shows nested classes and functions.
656Original patches for code and tests by Guilherme Polo and
657Cheryl Sabella, respectively.  Revisions by Terry Jan Reedy.
658
659bpo-31500: Tk's default fonts now are scaled on HiDPI displays.
660This affects all dialogs.  Patch by Serhiy Storchaka.
661
662bpo-31493: Fix code context update and font update timers.
663Canceling timers prevents a warning message when test_idle completes.
664
665bpo-31488: Update non-key options in former extension classes.
666When applying configdialog changes, call .reload for each feature class.
667Change ParenMatch so updated options affect existing instances attached
668to existing editor windows.
669
670bpo-31477: Improve rstrip entry in IDLE doc.
671Strip Trailing Whitespace strips more than blank spaces.
672Multiline string literals are not skipped.
673
674bpo-31480: fix tests to pass with zzdummy extension disabled. (#3590)
675To see the example in action, enable it on options extensions tab.
676
677bpo-31421: Document how IDLE runs tkinter programs.
678IDLE calls tcl/tk update in the background in order to make live
679interaction and experimentation with tkinter applications much easier.
680
681bpo-31414: Fix tk entry box tests by deleting first.
682Adding to an int entry is not the same as deleting and inserting
683because int('') will fail.  Patch by Terry Jan Reedy.
684
685bpo-27099: Convert IDLE's built-in 'extensions' to regular features.
686  About 10 IDLE features were implemented as supposedly optional
687extensions.  Their different behavior could be confusing or worse for
688users and not good for maintenance.  Hence the conversion.
689  The main difference for users is that user configurable key bindings
690for builtin features are now handled uniformly.  Now, editing a binding
691in a keyset only affects its value in the keyset.  All bindings are
692defined together in the system-specific default keysets in config-
693extensions.def.  All custom keysets are saved as a whole in config-
694extension.cfg.  All take effect as soon as one clicks Apply or Ok.
695   The affected events are '<<force-open-completions>>',
696'<<expand-word>>', '<<force-open-calltip>>', '<<flash-paren>>',
697'<<format-paragraph>>', '<<run-module>>', '<<check-module>>', and
698'<<zoom-height>>'.  Any (global) customizations made before 3.6.3 will
699not affect their keyset-specific customization after 3.6.3. and vice
700versa.
701  Initial patch by Charles Wohlganger, revised by Terry Jan Reedy.
702
703bpo-31051:  Rearrange condigdialog General tab.
704Sort non-Help options into Window (Shell+Editor) and Editor (only).
705Leave room for the addition of new options.
706Patch by Terry Jan Reedy.
707
708bpo-30617: Add docstrings and tests for outwin subclass of editor.
709Move some data and functions from the class to module level.
710Patch by Cheryl Sabella.
711
712bpo-31287: Do not modify tkinter.messagebox in test_configdialog.
713Instead, mask it with an instance mock that can be deleted.
714Patch by Terry Jan Reedy.
715
716bpo-30781: Use ttk widgets in ConfigDialog pages.
717These should especially look better on MacOSX.
718Patches by Terry Jan Reedy and Cheryl Sabella.
719
720bpo-31206: Factor HighPage(Frame) class from ConfigDialog.
721Patch by Cheryl Sabella.
722
723bp0-31001: Add tests for configdialog highlight tab.
724Patch by Cheryl Sabella.
725
726bpo-31205: Factor KeysPage(Frame) class from ConfigDialog.
727The slightly modified tests continue to pass.
728Patch by Cheryl Sabella.
729
730bpo-31002: Add tests for configdialog keys tab.
731Patch by Cheryl Sabella.
732
733bpo-19903: Change calltipes to use inspect.signature.
734Idlelib.calltips.get_argspec now uses inspect.signature instead of
735inspect.getfullargspec, like help() does.  This improves the signature
736in the call tip in a few different cases, including builtins converted
737to provide a signature.  A message is added if the object is not
738callable, has an invalid signature, or if it has positional-only
739parameters.  Patch by Louie Lu.
740
741bop-31083: Add an outline of a TabPage class in configdialog.
742Add template as comment. Update existing classes to match outline.
743Initial patch by Cheryl Sabella.
744
745bpo-31050: Factor GenPage(Frame) class from ConfigDialog.
746The slightly modified tests for the General tab continue to pass.
747Patch by Cheryl Sabella.
748
749bpo-31004: Factor FontPage(Frame) class from ConfigDialog.
750The slightly modified tests continue to pass. The General test
751broken by the switch to ttk.Notebook is fixed.
752Patch mostly by Cheryl Sabella.
753
754bpo-30781: IDLE - Use ttk Notebook in ConfigDialog.
755This improves navigation by tabbing.
756Patch by Terry Jan Reedy.
757
758bpo-31060: IDLE - Finish rearranging methods of ConfigDialog.
759Grouping methods pertaining to each tab and the buttons will aid
760writing tests and improving the tabs and will enable splitting the
761groups into classes.
762Patch by Terry Jan Reedy.
763
764bpo-30853: IDLE -- Factor a VarTrace class out of ConfigDialog.
765Instance tracers manages pairs consisting of a tk variable and a
766callback function.  When tracing is turned on, setting the variable
767calls the function.  Test coverage for the new class is 100%.
768Patch by Terry Jan Reedy.
769
770bpo-31003: IDLE: Add more tests for General tab.
771Patch by Terry Jan Reedy.
772
773bpo-30993: IDLE - Improve configdialog font page and tests.
774*In configdialog: Document causal pathways in create_font_tab
775docstring.  Simplify some attribute names. Move set_samples calls to
776var_changed_font (idea from Cheryl Sabella).  Move related functions to
777positions after the create widgets function.
778* In test_configdialog: Fix test_font_set so not order dependent.  Fix
779renamed test_indent_scale so it tests the widget.  Adjust tests for
780movement of set_samples call.  Add tests for load functions.  Put all
781font tests in one class and tab indent tests in another.  Except for
782two lines, these tests completely cover the related functions.
783Patch by Terry Jan Reedy.
784
785bpo-30981: IDLE -- Add more configdialog font page tests.
786
787bpo-28523: IDLE: replace 'colour' with 'color' in configdialog.
788
789bpo-30917: Add tests for idlelib.config.IdleConf.
790Increase coverage from 46% to 96%.
791Patch by Louie Lu.
792
793bpo-30913: Document ConfigDialog tk Vars, methods, and widgets in docstrings
794This will facilitate improving the dialog and splitting up the class.
795Original patch by Cheryl Sabella.
796
797bpo-30899: Add tests for ConfigParser subclasses in config.
798Coverage is 100% for those classes and ConfigChanges.
799Patch by Louie Lu.
800
801bpo-30881: Add docstrings to browser.py.
802Patch by Cheryl Sabella.
803
804bpo-30851: Remove unused tk variables in configdialog.
805One is a duplicate, one is set but cannot be altered by users.
806Patch by Cheryl Sabella.
807
808bpo-30870: Select font option with Up and Down keys, as well as with mouse.
809Added test increases configdialog coverage to 60%
810Patches mostly by Louie Lu.
811
812bpo-8231: Call config.IdleConf.GetUserCfgDir only once per process.
813
814bpo-30779: Factor ConfigChanges class from configdialog, put in config; test.
815* In config, put dump test code in a function; run it and unittest in
816  'if __name__ == '__main__'.
817* Add class config.ConfigChanges based on changes_class_v4.py on bpo issue.
818* Add class test_config.ChangesTest, partly using configdialog_tests_v1.py.
819* Revise configdialog to use ConfigChanges; see tracker msg297804.
820* Revise test_configdialog to match configdialog changes.
821* Remove configdialog functions unused or moved to ConfigChanges.
822Cheryl Sabella contributed parts of the patch.
823
824bpo-30777: Configdialog - add docstrings and improve comments.
825Patch by Cheryl Sabella.
826
827bpo-30495: Improve textview with docstrings, PEP8 names, and more tests.
828Split TextViewer class into ViewWindow, ViewFrame, and TextFrame classes
829so that instances of the latter two can be placed with other widgets
830within a multiframe window.
831Patches by Cheryl Sabella and Terry Jan Reedy.
832
833bpo-30723: Make several improvements to parenmatch.
834* Add 'parens' style to highlight both opener and closer.
835* Make 'default' style, which is not default, a synonym for 'opener'.
836* Make time-delay work the same with all styles.
837* Add help for config dialog extensions tab, including parenmatch.
838* Add new tests.
839Original patch by Charles Wohlganger.  Revisions by Terry Jan Reedy
840
841bpo-30674: Grep -- Add docstrings.  Patch by Cheryl Sabella.
842
843bpo-21519: IDLE's basic custom key entry dialog now detects
844duplicates properly. Original patch by Saimadhav Heblikar.
845
846bpo-29910: IDLE no longer deletes a character after commenting out a
847region by a key shortcut.  Add "return 'break'" for this and other
848potential conflicts between IDLE and default key bindings.
849Patch by Serhiy Storchaka.
850
851bpo-30728: Modernize idlelib.configdialog:
852* replace import * with specific imports;
853* lowercase method and attribute lines.
854Patch by Cheryl Sabella.
855
856bpo-6739: Verify user-entered key sequences by trying to bind them
857with to a tk widget.  Add tests for all 3 validation functions.
858Original patch by G Polo.  Tests added by Cheryl Sabella.
859Code revised and more tests added by Terry Jan Reedy
860
861bpo-24813: Add icon to help_about and make other changes.
862
863bpo-15786: Fix several problems with IDLE's autocompletion box.
864The following should now work: clicking on selection box items;
865using the scrollbar; selecting an item by hitting Return.
866Hangs on MacOSX should no longer happen. Patch by Louie Lu.
867
868bpo-25514: Add doc subsubsection about IDLE failure to start.
869Popup no-connection message directs users to this section.
870
871bpo-30642: Fix reference leaks in IDLE tests.
872Patches by Louie Lu and Terry Jan Reedy.
873
874bpo-30495: Add docstrings for textview.py and use PEP8 names.
875Patches by Cheryl Sabella and Terry Jan Reedy.
876
877bpo-30290: Help-about: use pep8 names and add tests.
878Increase coverage to 100%.
879Patches by Louie Lu, Cheryl Sabella, and Terry Jan Reedy.
880
881bpo-30303: Add _utest option to textview; add new tests.
882Increase coverage to 100%.
883Patches by Louie Lu and Terry Jan Reedy.
884
885Issue #29071: IDLE colors f-string prefixes but not invalid ur prefixes.
886
887Issue #28572: Add 10% to coverage of IDLE's test_configdialog.
888Update and augment description of the configuration system.
889
890
891What's New in IDLE 3.6.0 (since 3.5.0)
892Released on 2016-12-23
893======================================
894
895- Issue #15308: Add 'interrupt execution' (^C) to Shell menu.
896  Patch by Roger Serwy, updated by Bayard Randel.
897
898- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen.
899
900- Issue #27891: Consistently group and sort imports within idlelib modules.
901
902- Issue #17642: add larger font sizes for classroom projection.
903
904- Add version to title of IDLE help window.
905
906- Issue #25564: In section on IDLE -- console differences, mention that
907  using exec means that __builtins__ is defined for each statement.
908
909- Issue #27821: Fix 3.6.0a3 regression that prevented custom key sets
910  from being selected when no custom theme was defined.
911
912- Issue #27714: text_textview and test_autocomplete now pass when re-run
913  in the same process.  This occurs when test_idle fails when run with the
914  -w option but without -jn.  Fix warning from test_config.
915
916- Issue #27621: Put query response validation error messages in the query
917  box itself instead of in a separate messagebox.  Redo tests to match.
918  Add Mac OSX refinements.  Original patch by Mark Roseman.
919
920- Issue #27620: Escape key now closes Query box as cancelled.
921
922- Issue #27609: IDLE: tab after initial whitespace should tab, not
923  autocomplete. This fixes problem with writing docstrings at least
924  twice indented.
925
926- Issue #27609: Explicitly return None when there are also non-None
927  returns. In a few cases, reverse a condition and eliminate a return.
928
929- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports.
930  Users must include the same imports required to run directly in Python.
931
932- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets.
933  Make the default key set depend on the platform.
934  Add tests for the changes to the config module.
935
936- Issue #27452: add line counter and crc to IDLE configHandler test dump.
937
938- Issue #27477: IDLE search dialogs now use ttk widgets.
939
940- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets.
941  Make the default key set depend on the platform.
942  Add tests for the changes to the config module.
943
944- Issue #27452: make command line "idle-test> python test_help.py" work.
945  __file__ is relative when python is started in the file's directory.
946
947- Issue #27452: add line counter and crc to IDLE configHandler test dump.
948
949- Issue #27380: IDLE: add query.py with base Query dialog and ttk widgets.
950  Module had subclasses SectionName, ModuleName, and HelpSource, which are
951  used to get information from users by configdialog and file =>Load Module.
952  Each subclass has itw own validity checks.  Using ModuleName allows users
953  to edit bad module names instead of starting over.
954  Add tests and delete the two files combined into the new one.
955
956- Issue #27372: Test_idle no longer changes the locale.
957
958- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names.
959
960- Issue #27245: IDLE: Cleanly delete custom themes and key bindings.
961  Previously, when IDLE was started from a console or by import, a cascade
962  of warnings was emitted.  Patch by Serhiy Storchaka.
963
964- Issue #24137: Run IDLE, test_idle, and htest with tkinter default root disabled.
965  Fix code and tests that fail with this restriction.
966  Fix htests to not create a second and redundant root and mainloop.
967
968- Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import.
969
970- Issue #5124: Paste with text selected now replaces the selection on X11.
971  This matches how paste works on Windows, Mac, most modern Linux apps,
972  and ttk widgets.  Original patch by Serhiy Storchaka.
973
974- Issue #24750: Switch all scrollbars in IDLE to ttk versions.
975  Where needed, minimal tests are added to cover changes.
976
977- Issue #24759: IDLE requires tk 8.5 and availability ttk widgets.
978  Delete now unneeded tk version tests and code for older versions.
979  Add test for IDLE syntax colorizer.
980
981- Issue #27239: idlelib.macosx.isXyzTk functions initialize as needed.
982
983- Issue #27262: move Aqua unbinding code, which enable context menus, to macosx.
984
985- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory
986  is a private implementation of test.test_idle and tool for maintainers.
987
988- Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests.
989  These persisted after other warnings were suppressed in #20567.
990  Apply Serhiy Storchaka's update_idletasks solution to four test files.
991  Record this additional advice in idle_test/README.txt
992
993- Issue #20567: Revise idle_test/README.txt with advice about avoiding
994  tk warning messages from tests.  Apply advice to several IDLE tests.
995
996- Issue # 24225: Update idlelib/README.txt with new file names
997  and event handlers.
998
999- Issue #27156: Remove obsolete code not used by IDLE.  Replacements:
1000  1. help.txt, replaced by help.html, is out-of-date and should not be used.
1001  Its dedicated viewer has be replaced by the html viewer in help.py.
1002  2. 'import idlever; I = idlever.IDLE_VERSION' is the same as
1003  'import sys; I = version[:version.index(' ')]'
1004  3. After 'ob = stackviewer.VariablesTreeItem(*args)',
1005  'ob.keys()' == 'list(ob.object.keys).
1006  4. In macosc, runningAsOSXAPP == isAquaTk; idCarbonAquaTk == isCarbonTk
1007
1008- Issue #27117: Make colorizer htest and turtledemo work with dark themes.
1009  Move code for configuring text widget colors to a new function.
1010
1011- Issue #24225: Rename many idlelib/*.py and idle_test/test_*.py files.
1012  Edit files to replace old names with new names when the old name
1013  referred to the module rather than the class it contained.
1014  See the issue and IDLE section in What's New in 3.6 for more.
1015
1016- Issue #26673: When tk reports font size as 0, change to size 10.
1017  Such fonts on Linux prevented the configuration dialog from opening.
1018
1019- Issue #21939: Add test for IDLE's percolator.
1020  Original patch by Saimadhav Heblikar.
1021
1022- Issue #21676: Add test for IDLE's replace dialog.
1023  Original patch by Saimadhav Heblikar.
1024
1025- Issue #18410: Add test for IDLE's search dialog.
1026  Original patch by Westley Martínez.
1027
1028- Issue #21703: Add test for undo delegator.  Patch mostly by
1029  Saimadhav Heblikar .
1030
1031- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks.
1032
1033- Issue #23977: Add more asserts to test_delegator.
1034
1035- Issue #20640: Add tests for idlelib.configHelpSourceEdit.
1036  Patch by Saimadhav Heblikar.
1037
1038- In the 'IDLE-console differences' section of the IDLE doc, clarify
1039  how running with IDLE affects sys.modules and the standard streams.
1040
1041- Issue #25507: fix incorrect change in IOBinding that prevented printing.
1042  Augment IOBinding htest to include all major IOBinding functions.
1043
1044- Issue #25905: Revert unwanted conversion of ' to ’ RIGHT SINGLE QUOTATION
1045  MARK in README.txt and open this and NEWS.txt with 'ascii'.
1046  Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'.
1047
1048- Issue 15348: Stop the debugger engine (normally in a user process)
1049  before closing the debugger window (running in the IDLE process).
1050  This prevents the RuntimeErrors that were being caught and ignored.
1051
1052- Issue #24455: Prevent IDLE from hanging when a) closing the shell while the
1053  debugger is active (15347); b) closing the debugger with the [X] button
1054  (15348); and c) activating the debugger when already active (24455).
1055  The patch by Mark Roseman does this by making two changes.
1056  1. Suspend and resume the gui.interaction method with the tcl vwait
1057  mechanism intended for this purpose (instead of root.mainloop & .quit).
1058  2. In gui.run, allow any existing interaction to terminate first.
1059
1060- Change 'The program' to 'Your program' in an IDLE 'kill program?' message
1061  to make it clearer that the program referred to is the currently running
1062  user program, not IDLE itself.
1063
1064- Issue #24750: Improve the appearance of the IDLE editor window status bar.
1065  Patch by Mark Roseman.
1066
1067- Issue #25313: Change the handling of new built-in text color themes to better
1068  address the compatibility problem introduced by the addition of IDLE Dark.
1069  Consistently use the revised idleConf.CurrentTheme everywhere in idlelib.
1070
1071- Issue #24782: Extension configuration is now a tab in the IDLE Preferences
1072  dialog rather than a separate dialog.   The former tabs are now a sorted
1073  list.  Patch by Mark Roseman.
1074
1075- Issue #22726: Re-activate the config dialog help button with some content
1076  about the other buttons and the new IDLE Dark theme.
1077
1078- Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme.
1079  It is more or less IDLE Classic inverted, with a cobalt blue background.
1080  Strings, comments, keywords, ... are still green, red, orange, ... .
1081  To use it with IDLEs released before November 2015, hit the
1082  'Save as New Custom Theme' button and enter a new name,
1083  such as 'Custom Dark'.  The custom theme will work with any IDLE
1084  release, and can be modified.
1085
1086- Issue #25224: README.txt is now an idlelib index for IDLE developers and
1087  curious users.  The previous user content is now in the IDLE doc chapter.
1088  'IDLE' now means 'Integrated Development and Learning Environment'.
1089
1090- Issue #24820: Users can now set breakpoint colors in
1091  Settings -> Custom Highlighting.  Original patch by Mark Roseman.
1092
1093- Issue #24972: Inactive selection background now matches active selection
1094  background, as configured by users, on all systems.  Found items are now
1095  always highlighted on Windows.  Initial patch by Mark Roseman.
1096
1097- Issue #24570: Idle: make calltip and completion boxes appear on Macs
1098  affected by a tk regression.  Initial patch by Mark Roseman.
1099
1100- Issue #24988: Idle ScrolledList context menus (used in debugger)
1101  now work on Mac Aqua.  Patch by Mark Roseman.
1102
1103- Issue #24801: Make right-click for context menu work on Mac Aqua.
1104  Patch by Mark Roseman.
1105
1106- Issue #25173: Associate tkinter messageboxes with a specific widget.
1107  For Mac OSX, make them a 'sheet'.  Patch by Mark Roseman.
1108
1109- Issue #25198: Enhance the initial html viewer now used for Idle Help.
1110  * Properly indent fixed-pitch text (patch by Mark Roseman).
1111  * Give code snippet a very Sphinx-like light blueish-gray background.
1112  * Re-use initial width and height set by users for shell and editor.
1113  * When the Table of Contents (TOC) menu is used, put the section header
1114  at the top of the screen.
1115
1116- Issue #25225: Condense and rewrite Idle doc section on text colors.
1117
1118- Issue #21995: Explain some differences between IDLE and console Python.
1119
1120- Issue #22820: Explain need for *print* when running file from Idle editor.
1121
1122- Issue #25224: Doc: augment Idle feature list and no-subprocess section.
1123
1124- Issue #25219: Update doc for Idle command line options.
1125  Some were missing and notes were not correct.
1126
1127- Issue #24861: Most of idlelib is private and subject to change.
1128  Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__.
1129
1130- Issue #25199: Idle: add synchronization comments for future maintainers.
1131
1132- Issue #16893: Replace help.txt with help.html for Idle doc display.
1133  The new idlelib/help.html is rstripped Doc/build/html/library/idle.html.
1134  It looks better than help.txt and will better document Idle as released.
1135  The tkinter html viewer that works for this file was written by Mark Roseman.
1136  The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated.
1137
1138- Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6.
1139
1140- Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts).
1141
1142
1143What's New in IDLE 3.5.0?
1144=========================
1145*Release date: 2015-09-13*
1146
1147- Issue #23672: Allow Idle to edit and run files with astral chars in name.
1148  Patch by Mohd Sanad Zaki Rizvi.
1149
1150- Issue 24745: Idle editor default font. Switch from Courier to
1151  platform-sensitive TkFixedFont.  This should not affect current customized
1152  font selections.  If there is a problem, edit $HOME/.idlerc/config-main.cfg
1153  and remove 'fontxxx' entries from [Editor Window].  Patch by Mark Roseman.
1154
1155- Issue #21192: Idle editor. When a file is run, put its name in the restart bar.
1156  Do not print false prompts. Original patch by Adnan Umer.
1157
1158- Issue #13884: Idle menus. Remove tearoff lines. Patch by Roger Serwy.
1159
1160- Issue #23184: remove unused names and imports in idlelib.
1161  Initial patch by Al Sweigart.
1162
1163- Issue #20577: Configuration of the max line length for the FormatParagraph
1164  extension has been moved from the General tab of the Idle preferences dialog
1165  to the FormatParagraph tab of the Config Extensions dialog.
1166  Patch by Tal Einat.
1167
1168- Issue #16893: Update Idle doc chapter to match current Idle and add new
1169  information.
1170
1171- Issue #3068: Add Idle extension configuration dialog to Options menu.
1172  Changes are written to HOME/.idlerc/config-extensions.cfg.
1173  Original patch by Tal Einat.
1174
1175- Issue #16233: A module browser (File : Class Browser, Alt+C) requires an
1176  editor window with a filename.  When Class Browser is requested otherwise,
1177  from a shell, output window, or 'Untitled' editor, Idle no longer displays
1178  an error box.  It now pops up an  Open Module box (Alt+M). If a valid name
1179  is entered and a module is opened, a corresponding browser is also opened.
1180
1181- Issue #4832: Save As to type Python files automatically adds .py to the
1182  name you enter (even if your system does not display it).  Some systems
1183  automatically add .txt when type is Text files.
1184
1185- Issue #21986: Code objects are not normally pickled by the pickle module.
1186  To match this, they are no longer pickled when running under Idle.
1187
1188- Issue #23180: Rename IDLE "Windows" menu item to "Window".
1189  Patch by Al Sweigart.
1190
1191- Issue #17390: Adjust Editor window title; remove 'Python',
1192  move version to end.
1193
1194- Issue #14105: Idle debugger breakpoints no longer disappear
1195  when inserting or deleting lines.
1196
1197- Issue #17172: Turtledemo can now be run from Idle.
1198  Currently, the entry is on the Help menu, but it may move to Run.
1199  Patch by Ramchandra Apt and Lita Cho.
1200
1201- Issue #21765: Add support for non-ascii identifiers to HyperParser.
1202
1203- Issue #21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav
1204  Heblikar.
1205
1206- Issue #18592: Add unittest for SearchDialogBase. Patch by Phil Webster.
1207
1208- Issue #21694: Add unittest for ParenMatch. Patch by Saimadhav Heblikar.
1209
1210- Issue #21686: add unittest for HyperParser. Original patch by Saimadhav
1211  Heblikar.
1212
1213- Issue #12387: Add missing upper(lower)case versions of default Windows key
1214  bindings for Idle so Caps Lock does not disable them. Patch by Roger Serwy.
1215
1216- Issue #21695: Closing a Find-in-files output window while the search is
1217  still in progress no longer closes Idle.
1218
1219- Issue #18910: Add unittest for textView. Patch by Phil Webster.
1220
1221- Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar.
1222
1223- Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster.
1224
1225- Issue #21477: htest.py - Improve framework, complete set of tests.
1226  Patches by Saimadhav Heblikar
1227
1228- Issue #18104: Add idlelib/idle_test/htest.py with a few sample tests to begin
1229  consolidating and improving human-validated tests of Idle. Change other files
1230  as needed to work with htest.  Running the module as __main__ runs all tests.
1231
1232- Issue #21139: Change default paragraph width to 72, the PEP 8 recommendation.
1233
1234- Issue #21284: Paragraph reformat test passes after user changes reformat width.
1235
1236- Issue #17654: Ensure IDLE menus are customized properly on OS X for
1237  non-framework builds and for all variants of Tk.
1238
1239
1240What's New in IDLE 3.4.0?
1241=========================
1242*Release date: 2014-03-16*
1243
1244- Issue #17390: Display Python version on Idle title bar.
1245  Initial patch by Edmond Burnett.
1246
1247- Issue #5066: Update IDLE docs. Patch by Todd Rovito.
1248
1249- Issue #17625: Close the replace dialog after it is used.
1250
1251- Issue #16226: Fix IDLE Path Browser crash.
1252  (Patch by Roger Serwy)
1253
1254- Issue #15853: Prevent IDLE crash on OS X when opening Preferences menu
1255  with certain versions of Tk 8.5.  Initial patch by Kevin Walzer.
1256
1257
1258What's New in IDLE 3.3.0?
1259=========================
1260*Release date: 2012-09-29*
1261
1262- Issue #17625: Close the replace dialog after it is used.
1263
1264- Issue #7163: Propagate return value of sys.stdout.write.
1265
1266- Issue #15318: Prevent writing to sys.stdin.
1267
1268- Issue #4832: Modify IDLE to save files with .py extension by
1269  default on Windows and OS X (Tk 8.5) as it already does with X11 Tk.
1270
1271- Issue #13532, #15319: Check that arguments to sys.stdout.write are strings.
1272
1273- Issue # 12510: Attempt to get certain tool tips no longer crashes IDLE.
1274  Erroneous tool tips have been corrected. Default added for callables.
1275
1276- Issue #10365: File open dialog now works instead of crashing even when
1277  parent window is closed while dialog is open.
1278
1279- Issue 14876: use user-selected font for highlight configuration.
1280
1281- Issue #14937: Perform auto-completion of filenames in strings even for
1282  non-ASCII filenames. Likewise for identifiers.
1283
1284- Issue #8515: Set __file__ when run file in IDLE.
1285  Initial patch by Bruce Frederiksen.
1286
1287- IDLE can be launched as `python -m idlelib`
1288
1289- Issue #14409: IDLE now properly executes commands in the Shell window
1290  when it cannot read the normal config files on startup and
1291  has to use the built-in default key bindings.
1292  There was previously a bug in one of the defaults.
1293
1294- Issue #3573: IDLE hangs when passing invalid command line args
1295  (directory(ies) instead of file(s)).
1296
1297- Issue #14018: Update checks for unstable system Tcl/Tk versions on OS X
1298  to include versions shipped with OS X 10.7 and 10.8 in addition to 10.6.
1299
1300
1301What's New in IDLE 3.2.1?
1302=========================
1303*Release date: 15-May-11*
1304
1305- Issue #6378: Further adjust idle.bat to start associated Python
1306
1307- Issue #11896: Save on Close failed despite selecting "Yes" in dialog.
1308
1309- Issue #1028: Ctrl-space binding to show completions was causing IDLE to exit.
1310  Tk < 8.5 was sending invalid Unicode null; replaced with valid null.
1311
1312- Issue #4676: <Home> toggle failing on Tk 8.5, causing IDLE exits and strange selection
1313  behavior. Improve selection extension behaviour.
1314
1315- Issue #3851: <Home> toggle non-functional when NumLock set on Windows.
1316
1317
1318What's New in IDLE 3.1b1?
1319=========================
1320*Release date: 06-May-09*
1321
1322- Issue #5707: Use of 'filter' in keybindingDialog.py was causing custom key assignment to
1323  fail.  Patch by Amaury Forgeot d'Arc.
1324
1325- Issue #4815: Offer conversion to UTF-8 if source files have
1326  no encoding declaration and are not encoded in UTF-8.
1327
1328- Issue #4008: Fix problems with non-ASCII source files.
1329
1330- Issue #4323: Always encode source as UTF-8 without asking
1331  the user (unless a different encoding is declared); remove
1332  user configuration of source encoding; all according to
1333  PEP 3120.
1334
1335- Issue #2665: On Windows, an IDLE installation upgraded from an old version
1336  would not start if a custom theme was defined.
1337
1338------------------------------------------------------------------------
1339Refer to NEWS2x.txt and HISTORY.txt for information on earlier releases.
1340------------------------------------------------------------------------
1341