X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/9a0115abd18f219f234d6dd460cf7f5ed3c0332f..dcf8834baca7d4e1761483b9ea74206cadb8b114:/etc/TODO diff --git a/etc/TODO b/etc/TODO index 411581673e..be0ef95aed 100644 --- a/etc/TODO +++ b/etc/TODO @@ -1,6 +1,6 @@ Emacs TODO List -*-outline-*- -Copyright (C) 2001-2012 Free Software Foundation, Inc. +Copyright (C) 2001-2012 Free Software Foundation, Inc. See the end of the file for license conditions. @@ -18,13 +18,12 @@ to the FSF. "which form of concurrency" we'll want. ** Overhaul of customize: sounds wonderful. ** better support for dynamic embedded graphics: I like this idea (my - mpc.el code could use it for the volume widget), tho I wonder if the + mpc.el code could use it for the volume widget), though I wonder if the resulting efficiency will be sufficient. ** Spread Semantic. ** Improve the "code snippets" support: consolidate skeleton.el, tempo.el, and expand.el (any other?) and then advertise/use/improve it. ** Improve VC: yes, there's a lot of work to be done there :-( - And most of it could/should make it into Emacs-23.3. ** Random things that cross my mind right now that I'd like to see (some of them from my local hacks), but it's not obvious at all whether they'll @@ -71,6 +70,12 @@ things in their .emacs. ** See if other files can use generated-autoload-file (see eg ps-print). +** Write more tests. Pick a fixed bug from the database, write a test +case to make sure it stays fixed. Or pick your favorite programming +major-mode, and write a test for its indentation. Or a version +control backend, and write a test for its status parser. Etc. +See test/automated for examples. + * Small but important fixes needed in existing features: ** Flymake's customization mechanism needs to be both simpler (fewer @@ -427,18 +432,13 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html ** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA, but it's a valuable feature worth making more general. -** 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 GCC 4.x and 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.] -[the last bit is done, see DEPFLAGS etc in src/Makefile.in ] +** Split out parts of lisp.h. ** Update the FAQ. @@ -522,15 +522,15 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html 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], + generic/generic-x [various modes], kermit, log-edit, + 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, + vcursor, xscheme, zone-mode [?], mlconvert [?], iso-cvt, + feedmail [?], uce, gametree, meese, page-ext, refbib, refer, scribe, sgml-mode, spell, texinfo, underline, - cmacexp, hideif, mantemp [obsolete?], pcomplete, assoc, xml, + cmacexp, hideif, mantemp [obsolete?], pcomplete, xml, cvs-status (should be described in PCL-CVS manual); other progmodes, probably in separate manual. @@ -614,6 +614,15 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html *** Bugs +**** The event loop relies on polling and that hurts performance. + A better strategy is to have the select part in its own thread and let + the main thread communicate with that thread (see how Gdk does it for + inspiration). A problem is that redraw don't happen during resize, + because we can't break out from the NSapp loop during resize. + There is a special trick to detect mouse press in the lower right + corner and track mouse movements, but this does not work well, and is + not scalable to the new Lion "resize on every window edge" behavior. + **** (mouse-avoidance-mode 'banish) then minimize Emacs, will pop window back up on top of all others @@ -641,17 +650,29 @@ up on top of all others ** Bidirectional editing +*** Support reordering structured text +Two important use cases: (1) comments and strings in program sources, +and (2) text with markup, like HTML or XML. + +One idea is to invent a special text property that would instruct the +display engine to reorder only the parts of buffer text covered by +that property. The display engine will then push its state onto the +iterator stack, restrict the bidi iterator to accessing only the +portion of buffer text covered by the property, reorder the text, then +pop its state from stack and continue as usual. This will require +minor changes in the bidi_it structure. + +This design requires Lisp-level code to put the text properties on the +relevant parts of the buffer text. That could be done using JIT +fontifications, or as a preliminary processing when the file is +visited. With HTML/XML, the code that puts text properties needs to +pay attention to the bidi directives embedded in the HTML/XML stream. + *** Allow the user to control the direction of the UI **** Introduce user option to control direction of mode line. -This requires to figure out what to do with unibyte strings that are -used in constructing the mode line. Currently, unibyte strings are -not reordered by bidi.c, without which R2L mode line will not display -correctly. One possibility would be to STRING_SET_MULTIBYTE all Lisp -strings involved in the mode line, and then pass them through bidi.c. - -Another problem is the header line, which is produced by the same -routines as the mode line. While it makes sense to have the mode-line +One problem is the header line, which is produced by the same routines +as the mode line. While it makes sense to have the mode-line direction controlled by a single global variable, header lines are buffer-specific, so they need a separate treatment in this regard. @@ -1199,6 +1220,8 @@ systems for HTML/XML files automatically." this.] ** Rewrite make-docfile to be clean and maintainable. + It might be better to replace it with Lisp, using the byte compiler. + http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00037.html ** Add an inferior-comint-minor-mode to capture the common set of operations offered by major modes that offer an associated inferior @@ -1206,18 +1229,20 @@ systems for HTML/XML files automatically." For use by sml-mode, python-mode, tex-mode, scheme-mode, lisp-mode, haskell-mode, tuareg-mode, ... -** 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 - allocation functions (allocate_string etc.) without worrying about - data munging. - ** Add "link" button class Add a standard button-class named "link", and make all other link-like button classes inherit from it. Set the default face of the "link" button class to the standard "link" face. +* Wishlist items: + +** Maybe replace etags.c with a Lisp implementation. +http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00354.html + +** Maybe replace lib-src/rcs2log with a Lisp implementation. +It wouldn't have to be a complete replacement, just enough +for vc-rcs-update-changelog. + * Other known bugs: ** `make-frame' forgets unhandled parameters, at least for X11 frames.