*** empty log message ***
[bpt/emacs.git] / etc / TODO
index 981992b..8d8620d 100644 (file)
--- a/etc/TODO
+++ b/etc/TODO
@@ -1,6 +1,6 @@
 Emacs TODO List                                                   -*-outline-*-
 
-Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
   Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
@@ -12,8 +12,39 @@ it best.  Since Emacs is an FSF-copyrighted package, please be
 prepared to sign legal papers to transfer the copyright on your work
 to the FSF.
 
+* Simple tasks. These don't require much emacs knowledge, they are
+suitable for anyone from beginners to experts.
+
+** make emacsclient accept -nw as a synonym to -t.
+
+** Replace some uses of the preprocessor code in Makefile.in with the equivalent autoconf.
+
+** Major modes should have a menu entry.  Examples of modes that do
+not have one at the moment and probably should: text-mode,
+change-log-mode, texinfo-mode, outline-mode.
+
+** Check if all items on the mode-line have a suitable tooltip for all modes.
+
+** edebug and debugger-mode should have a toolbar.
+It can use the same icons as gud.
+
+** Check what minor modes don't use define-minor-mode and convert them
+to use it.
+
+** Convert all defvars with leading `*' in the doc-strings into defcustoms
+of appropriate :type and :group.
+
 * Small but important fixes needed in existing features:
 
+** Flymake's customization mechanism needs to be both simpler (fewer
+levels of indirection) and better documented, so it is easier to
+understand.  I find it quite hard to figure out what compilation
+command it will use.
+
+I suggest totally rewriting that part of Flymake, using the simplest
+mechanism that sufficies for the specific needs.  That will be easy
+for users to customize.
+
 ** Make "emacs --daemon" start emacs without showing any frame. 
 Use emacsclient later to open frames.
 
@@ -25,23 +56,14 @@ I.e. mouse-set-font should use customize-face.
 
 ** Compute the list of active keymaps *after* reading the first event.
 
-** mouse-autoselect-window should wait to select the window until
-the mouse is put to rest or after a delay or both, so that moving over
-a window doesn't select it.
-
-** In C-x d, the default if you type RET should be the directory name,
-but if you type M-n you should get the visited file name of the
-current buffer.
-
 ** Distribute a bar cursor of width > 1 evenly between the two glyphs
    on each side of the bar (what to do at the edges?).
 
-** Make vc-checkin avoid reverting the buffer if has not changed after
-   the checkin. Comparing (md5 BUFFER) to (md5 FILE) should be enough.
-
 ** buffer-offer-save should be a permanent local.
 
 ** revert-buffer should eliminate overlays and the mark.
+   For related problems consult the thread starting with
+   http://lists.gnu.org/archive/html/emacs-devel/2005-11/msg01346.html
 
 ** erase-buffer should perhaps disregard read-only properties of text.
 
@@ -113,8 +135,39 @@ and
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<device>\
 where <device> is the network device found under the first key.
 
+** Check for any included packages that define obsolete bug-reporting commands.
+Change them to use report-emacs-bug.
+
+** Allow fringe indicators to display a tooltip (provide a help-echo property?)
+
 * Important features:
 
+** Having tabs above a window to switch buffers in it.
+
+** "Perspectives" are named persistent window configurations.  We have
+had the window configuration mechanism in GNU Emacs since the
+beginning but we have never developed a good user interface to take
+advantage of them.  Eclipse's user interface seems to be good.
+
+Perspectives work well even if you do the equivalent of C-x 4 C-f
+because of the distinction between view windows vs file windows.  In
+Emacs this is more or less the "dedicated window" feature, but we have
+never really made it work for this.
+
+Perspectives also need to interact with the tabs.
+
+** Imenu could be extended into a file-structure browsing mechanism
+using code like that of customize-groups.
+
+** Display something in the margin on lines that have compilation
+errors.
+
+** Compilation error navigation bar, parallel to the scroll bar,
+indicating where in the buffer there are compilation errors.
+Perhaps we could arrange to display these error indications on top
+of the scroll bar itself.  That depends on to what extent toolkit
+scroll bars are extensible.
+
 ** Provide user-friendly ways to list all available font families,
    list fonts, display a font as a sample, etc.  [fx is looking at
   multilingual font selection for the Unicode branch of Emacs.]
@@ -181,6 +234,10 @@ specified filters, specified timers, and specified hooks.
 
 * Other features we would like:
 
+** Make longlines-mode wrap lines based on screen position instead
+   of character position, so that variable-width fonts can be handled
+   properly.
+
 ** Allow frames(terminals) created by emacsclient to inherit their environment
 from the emacsclient process.
 ** Remove the default toggling behavior of minor modes when called from elisp
@@ -322,13 +379,19 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
   the whole menu bar.  In the mean time, it should process other messages.
 
 ** Get some major packages installed: W3 (development version needs
-  significant work), PSGML, nXML [Mark Hershberger is looking at this
-  http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01699.html],
-  _possibly_ Cedet and ECB.
+  significant work), PSGML, _possibly_ Cedet and ECB.
   http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg01493.html
   Check the assignments file for other packages which might go in and
   have been missed.
 
+** Possibly install python-mode in place of python.el, or combine the two.
+Someone needs to do the work of figuring out who all the non-trivial
+python-mode.el contributors are and getting assignments.
+http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02156.html
+http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02201.html
+http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02489.html
+http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
+
 ** Make keymaps a first-class Lisp object (this means a rewrite of
   keymap.c).  What should it do apart from being opaque ?
   multiple inheritance ?  faster where-is ?  no more fix_submap_inheritance ?
@@ -402,7 +465,7 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
   (with ASCIIfied fallback via latin1-disp).  Examples include
   box-drawing graphics in Custom buffers, W3 rules and tables, and
   tree displays generally, mode-line mail indicator.  [See work done
-  already for Emacs 22 and consult fx.]
+  already for Emacs 23 and consult fx.]
 
 ** Do something to make rms happy with fx's dynamic loading, and use it
   to implement things like auto-loaded buffer parsers and database
@@ -428,9 +491,6 @@ when the body only calls primitives.
 ** Optionally make the cursor a little thinner at the end of a line
   or the end of the buffer.
 
-** Add support for rendering antialiased text, probably using
-  XRender/Freetype.
-
 ** Port the conservative stack marking code of Emacs' garbage collector
   to more systems, so that we can completely get rid of GCPROs.  Note
   that Boehm garbage collector provides this.
@@ -514,12 +574,6 @@ when the body only calls primitives.
 
 ** In ps-print, provide an user friendly interface to specify fonts.
 
-** OpenType font support for various complex scripts (e.g. Devanagari).
-  As X protocal doesn't provide a way to access OpenType Layout Tables
-  in a OpenType font of a server side, we need a way to utilize local
-  fonts (perhaps by directly using the Freetype library or indirectly
-  via Xft library).
-
 ** Enhance word boundary detection for such a script that doesn't use
   space at word boundary (e.g. Thai).
 
@@ -573,7 +627,7 @@ but which can also be used as a modifier).
    a derived mode of sendmail.el.  Or arrange for messages.el to be split
    into a small core and "the rest" so that we use less resources as long as
    we stick to the features provided in sendmail.el.
+
 ** Replace gmalloc.c with the modified Doug Lea code from the current
    GNU libc so that the special mmapping of buffers can be removed --
    that apparently loses under Solaris, at least. [fx has mostly done