Re-add Todo item about merging.
[bpt/emacs.git] / etc / TODO
index bea9f39..058bd6a 100644 (file)
--- a/etc/TODO
+++ b/etc/TODO
@@ -1,6 +1,6 @@
 Emacs TODO List                                                   -*-outline-*-
 
 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.
 
   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.
 
 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, inferior-lisp-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:
 
 * 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.
 
 ** 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.
 
 
 ** 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?).
 
 ** 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.
 ** 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.
 
 
 ** erase-buffer should perhaps disregard read-only properties of text.
 
@@ -113,8 +135,42 @@ and
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<device>\
 where <device> is the network device found under the first key.
 
 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?)
+
+** Add a defcustom that supplies a function to name numeric backup files,
+like make-backup-file-name-function for non-numeric backup files.
+
 * Important features:
 
 * 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.]
 ** 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 +237,12 @@ specified filters, specified timers, and specified hooks.
 
 * Other features we would like:
 
 
 * 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
 rather than interactively.  This a trivial one-liner in easy-mode.el.
 
 ** Remove the default toggling behavior of minor modes when called from elisp
 rather than interactively.  This a trivial one-liner in easy-mode.el.
 
@@ -320,15 +382,18 @@ 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
   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.
 
   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.
 
-** Install ruby-mode (needs assignment)?
-   http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00051.html
+** 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 ?
 
 ** Make keymaps a first-class Lisp object (this means a rewrite of
   keymap.c).  What should it do apart from being opaque ?
@@ -403,7 +468,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
   (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
 
 ** Do something to make rms happy with fx's dynamic loading, and use it
   to implement things like auto-loaded buffer parsers and database
@@ -429,9 +494,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.
 
 ** 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.
 ** 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.
@@ -515,12 +577,6 @@ when the body only calls primitives.
 
 ** In ps-print, provide an user friendly interface to specify fonts.
 
 
 ** 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).
 
 ** Enhance word boundary detection for such a script that doesn't use
   space at word boundary (e.g. Thai).
 
@@ -552,13 +608,6 @@ but which can also be used as a modifier).
    the window associated with that modeline.
    http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg02416.html
 
    the window associated with that modeline.
    http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg02416.html
 
-** When running isearch in a ChangeLog file, if the search fails,
-   then after another C-s try searching the previous ChangeLog, if
-   there is one. (e.g. go from ChangeLog to ChangeLog.12).
-   http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg02237.html
-   Juri Linkov has a patch for this:
-   http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00265.html
-
 * Internal changes
 
 ** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction
 * Internal changes
 
 ** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction
@@ -581,7 +630,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.
    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
 ** 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
@@ -609,6 +658,7 @@ but which can also be used as a modifier).
 
 * Other known bugs:
 
 
 * Other known bugs:
 
+** `make-frame' forgets unhandled parameters, at least for X11 frames.
 ** The \\{...} keymap dump output does not correctly remove shadowed entries:
 From: "Drew Adams" <drew.adams@oracle.com>
 
 ** The \\{...} keymap dump output does not correctly remove shadowed entries:
 From: "Drew Adams" <drew.adams@oracle.com>