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