]> code.delx.au - gnu-emacs/blobdiff - etc/TODO
* lisp/vc-bzr.el (vc-bzr-revision-completion-table): Apply
[gnu-emacs] / etc / TODO
index 5698f0a4f893a2c1efad9c884200e0eed5cb4091..b8c55bff92bd303f794da49fe164cd0e048eb4c7 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, 2008
+Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
   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.
 
@@ -15,40 +15,49 @@ to the FSF.
 * Simple tasks. These don't require much emacs knowledge, they are
 suitable for anyone from beginners to experts.
 
 * 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.
+** Convert modes that use view-mode to be derived from special-mode instead.
 
 ** 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
 
 ** 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, conf-*-mode.
+not have one at the moment and probably should: text-mode, inferior-lisp-mode.
 
 
-** Change the text for the mode-line tooltips to not use things like C-x 0.
-In general make sure that tooltips have obvious meanings.  Check if
-all items on the mode-line have a suitable tooltip.
+** 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.
 
 
 ** Check what minor modes don't use define-minor-mode and convert them
 to use it.
 
-* Small but important fixes needed in existing features:
+** Convert all defvars with leading `*' in the doc-strings into defcustoms
+of appropriate :type and :group.
+
+** Remove any leading `*'s from defcustom doc-strings.
+
+** Remove unnecessary autoload cookies from defcustoms.
+This needs a bit of care, since often people have become used to
+expecting such variables to always be defined, eg when they modify
+things in their .emacs.
 
 
-** Make "emacs --daemon" start emacs without showing any frame. 
-Use emacsclient later to open frames.
+** See if other files can use generated-autoload-file (see eg ps-print).
 
 
-** Make it possible to reliably turn on minor modes using "mode:" in the local 
-variables section.
+* 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.
 
 
-** "Options -> Save Options" should save the font set via "Set Font/Fontset"
-I.e. mouse-set-font should use customize-face.
+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.
 
 ** Compute the list of active keymaps *after* reading the first event.
 
 ** Distribute a bar cursor of width > 1 evenly between the two glyphs
    on each side of the bar (what to do at the edges?).
 
 
 ** Compute the list of active keymaps *after* reading the first event.
 
 ** 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.
@@ -103,8 +112,6 @@ I.e. mouse-set-font should use customize-face.
 
 ** Add function to redraw the tool bar.
 
 
 ** Add function to redraw the tool bar.
 
-** M-! M-n should fetch the buffer-file-name as the default.
-
 ** Redesign the load-history data structure so it can cope better
   with evaluating definitions of the same function from different files,
   recording which file the latest definition came from.
 ** Redesign the load-history data structure so it can cope better
   with evaluating definitions of the same function from different files,
   recording which file the latest definition came from.
@@ -130,8 +137,43 @@ Change them to use report-emacs-bug.
 
 ** Allow fringe indicators to display a tooltip (provide a help-echo property?)
 
 
 ** 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.
