1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-24 07:20:37 +00:00
emacs/etc/TODO
2001-11-13 02:20:08 +00:00

173 lines
6.6 KiB
Plaintext

-*-text-*-
* Port the conservative stack marking code of Emacs' garbage collector
to more systems, so that we can completely get rid of GCPROs.
* Program Enriched mode to read and save in RTF. [Is there actually a
decent single definition of RTF?]
* Implement other text formatting properties.
** Footnotes that can appear either in place or at the end of the page.
** text property that says "don't break line in middle of this".
Don't break the line between two characters that have the
same value of this property.
** Discretionary hyphens that are not visible when they are at end of line.
* Implement something better than the current Refill mode. This
probably needs some primitive support.
* Implement a clean way to use different major modes for
different parts of a buffer.
* Give start-process the ability to direct standard-error
output to a different filter.
* Make compile.el record the markers that point to error loci
on text properties in the error message lines.
* Make desktop.el save the "frame configuration" of Emacs (in some
useful sense).
* Make movemail work with IMAP.
* Add ANSI C prototype forward declarations to the source files,
so that even the functions used within one file have prototypes.
* Add a way for macro definitions to provide info to edebug
so it can handle them right.
* Replace finder.el with something that generates an Info file
which gives the same information through a menu structure. [Dave
Love started on this.]
* Implement a variant of uncompress.el or jka-compr.el that works with
GNU Privacy Guard for encryption. [Code exists but isn't assigned.]
* Save undo information in files, and reload it when needed
for undoing.
* Change the Windows NT menu code
so that it handles the deep_p argument and avoids
regenerating the whole menu bar menu tree except
when the user tries to use the menubar.
This requires the RIT to forward the WM_INITMENU message to
the main thread, and not return from that message until the main
thread has processed the menu_bar_activate_event and regenerated
the whole menu bar. In the mean time, it should process other messages.
* Make Emacs work as a Java Bean.
* Implement the design for Unicode-based internal encoding for Mule.
* Document the features of libraries missing from the manual (or
ancillary manuals, including the Lisp manual in some cases). Here's
a list which is probably not complete/correct: align, allout, artist,
ansi-color, array, battery, calculator, cdl, cmuscheme, completion,
delim-col, dirtrack, double, echistory, elide-head, easymenu,
expand, flow-ctrl, format [format-alist], generic/generic-x [various
modes], kermit, log-edit, ledit [obsolete?], makesum, midnight
[other than in Kill Buffer node], mouse-copy [?], mouse-drag,
mouse-sel, net-utils, rcompile, snmp-mode [?], soundex [should be
interactive?], strokes [start from the web page], talk, thingatpt
[interactive functions?], type-break, vcursor, xscheme, zone-mode
[?], mlconvert [?], iso-cvt, iso-swed, swedish, feedmail [?], uce,
bruce, gametree, meese, page-ext, refbib, refer, scribe, sgml-mode,
spell, texinfo, underline, cmacexp, hideif, mantemp [obsolete?],
pcomplete, assoc, xml, cvs-status (should be described in PCL-CVS manual);
other progmodes, probably in separate manual.
* Get some major packages installed: W3/url (development version needs
significant work), PSGML, Mule-UCS, Tramp (?). Check the
assignments file for other packages which might go in and have been
missed.
* 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 ?
what else ?
* Provide real menus on ttys. The MS-DOS implementation can serve as
an example how to do part of this.
* Implement popular parts of the rest of the CL functions as compiler
macros in cl-macs.
* Highlight rectangles (`mouse-track-rectangle-p' in XEmacs).
* Support simultaneous tty and X frames.
* Implement primitive and higher-level functions to allow filling
properly with variable-pitch faces.
* Provide MIME support for Rmail using the Gnus MIME library.
* Eliminate the storm of warnings concerning char/unsigned char
mismatches that we get with proprietary compilers on various systems.
They make it difficult to spot the important warnings.
* Fix anything necessary to use `long long' EMACS_INTs with GCC.
* Split out parts of lisp.h and generate Makefile dependencies
automatically.
* Update the FAQ.
* Allow auto-compression-mode to use zlib calls if zlib is available.
[It's required for PNG, so may be linked anyhow.]
* Add a --pristine startup flag which does -q --no-site-file plus
ignoring X resources (Doze equivalents?) and most of the
environment. What should not be ignored needs consideration.
* Investigate using the language environment (or locale?) to set up
more things, such as the default Ispell dictionary, calendar
holidays...
* Improve the GC (generational, incremental). (We may be able to use
the Boehm collector.)
* Port Emacs to GTK+. (Relevant work has been done already.)
* Make the Lucid menu widget display multilingual text.
* Implement, in C, a ``focus follows mouse'' mode that selects a window
when the mouse enters it.
* Check what hooks would help Emacspeak -- see the defadvising in W3.
* Implement some variety of (non-gtk) drag-and-drop support under X.
Using libdnd might be a good start.
* Remove the limitation that window and frame widths and heights can
be only full columns/lines.
* Add horizontal scroll bars.
* Integrate Vroonhof's Custom themes code and make it do useful
things. [The integration is partly done.]
* Provide an optional feature which computes a scroll bar slider's
size and its position from lines instead of characters.
* Adapt the gnuserv/gnudoit features for server/emacsclient.
* Remove the special treatment of binary files by DOS and Windows ports.
They should use find-file-literally and `no-conversion' instead.
* Investigate using GNU Lightning or similar system for incremental
compilation of selected bytecode functions to subrs. Converting CCL
programs to native code is probably the first thing to try, though.
* Add a feature to Info similar to "info --apropos SUBJECT".
* If you do an insert-file and that file is currently modified in
another buffer but not written yet, print a warning.
* Add support for SVG (Scalable Vector Graphics) rendering to
Emacs.
* Use the XIE X extension, if available, for image display.
* Rewrite make-docfile to something sane.