X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/bfdd3ac8fdc269ef833fe029ff1d97358734ab5d..1cc6e54434f3372792bd518eb4f311807bd42cc7:/etc/TODO diff --git a/etc/TODO b/etc/TODO index b78c98bd86..e9540c2b6b 100644 --- a/etc/TODO +++ b/etc/TODO @@ -9,12 +9,31 @@ to the FSF. * Small but important fixes needed in existing features: -** Fix the kill/yank treatment of invisible text. At the moment, +** 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 + 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 + . + +** 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, @@ -28,11 +47,18 @@ to the FSF. ** Implement something better than the current Refill mode. This probably needs some primitive support. +** Add a command to make a local variables list 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. + 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. @@ -43,25 +69,52 @@ to the FSF. ** Make movemail work with IMAP. -** Internationalize Emacs's messages. [Note that this is of limited - use until the menus can display multilingual text. It also doesn't - address important issues like using the names of symbols essentially - as documentation, e.g. in command names and Custom. -- fx] +** 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. Note that the relevant Xlib functions assume a specific - locale; that isn't good enough even if X can render the arbitrary - text, which it often can't as far as I can tell. -- fx] [The gtk + 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 -> @@ -77,6 +130,8 @@ to the FSF. 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. @@ -87,7 +142,9 @@ to the FSF. latin-1-prefix and latin-1-postfix. ** Implement a clean way to use different major modes for - different parts of a buffer. + 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. ** Give start-process the ability to direct standard-error output to a different filter. @@ -102,16 +159,15 @@ to the FSF. 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 files, and reload it when needed - for undoing. - -** Merge the Emacs regex.c with the Glibc regex.c. - They split off a few years ago through negligence. +** 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 @@ -138,6 +194,10 @@ to the FSF. ** 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. @@ -213,11 +273,16 @@ to the FSF. ** 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. @@ -260,8 +325,6 @@ to the FSF. list in a menu, let you select one of the values, and put it into some other variable, without changing the value of `values'. -** Fix skip-chars-{for,back}ward to allow character classes. - ** (Controlled by a flag) make open and close syntax match exactly, i.e. `(' doesn't match `]'. @@ -273,6 +336,38 @@ to the FSF. 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 @@ -284,7 +379,16 @@ to the FSF. ** 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 generic. - For use by sml-mode, python-mode, tex-mode, scheme-mode, ... + 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