+
+** `dired-mode' should specify the semantics of `buffer-modified-p' for
+dired buffers and DTRT WRT `auto-revert-mode'. 
+
+** Check uses of prin1 for error-handling.
+http://lists.gnu.org/archive/html/emacs-devel/2008-08/msg00456.html
+
 * 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.]
@@ -146,12 +188,6 @@ Change them to use report-emacs-bug.
   by http://savannah.nongnu.org/projects/emacs-rtf/, which is still in
   very early stages.
 
   by http://savannah.nongnu.org/projects/emacs-rtf/, which is still in
   very early stages.
 
-** Implement something better than the current Refill mode.  This
-  probably needs some primitive support.
-
-** Add a command to make a "Local Variables" section in the current buffer
-  and/or add a variable to the list.
-
 ** Implement primitive and higher-level functions to allow filling
   properly with variable-pitch faces.
 
 ** Implement primitive and higher-level functions to allow filling
   properly with variable-pitch faces.
 
@@ -160,7 +196,7 @@ Change them to use report-emacs-bug.
   posn-at-point and posn-at-x-y should now make it doable in elisp.
 
 ** Implement intelligent search/replace, going beyond query-replace
   posn-at-point and posn-at-x-y should now make it doable in elisp.
 
 ** Implement intelligent search/replace, going beyond query-replace
-  (see http://graphics.csail.mit.edu/~rcm/chi04.pdf).
+  (see http://groups.csail.mit.edu/uid/projects/clustering/chi04.pdf).
 
 ** Implement other text formatting properties.
 *** Footnotes that can appear either in place or at the end of the page.
 
 ** Implement other text formatting properties.
 *** Footnotes that can appear either in place or at the end of the page.
@@ -302,7 +338,7 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
   Bison input files, for instance, or other kinds of text
   where one language is embedded in another language.  See
   http://www.loveshack.ukfsn.org/emacs/multi-mode.el and also
   Bison input files, for instance, or other kinds of text
   where one language is embedded in another language.  See
   http://www.loveshack.ukfsn.org/emacs/multi-mode.el and also
-  mmm-mode, as reference for approaches took by others.
+  mmm-mode, as reference for approaches taken by others.
 
 ** Arrange a way for an input method to return the first character
   immediately, then replace it later.  So that C-s a with
 
 ** Arrange a way for an input method to return the first character
   immediately, then replace it later.  So that C-s a with
@@ -317,18 +353,8 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
 ** Give desktop.el a feature to switch between different named
   desktops.
 
 ** Give desktop.el a feature to switch between different named
   desktops.
 
-** Replace finder.el with something that generates an Info file
-  which gives the same information through a menu structure.  [Dave
-  Love started on this.]
-
 ** Add a cpio mode, more or less like tar mode.
 
 ** Add a cpio mode, more or less like tar mode.
 
-** Implement a variant of uncompress.el or jka-compr.el that works with
-  GNU Privacy Guard for encryption.  [Code exists but isn't assigned.
-  See the Gnus development sources for assigned code concerning GPG
-  use with mail, which is probably a good start.]  See also
-  http://www.loveshack.ukfsn.org/emacs/auto-crypt.tgz.
-
 ** Save undo information in special temporary files, and reload it
   when needed for undoing.  This could extend undo capacity.
 
 ** Save undo information in special temporary files, and reload it
   when needed for undoing.  This could extend undo capacity.
 
@@ -343,11 +369,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
   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, _possibly_ Cedet and ECB.
+  significant work), PSGML, _possibly_ 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.
 
+** 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 ?
 ** 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 ?
@@ -433,15 +467,13 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
 ** Provide portable undumping using mmap (per gerd design).
 
 ** Make byte-compile avoid binding an expanded defsubst's args
 ** Provide portable undumping using mmap (per gerd design).
 
 ** Make byte-compile avoid binding an expanded defsubst's args
-when the body only calls primitives.
+  when the body only calls primitives.
 
 ** Use the XIE X extension, if available, for image display.
 
 ** Make monochrome images display using the foreground and background
   colors of the applicable faces.
 
 
 ** Use the XIE X extension, if available, for image display.
 
 ** Make monochrome images display using the foreground and background
   colors of the applicable faces.
 
-** Face remapping.
-
 ** Make `format-time-string' preserve text properties like `format'.
 
 ** Optionally make the cursor a little thinner at the end of a line
 ** Make `format-time-string' preserve text properties like `format'.
 
 ** Optionally make the cursor a little thinner at the end of a line
@@ -479,8 +511,8 @@ when the body only calls primitives.
   probably in separate manual.
 
 ** Convert the XPM bitmaps to PPM, replace the PBMs with them and scrap
   probably in separate manual.
 
 ** Convert the XPM bitmaps to PPM, replace the PBMs with them and scrap
-  the XPMs so that the colour versions work generally.  (Requires care
-  with the colour used for the transparent regions.)
+  the XPMs so that the color versions work generally.  (Requires care
+  with the color used for the transparent regions.)
 
 ** Convenient access to the `values' variable.  It would be nice to have an
   interface that would show you the printed reps of the elements of the
 
 ** Convenient access to the `values' variable.  It would be nice to have an
   interface that would show you the printed reps of the elements of the
