annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/idlelib/TODO.txt @ 69:33d812a61356

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