home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / TODO.txt < prev    next >
Text File  |  2003-12-30  |  8KB  |  211 lines

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