@@ -498,13 +530,6 @@ when the body only calls primitives.
   the definition of `file-attributes' and `directory-files-and-attributes'
   and from the calls.
 
   the definition of `file-attributes' and `directory-files-and-attributes'
   and from the calls.
 
-** Modify the emulation of `stat' for MS-Windows to support large files.
-  The current version uses the stock Windows definition of `struct
-  stat', where the file's size is returned as a 32-bit integer.  That
-  overflows for files larger than 4GB.  To fix, modify `stat' to use
-  64-bit size, and use a declaration of `struct stat' that supports
-  such sizes.
-
 ** Make language-info-alist customizable.  Currently a user can customize
   only the variable `current-language-environment'.
 
 ** Make language-info-alist customizable.  Currently a user can customize
   only the variable `current-language-environment'.
 
@@ -539,13 +564,11 @@ when the body only calls primitives.
   packages (e.g. tamago, anthy) or an input method via XIM.
 
 ** Let LEIM handle the Mode_switch key like XIM does (i.e. a toggle like C-\
   packages (e.g. tamago, anthy) or an input method via XIM.
 
 ** Let LEIM handle the Mode_switch key like XIM does (i.e. a toggle like C-\
-but which can also be used as a modifier).
+   but which can also be used as a modifier).
 
 ** Improve Help buffers: Change the face of previously visited links (like
 
 ** Improve Help buffers: Change the face of previously visited links (like
-   Info, but also with regard to namespace), add a forward button to make the
-   Help buffer more browser like and gives the value of lisp expressions
-   e.g auto-mode-alist, the right face. [nickrob@snap.net.nz has a patch
-   for this for inclusion after 22.1].
+   Info, but also with regard to namespace), and give the value of
+   lisp expressions, e.g auto-mode-alist, the right face.
 
 ** Possibly make `list-holidays' eval items in the calendar-holidays variable.
    See thread
 
 ** Possibly make `list-holidays' eval items in the calendar-holidays variable.
    See thread
@@ -597,7 +620,7 @@ but which can also be used as a modifier).
    For use by sml-mode, python-mode, tex-mode, scheme-mode, lisp-mode,
    haskell-mode, tuareg-mode, ...
 
    For use by sml-mode, python-mode, tex-mode, scheme-mode, lisp-mode,
    haskell-mode, tuareg-mode, ...
 
-** Make SYNC_INPUT the default.
+** Make SYNC_INPUT the default. [true since 2008-03-11]
    All loops using immediate_quit need to be checked to ensure that
    C-g can interrupt them, in case of an infinite loop.  Once we
    switch to using SYNC_INPUT, we can remove the BLOCK_INPUTs in the
    All loops using immediate_quit need to be checked to ensure that
    C-g can interrupt them, in case of an infinite loop.  Once we
    switch to using SYNC_INPUT, we can remove the BLOCK_INPUTs in the
@@ -612,32 +635,6 @@ but which can also be used as a modifier).
 * Other known bugs:
 
 ** `make-frame' forgets unhandled parameters, at least for X11 frames.
 * 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>
-
-(define-key minibuffer-local-map [(control ?=)] 'foo)
-(define-key minibuffer-local-completion-map [(control ?=)] 'foo)
-
-(defun toto () "\\{minibuffer-local-completion-map}"  4)
-
-C-h f toto shows a duplicate entry for C-=:
-
-toto is a Lisp function.
-(toto)
-
-key             binding
-- ---             -------
-
-C-g            abort-recursive-edit
-TAB            minibuffer-complete
-C-j            exit-minibuffer
-RET            exit-minibuffer
-ESC            Prefix Command
-SPC            minibuffer-complete-word
-?              minibuffer-completion-help
-C-=            foo
-C-=            foo
-...
 
 ** a two-char comment-starter whose two chars are symbol constituents will
 not be noticed if it appears within a word.
 
 ** a two-char comment-starter whose two chars are symbol constituents will
 not be noticed if it appears within a word.
@@ -648,10 +645,10 @@ not be noticed if it appears within a word.
 \f
 This file is part of GNU Emacs.
 
 \f
 This file is part of GNU Emacs.
 
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -659,8 +656,6 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.
+along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036
 
 ;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036