mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-21 10:24:55 +00:00
397 lines
17 KiB
Plaintext
397 lines
17 KiB
Plaintext
-*-outline-*-
|
|
|
|
If you are ready to start working on any of these TODO items, we
|
|
appreciate your help; please write to emacs-devel@gnu.org so we can be
|
|
aware that the problem is being addressed, and talk with you how to do
|
|
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.
|
|
|
|
* Small but important fixes needed in existing features:
|
|
|
|
** Make occur correctly handle matches that span more than one line,
|
|
as well as overlapping matches.
|
|
|
|
** Fix the kill/yank treatment of invisible text. At the moment,
|
|
invisible text is placed in the kill-ring, so that the contents of
|
|
the ring may not correspond to the text as displayed to the user.
|
|
It ought to be possible to omit text which is invisible (due to a
|
|
text-property, overlay, or selective display) from the kill-ring.
|
|
|
|
** Change the way define-minor-mode handles autoloading.
|
|
It should not generate :require. Or :require in defcustom
|
|
should not be recorded in the user's custom-set-variables call.
|
|
|
|
** The buttons at the top of a custom buffer should not omit
|
|
variables whose values are currently hidden.
|
|
|
|
** Clean up the variables in browse-url. Perhaps use a shell command string to
|
|
specify the browser instead of the mushrooming set of functions.
|
|
See also ESR's proposal for a BROWSER environment variable
|
|
<URL:http://www.catb.org/~esr/BROWSER/browse-url.patch>.
|
|
|
|
** Enhance scroll-bar to handle tall line (similar to line-move).
|
|
|
|
** Make occur handle multi-line matches cleanly with context.
|
|
|
|
* Important features:
|
|
|
|
** 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 Emacs 22.]
|
|
|
|
** Program Enriched mode to read and save in RTF. [Is there actually a
|
|
decent single definition of RTF? Maybe see info at
|
|
http://latex2rtf.sourceforge.net/.]
|
|
|
|
** 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 a smoother vertical scroll facility, one that allows
|
|
C-v to scroll through a tall image. The primitive operations
|
|
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).
|
|
|
|
** 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.
|
|
|
|
** Make movemail work with IMAP.
|
|
|
|
** Internationalize Emacs's messages.
|
|
|
|
** Add a "current vertical pixel level" value that goes with point,
|
|
so that motion commands can also move through tall images.
|
|
This value would be to point as window-vscroll is to window-start.
|
|
|
|
** Address internationalization of symbols names essentially
|
|
as documentation, e.g. in command names and Custom.
|
|
|
|
** Make the Lucid menu widget display multilingual text. [This
|
|
probably needs to be done from actual Emacs buffers, either directly
|
|
in the menu or by rendering in an unmapped window and copying the
|
|
pixels. The current code assumes a specific locale; that isn't good
|
|
enough even if X can render the arbitrary text] [The gtk
|
|
port now displays multilingual text in menus, but only insofar as
|
|
Emacs can encode it as utf-8 and gtk can display the result.]
|
|
Maybe making Lucid menus work like Gtk's (i.e. just force utf-8) is good
|
|
enough now that Emacs can encode most chars into utf-8.
|
|
|
|
** Remove the limitation that window and frame widths and heights can
|
|
be only full columns/lines.
|
|
|
|
* Other features we would like:
|
|
|
|
** Create a category of errors called `process-error'
|
|
for some or all errors associated with using subprocesses.
|
|
|
|
** Maybe reinterpret `parse-error' as a category of errors
|
|
and put some other errors under it.
|
|
|
|
** A function to check for customizable options that have been
|
|
set but not saved, and ask the user whether to save them.
|
|
This could go in kill-emacs-query-functions, to remind people
|
|
to save their changes. If the user says yes, show them
|
|
in a Custom buffer using customize-customized.
|
|
|
|
** Emacs Lisp mode could put an overlay on the defun for every
|
|
function that has advice. The overlay could have `after-text' like "
|
|
[Function has advice]". It might look like
|
|
(defun foo [Function has advice] (x y)
|
|
The overlay could also be a button that you could use to view the advice.
|
|
|
|
** ange-ftp
|
|
*** understand sftp
|
|
*** Use MLS for ange-ftp-insert-directory if a list of files is specified.
|
|
|
|
** Ability to map a key, including all modified-combinations.
|
|
E.g map mouse-4 to wheel-up as well as M-mouse-4 -> M-wheel-up
|
|
M-C-mouse-4 -> M-C-wheel-up, H-S-C-M-s-double-mouse-4 ->
|
|
H-S-C-M-s-double-wheel-up, ...
|
|
|
|
** Beefed-up syntax-tables.
|
|
*** recognize multi-character syntactic entities like `begin' and `end'.
|
|
*** nested string-delimiters (for Postscript's (foo(bar)baz) strings).
|
|
*** support for infix operators (with precedence).
|
|
*** support for the $ (paired delimiter) in parse-partial-sexp.
|
|
*** support for hook-chars whose effect on the parsing-state is specified
|
|
by elisp code. Thus a char could both close a string and open a comment
|
|
at the same time and do it in a context-sensitive way.
|
|
*** ability to add mode-specific data to the partial-parse-state.
|
|
|
|
** Add a way to convert a keyboard macro to equivalent Lisp code.
|
|
|
|
** Have a command suggestion help system that recognizes patterns
|
|
of commands which could be replaced with a simpler common command.
|
|
It should not make more than one suggestion per 10 minutes.
|
|
|
|
** Add a way to define input methods by computing them (when first used)
|
|
from other input methods. Then redefine C-x 8 to use a
|
|
user-selected input method, with the default being the union of
|
|
latin-1-prefix and latin-1-postfix.
|
|
|
|
** Implement a clean way to use different major modes for
|
|
different parts of a buffer. This could be useful in editing
|
|
Bison input files, for instance, or other kinds of text
|
|
where one language is embedded in another language.
|
|
|
|
** Arrange a way for an input method to return the first character
|
|
immediately, then replace it later. So that C-s a with
|
|
input method latin-1-postfix would immediately search for an a.
|
|
|
|
** Give start-process the ability to direct standard-error
|
|
output to a different filter.
|
|
|
|
** Make desktop.el save the "frame configuration" of Emacs (in some
|
|
useful sense).
|
|
|
|
** 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.
|
|
|
|
** 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.]
|
|
|
|
** Save undo information in special temporary files, and reload it
|
|
when needed for undoing. This could extend undo capacity.
|
|
|
|
** 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.
|
|
|
|
** Get some major packages installed: W3 (development version needs
|
|
significant work), PSGML. 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.
|
|
|
|
** Make compiler warnings about functions that might be undefined at run time
|
|
smarter, so that they know which files are required by the file being
|
|
compiled and don't warn about functions defined in them.
|
|
|
|
** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA,
|
|
but it's a valuable feature worth making more general.
|
|
|
|
** Support simultaneous tty and X frames.
|
|
|
|
** Provide MIME support for Rmail using the Gnus MIME library. [Maybe
|
|
not now feasible, given Gnus maintenance decisions. fx looked at
|
|
this and can say where some of the problems are.]
|
|
|
|
** 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, quoting characters, space after periods and colons, ...
|
|
|
|
** Improve the GC (generational, incremental). (We may be able to use
|
|
the Boehm collector.) [See the Boehm-GC branch in CVS for work on
|
|
this.]
|
|
|
|
** Check what hooks would help Emacspeak -- see the defadvising in W3.
|
|
|
|
** Add horizontal scroll bars.
|
|
|
|
** Provide an optional feature which computes a scroll bar slider's
|
|
size and its position from lines instead of characters.
|
|
|
|
** Add support for SVG (Scalable Vector Graphics) rendering to
|
|
Emacs.
|
|
|
|
** Allow unknown image types to be rendered via an external program
|
|
converting them to, say, PBM (in the same way as PostScript?).
|
|
|
|
** Allow displaying an X window from an external program in a buffer,
|
|
e.g. to render graphics from Java applets. [gerd and/or wmperry
|
|
thought this was feasible.]
|
|
|
|
** Allow images (not just text) in the margin to be mouse-sensitive.
|
|
(Requires recursing through display properties). Provide some way
|
|
to simulate mouse-clicks on marginal text without a mouse.
|
|
|
|
** Implement Lisp functions to determine properly whether a character
|
|
is displayable (particularly needed in XFree 4, sigh). Use it to
|
|
define useful glyphs that may be displayed as images or unicodes
|
|
(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.]
|
|
|
|
** Do something to make rms happy with fx's dynamic loading, and use it
|
|
to implement things like auto-loaded buffer parsers and database
|
|
access in cases which need more than Lisp.
|
|
|
|
** Extend ps-print to deal with multiple font sizes, images, and extra
|
|
encodings.
|
|
|
|
** Provide portable undumping using mmap (per gerd design).
|
|
|
|
** Make byte-compile avoid binding an expanded defsubst's args
|
|
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.
|
|
|
|
** Face remapping.
|
|
|
|
** 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.
|
|
|
|
** Reorder defcustom's in each package so that the more important
|
|
options come first in the Customize buffers. This could be done by
|
|
either rearranging the file (since options are shown in the order
|
|
they appear in the *.el files), or by adding a few :set-after
|
|
attributes.
|
|
|
|
** Maybe document the features of libraries missing from the manual (or
|
|
ancillary manuals, including the Lisp manual in some cases).
|
|
This is not worth doing for all of these packages and we need not
|
|
aim for completeness, but some may be worth documenting.
|
|
|
|
Here's a list which is probably not complete/correct: align, allout,
|
|
artist, ansi-color, array, battery, calculator, cdl, cmuscheme,
|
|
completion, cua, 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.
|
|
|
|
** 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.)
|
|
|
|
** 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
|
|
list in a menu, let you select one of the values, and put it into some
|
|
other variable, without changing the value of `values'.
|
|
|
|
** (Controlled by a flag) make open and close syntax match exactly,
|
|
i.e. `(' doesn't match `]'.
|
|
|
|
** Specify parameter ID-FORMAT in all calls to `file-attributes' and
|
|
`directory-files-and-attributes' where attributes UID or GID are used.
|
|
Whenever possible, use value 'string.
|
|
When done, change meaning of default value from 'integer to 'string.
|
|
If value 'integer is used nowhere, remove the parameter ID-FORMAT from
|
|
the definition of `file-attributes' and `directory-files-and-attributes'
|
|
and from the calls.
|
|
|
|
** Make language-info-alist customizable. Currently a user can customize
|
|
only the variable `current-language-environment'.
|
|
|
|
** Improve language environment handling so that Emacs can fit
|
|
better to a users locale. Currently Emacs uses utf-8 language
|
|
environment for all utf-8 locales, thus a user in ja_JP.UTF-8 locale
|
|
are also put in utf-8 lang. env. In such a case, it is
|
|
better to use Japanese lang. env. but prefer utf-8 coding system.
|
|
|
|
** Eliminate the current restriction on header printing by ps-print.
|
|
Currently, a header can contain only single 1-byte charset in
|
|
addition to ASCII.
|
|
|
|
** 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).
|
|
|
|
** Implement interface programs with major Japanese conversion server
|
|
in lib-src so that they can be used from the input method
|
|
"japanese". Currently, most Japanese users are using external
|
|
packages (e.g. tamago, anthy) or an input method via XIM.
|
|
|
|
** Provide the toolbar on ttys. This could map a bit like tmm-menubar
|
|
for the menubar and buttons could look a bit like those used by customize.
|
|
|
|
* Internal changes
|
|
|
|
** 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
|
|
this.]
|
|
|
|
** Rewrite make-docfile to be clean and maintainable.
|
|
|
|
** Add an inferior-comint-minor-mode to capture the common set of operations
|
|
offered by major modes that offer an associated inferior
|
|
comint-derived mode. I.e. basically make cmuscheme.el/inf-lisp.el generic.
|
|
For use by sml-mode, python-mode, tex-mode, scheme-mode, lisp-mode,
|
|
haskell-mode, tuareg-mode, ...
|
|
|
|
* Other known bugs:
|
|
|
|
** a two-char comment-starter whose two chars are symbol constituents will
|
|
not be noticed if it appears within a word.
|
|
|
|
** Fix unexelf.c to handle the .data.rel and .data.rel.local
|
|
sections made by GCC 3.4 on IRIX.
|
|
|
|
;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036
|