annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/idlelib/TODO.txt @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
rev   line source
jpayne@68 1 Original IDLE todo, much of it now outdated:
jpayne@68 2 ============================================
jpayne@68 3 TO DO:
jpayne@68 4
jpayne@68 5 - improve debugger:
jpayne@68 6 - manage breakpoints globally, allow bp deletion, tbreak, cbreak etc.
jpayne@68 7 - real object browser
jpayne@68 8 - help on how to use it (a simple help button will do wonders)
jpayne@68 9 - performance? (updates of large sets of locals are slow)
jpayne@68 10 - better integration of "debug module"
jpayne@68 11 - debugger should be global resource (attached to flist, not to shell)
jpayne@68 12 - fix the stupid bug where you need to step twice
jpayne@68 13 - display class name in stack viewer entries for methods
jpayne@68 14 - suppress tracing through IDLE internals (e.g. print) DONE
jpayne@68 15 - add a button to suppress through a specific module or class or method
jpayne@68 16 - more object inspection to stack viewer, e.g. to view all array items
jpayne@68 17 - insert the initial current directory into sys.path DONE
jpayne@68 18 - default directory attribute for each window instead of only for windows
jpayne@68 19 that have an associated filename
jpayne@68 20 - command expansion from keywords, module contents, other buffers, etc.
jpayne@68 21 - "Recent documents" menu item DONE
jpayne@68 22 - Filter region command
jpayne@68 23 - Optional horizontal scroll bar
jpayne@68 24 - more Emacsisms:
jpayne@68 25 - ^K should cut to buffer
jpayne@68 26 - M-[, M-] to move by paragraphs
jpayne@68 27 - incremental search?
jpayne@68 28 - search should indicate wrap-around in some way
jpayne@68 29 - restructure state sensitive code to avoid testing flags all the time
jpayne@68 30 - persistent user state (e.g. window and cursor positions, bindings)
jpayne@68 31 - make backups when saving
jpayne@68 32 - check file mtimes at various points
jpayne@68 33 - Pluggable interface with RCS/CVS/Perforce/Clearcase
jpayne@68 34 - better help?
jpayne@68 35 - don't open second class browser on same module (nor second path browser)
jpayne@68 36 - unify class and path browsers
jpayne@68 37 - Need to define a standard way whereby one can determine one is running
jpayne@68 38 inside IDLE (needed for Tk mainloop, also handy for $PYTHONSTARTUP)
jpayne@68 39 - Add more utility methods for use by extensions (a la get_selection)
jpayne@68 40 - Way to run command in totally separate interpreter (fork+os.system?) DONE
jpayne@68 41 - Way to find definition of fully-qualified name:
jpayne@68 42 In other words, select "UserDict.UserDict", hit some magic key and
jpayne@68 43 it loads up UserDict.py and finds the first def or class for UserDict.
jpayne@68 44 - need a way to force colorization on/off
jpayne@68 45 - need a way to force auto-indent on/off
jpayne@68 46
jpayne@68 47 Details:
jpayne@68 48
jpayne@68 49 - ^O (on Unix -- open-line) should honor autoindent
jpayne@68 50 - after paste, show end of pasted text
jpayne@68 51 - on Windows, should turn short filename to long filename (not only in argv!)
jpayne@68 52 (shouldn't this be done -- or undone -- by ntpath.normpath?)
jpayne@68 53 - new autoindent after colon even indents when the colon is in a comment!
jpayne@68 54 - sometimes forward slashes in pathname remain
jpayne@68 55 - sometimes star in window name remains in Windows menu
jpayne@68 56 - With unix bindings, ESC by itself is ignored
jpayne@68 57 - Sometimes for no apparent reason a selection from the cursor to the
jpayne@68 58 end of the command buffer appears, which is hard to get rid of
jpayne@68 59 because it stays when you are typing!
jpayne@68 60 - The Line/Col in the status bar can be wrong initially in PyShell DONE
jpayne@68 61
jpayne@68 62 Structural problems:
jpayne@68 63
jpayne@68 64 - too much knowledge in FileList about EditorWindow (for example)
jpayne@68 65 - should add some primitives for accessing the selection etc.
jpayne@68 66 to repeat cumbersome code over and over
jpayne@68 67
jpayne@68 68 ======================================================================
jpayne@68 69
jpayne@68 70 Jeff Bauer suggests:
jpayne@68 71
jpayne@68 72 - Open Module doesn't appear to handle hierarchical packages.
jpayne@68 73 - Class browser should also allow hierarchical packages.
jpayne@68 74 - Open and Open Module could benefit from a history, DONE
jpayne@68 75 either command line style, or Microsoft recent-file
jpayne@68 76 style.
jpayne@68 77 - Add a Smalltalk-style inspector (i.e. Tkinspect)
jpayne@68 78
jpayne@68 79 The last suggestion is already a reality, but not yet
jpayne@68 80 integrated into IDLE. I use a module called inspector.py,
jpayne@68 81 that used to be available from python.org(?) It no longer
jpayne@68 82 appears to be in the contributed section, and the source
jpayne@68 83 has no author attribution.
jpayne@68 84
jpayne@68 85 In any case, the code is useful for visually navigating
jpayne@68 86 an object's attributes, including its container hierarchy.
jpayne@68 87
jpayne@68 88 >>> from inspector import Tkinspect
jpayne@68 89 >>> Tkinspect(None, myObject)
jpayne@68 90
jpayne@68 91 Tkinspect could probably be extended and refined to
jpayne@68 92 integrate better into IDLE.
jpayne@68 93
jpayne@68 94 ======================================================================
jpayne@68 95
jpayne@68 96 Comparison to PTUI
jpayne@68 97 ------------------
jpayne@68 98
jpayne@68 99 + PTUI's help is better (HTML!)
jpayne@68 100
jpayne@68 101 + PTUI can attach a shell to any module
jpayne@68 102
jpayne@68 103 + PTUI has some more I/O commands:
jpayne@68 104 open multiple
jpayne@68 105 append
jpayne@68 106 examine (what's that?)
jpayne@68 107
jpayne@68 108 ======================================================================
jpayne@68 109
jpayne@68 110 Notes after trying to run Grail
jpayne@68 111 -------------------------------
jpayne@68 112
jpayne@68 113 - Grail does stuff to sys.path based on sys.argv[0]; you must set
jpayne@68 114 sys.argv[0] to something decent first (it is normally set to the path of
jpayne@68 115 the idle script).
jpayne@68 116
jpayne@68 117 - Grail must be exec'ed in __main__ because that's imported by some
jpayne@68 118 other parts of Grail.
jpayne@68 119
jpayne@68 120 - Grail uses a module called History and so does idle :-(
jpayne@68 121
jpayne@68 122 ======================================================================
jpayne@68 123
jpayne@68 124 Robin Friedrich's items:
jpayne@68 125
jpayne@68 126 Things I'd like to see:
jpayne@68 127 - I'd like support for shift-click extending the selection. There's a
jpayne@68 128 bug now that it doesn't work the first time you try it.
jpayne@68 129 - Printing is needed. How hard can that be on Windows? FIRST CUT DONE
jpayne@68 130 - The python-mode trick of autoindenting a line with <tab> is neat and
jpayne@68 131 very handy.
jpayne@68 132 - (someday) a spellchecker for docstrings and comments.
jpayne@68 133 - a pagedown/up command key which moves to next class/def statement (top
jpayne@68 134 level)
jpayne@68 135 - split window capability
jpayne@68 136 - DnD text relocation/copying
jpayne@68 137
jpayne@68 138 Things I don't want to see.
jpayne@68 139 - line numbers... will probably slow things down way too much.
jpayne@68 140 - Please use another icon for the tree browser leaf. The small snake
jpayne@68 141 isn't cutting it.
jpayne@68 142
jpayne@68 143 ----------------------------------------------------------------------
jpayne@68 144
jpayne@68 145 - Customizable views (multi-window or multi-pane). (Markus Gritsch)
jpayne@68 146
jpayne@68 147 - Being able to double click (maybe double right click) on a callable
jpayne@68 148 object in the editor which shows the source of the object, if
jpayne@68 149 possible. (Gerrit Holl)
jpayne@68 150
jpayne@68 151 - Hooks into the guts, like in Emacs. (Mike Romberg)
jpayne@68 152
jpayne@68 153 - Sharing the editor with a remote tutor. (Martijn Faassen)
jpayne@68 154
jpayne@68 155 - Multiple views on the same file. (Tony J Ibbs)
jpayne@68 156
jpayne@68 157 - Store breakpoints in a global (per-project) database (GvR); Dirk
jpayne@68 158 Heise adds: save some space-trimmed context and search around when
jpayne@68 159 reopening a file that might have been edited by someone else.
jpayne@68 160
jpayne@68 161 - Capture menu events in extensions without changing the IDLE source.
jpayne@68 162 (Matthias Barmeier)
jpayne@68 163
jpayne@68 164 - Use overlapping panels (a "notebook" in MFC terms I think) for info
jpayne@68 165 that doesn't need to be accessible simultaneously (e.g. HTML source
jpayne@68 166 and output). Use multi-pane windows for info that does need to be
jpayne@68 167 shown together (e.g. class browser and source). (Albert Brandl)
jpayne@68 168
jpayne@68 169 - A project should invisibly track all symbols, for instant search,
jpayne@68 170 replace and cross-ref. Projects should be allowed to span multiple
jpayne@68 171 directories, hosts, etc. Project management files are placed in a
jpayne@68 172 directory you specify. A global mapping between project names and
jpayne@68 173 project directories should exist [not so sure --GvR]. (Tim Peters)
jpayne@68 174
jpayne@68 175 - Merge attr-tips and auto-expand. (Mark Hammond, Tim Peters)
jpayne@68 176
jpayne@68 177 - Python Shell should behave more like a "shell window" as users know
jpayne@68 178 it -- i.e. you can only edit the current command, and the cursor can't
jpayne@68 179 escape from the command area. (Albert Brandl)
jpayne@68 180
jpayne@68 181 - Set X11 class to "idle/Idle", set icon and title to something
jpayne@68 182 beginning with "idle" -- for window manangers. (Randall Hopper)
jpayne@68 183
jpayne@68 184 - Config files editable through a preferences dialog. (me) DONE
jpayne@68 185
jpayne@68 186 - Config files still editable outside the preferences dialog.
jpayne@68 187 (Randall Hopper) DONE
jpayne@68 188
jpayne@68 189 - When you're editing a command in PyShell, and there are only blank
jpayne@68 190 lines below the cursor, hitting Return should ignore or delete those
jpayne@68 191 blank lines rather than deciding you're not on the last line. (me)
jpayne@68 192
jpayne@68 193 - Run command (F5 c.s.) should be more like Pythonwin's Run -- a
jpayne@68 194 dialog with options to give command line arguments, run the debugger,
jpayne@68 195 etc. (me)
jpayne@68 196
jpayne@68 197 - Shouldn't be able to delete part of the prompt (or any text before
jpayne@68 198 it) in the PyShell. (Martijn Faassen) DONE
jpayne@68 199
jpayne@68 200 - Emacs style auto-fill (also smart about comments and strings).
jpayne@68 201 (Jeremy Hylton)
jpayne@68 202
jpayne@68 203 - Output of Run Script should go to a separate output window, not to
jpayne@68 204 the shell window. Output of separate runs should all go to the same
jpayne@68 205 window but clearly delimited. (David Scherer) REJECT FIRST, LATTER DONE
jpayne@68 206
jpayne@68 207 - GUI form designer to kick VB's butt. (Robert Geiger) THAT'S NOT IDLE
jpayne@68 208
jpayne@68 209 - Printing! Possibly via generation of PDF files which the user must
jpayne@68 210 then send to the printer separately. (Dinu Gherman) FIRST CUT