Mercurial > emacs
comparison etc/TODO @ 55090:5aea43a3dacd
Use outline mode. Remove compile.el entry (done).
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 22 Apr 2004 22:58:45 +0000 (2004-04-22) |
parents | 36b5ffc7a82b |
children | acf7b2dfe674 30dd490f06f2 |
comparison
equal
deleted
inserted
replaced
55089:65b9da0f5447 | 55090:5aea43a3dacd |
---|---|
1 -*-text-*- | 1 -*-outline-*- |
2 | 2 |
3 If you are ready to start working on any of these TODO items, we | 3 If you are ready to start working on any of these TODO items, we |
4 appreciate your help; please write to emacs-devel@gnu.org so we can be | 4 appreciate your help; please write to emacs-devel@gnu.org so we can be |
5 aware that the problem is being addressed, and talk with you how to do | 5 aware that the problem is being addressed, and talk with you how to do |
6 it best. Since Emacs is an FSF-copyrighted package, please be | 6 it best. Since Emacs is an FSF-copyrighted package, please be |
7 prepared to sign legal papers to transfer the copyright on your work | 7 prepared to sign legal papers to transfer the copyright on your work |
8 to the FSF. | 8 to the FSF. |
9 | 9 |
10 Small but important fixes needed in existing features: | 10 * Small but important fixes needed in existing features: |
11 | 11 |
12 * Make compile.el record the markers that point to error loci | 12 ** Fix the kill/yank treatment of invisible text. At the moment, |
13 on text properties in the error message lines. | |
14 | |
15 * Fix the kill/yank treatment of invisible text. At the moment, | |
16 invisible text is placed in the kill-ring, so that the contents of | 13 invisible text is placed in the kill-ring, so that the contents of |
17 the ring may not correspond to the text as displayed to the user. It | 14 the ring may not correspond to the text as displayed to the user. It |
18 ought to be possible to omit text which is invisible (due to a | 15 ought to be possible to omit text which is invisible (due to a |
19 text-property, overlay, or selective display) from the kill-ring. | 16 text-property, overlay, or selective display) from the kill-ring. |
20 | 17 |
21 Important features: | 18 * Important features: |
22 | 19 |
23 * Provide user-friendly ways to list all available font families, | 20 ** Provide user-friendly ways to list all available font families, |
24 display a font as a sample, etc. [fx is looking at multilingual | 21 display a font as a sample, etc. [fx is looking at multilingual |
25 font selection for Emacs 22.] | 22 font selection for Emacs 22.] |
26 | 23 |
27 * Program Enriched mode to read and save in RTF. [Is there actually a | 24 ** Program Enriched mode to read and save in RTF. [Is there actually a |
28 decent single definition of RTF? Maybe see info at | 25 decent single definition of RTF? Maybe see info at |
29 http://latex2rtf.sourceforge.net/.] | 26 http://latex2rtf.sourceforge.net/.] |
30 | 27 |
31 * Implement something better than the current Refill mode. This | 28 ** Implement something better than the current Refill mode. This |
32 probably needs some primitive support. | 29 probably needs some primitive support. |
33 | 30 |
34 * Implement primitive and higher-level functions to allow filling | 31 ** Implement primitive and higher-level functions to allow filling |
35 properly with variable-pitch faces. | 32 properly with variable-pitch faces. |
36 | 33 |
37 * Implement a smoother vertical scroll facility, one that allows | 34 ** Implement a smoother vertical scroll facility, one that allows |
38 C-v to scroll through a tall image. | 35 C-v to scroll through a tall image. |
39 | 36 |
40 * Implement other text formatting properties. | 37 ** Implement other text formatting properties. |
41 ** Footnotes that can appear either in place or at the end of the page. | 38 *** Footnotes that can appear either in place or at the end of the page. |
42 ** text property that says "don't break line in middle of this". | 39 *** text property that says "don't break line in middle of this". |
43 Don't break the line between two characters that have the | 40 Don't break the line between two characters that have the |
44 same value of this property. | 41 same value of this property. |
45 ** Discretionary hyphens that are not visible when they are at end of line. | 42 *** Discretionary hyphens that are not visible when they are at end of line. |
46 | 43 |
47 * Make movemail work with IMAP. | 44 ** Make movemail work with IMAP. |
48 | 45 |
49 * Internationalize Emacs's messages. [Note that this is of limited | 46 ** Internationalize Emacs's messages. [Note that this is of limited |
50 use until the menus can display multilingual text. It also doesn't | 47 use until the menus can display multilingual text. It also doesn't |
51 address important issues like using the names of symbols essentially | 48 address important issues like using the names of symbols essentially |
52 as documentation, e.g. in command names and Custom. -- fx] | 49 as documentation, e.g. in command names and Custom. -- fx] |
53 | 50 |
54 * Make the Lucid menu widget display multilingual text. [This | 51 ** Make the Lucid menu widget display multilingual text. [This |
55 probably needs to be done from actual Emacs buffers, either directly | 52 probably needs to be done from actual Emacs buffers, either directly |
56 in the menu or by rendering in an unmapped window and copying the | 53 in the menu or by rendering in an unmapped window and copying the |
57 pixels. Note that the relevant Xlib functions assume a specific | 54 pixels. Note that the relevant Xlib functions assume a specific |
58 locale; that isn't good enough even if X can render the arbitrary | 55 locale; that isn't good enough even if X can render the arbitrary |
59 text, which it often can't as far as I can tell. -- fx] [The gtk | 56 text, which it often can't as far as I can tell. -- fx] [The gtk |
60 port now displays multilingual text in menus, but only insofar as | 57 port now displays multilingual text in menus, but only insofar as |
61 Emacs can encode it as utf-8 and gtk can display the result.] | 58 Emacs can encode it as utf-8 and gtk can display the result.] |
62 | 59 |
63 * Remove the limitation that window and frame widths and heights can | 60 ** Remove the limitation that window and frame widths and heights can |
64 be only full columns/lines. | 61 be only full columns/lines. |
65 | 62 |
66 Other features we would like: | 63 * Other features we would like: |
67 | 64 |
68 * Have a command suggestion help system that recognizes patterns | 65 ** Ability to map a key, including all modified-combinations. |
66 E.g map mouse-4 to wheel-up as well as M-mouse-4 -> M-wheel-up | |
67 M-C-mouse-4 -> M-C-wheel-up, H-S-C-M-s-double-mouse-4 -> | |
68 H-S-C-M-s-double-wheel-up, ... | |
69 | |
70 ** Beefed-up syntax-tables. | |
71 *** recognize multi-character syntactic entities like `begin' and `end'. | |
72 *** nested string-delimiters (for Postscript's (foo(bar)baz) strings). | |
73 *** support for infix operators (with precedence). | |
74 *** support for the $ (paired delimiter) in parse-partial-sexp. | |
75 *** support for hook-chars whose effect on the parsing-state is specified | |
76 by elisp code. Thus a char could both close a string and open a comment | |
77 at the same time and do it in a context-sensitive way. | |
78 *** ability to add mode-specific data to the partial-parse-state. | |
79 | |
80 ** Have a command suggestion help system that recognizes patterns | |
69 of commands which could be replaced with a simpler common command. | 81 of commands which could be replaced with a simpler common command. |
70 It should not make more than one suggestion per 10 minutes. | 82 It should not make more than one suggestion per 10 minutes. |
71 | 83 |
72 * Add a way to define input methods by computing them (when first used) | 84 ** Add a way to define input methods by computing them (when first used) |
73 from other input methods. Then redefine C-x 8 to use a | 85 from other input methods. Then redefine C-x 8 to use a |
74 user-selected input method, with the default being the union of | 86 user-selected input method, with the default being the union of |
75 latin-1-prefix and latin-1-postfix. | 87 latin-1-prefix and latin-1-postfix. |
76 | 88 |
77 * Implement a clean way to use different major modes for | 89 ** Implement a clean way to use different major modes for |
78 different parts of a buffer. | 90 different parts of a buffer. |
79 | 91 |
80 * Give start-process the ability to direct standard-error | 92 ** Give start-process the ability to direct standard-error |
81 output to a different filter. | 93 output to a different filter. |
82 | 94 |
83 * Make desktop.el save the "frame configuration" of Emacs (in some | 95 ** Make desktop.el save the "frame configuration" of Emacs (in some |
84 useful sense). | 96 useful sense). |
85 | 97 |
86 * Give desktop.el a feature to switch between different named | 98 ** Give desktop.el a feature to switch between different named |
87 desktops. | 99 desktops. |
88 | 100 |
89 * Replace finder.el with something that generates an Info file | 101 ** Replace finder.el with something that generates an Info file |
90 which gives the same information through a menu structure. [Dave | 102 which gives the same information through a menu structure. [Dave |
91 Love started on this.] | 103 Love started on this.] |
92 | 104 |
93 * Implement a variant of uncompress.el or jka-compr.el that works with | 105 ** Implement a variant of uncompress.el or jka-compr.el that works with |
94 GNU Privacy Guard for encryption. [Code exists but isn't assigned. | 106 GNU Privacy Guard for encryption. [Code exists but isn't assigned. |
95 See the Gnus development sources for assigned code concerning GPG | 107 See the Gnus development sources for assigned code concerning GPG |
96 use with mail, which is probably a good start.] | 108 use with mail, which is probably a good start.] |
97 | 109 |
98 * Save undo information in files, and reload it when needed | 110 ** Save undo information in files, and reload it when needed |
99 for undoing. | 111 for undoing. |
100 | 112 |
101 * Merge the Emacs regex.c with the Glibc regex.c. | 113 ** Merge the Emacs regex.c with the Glibc regex.c. |
102 They split off a few years ago through negligence. | 114 They split off a few years ago through negligence. |
103 | 115 |
104 * Change the Windows NT menu code | 116 ** Change the Windows NT menu code |
105 so that it handles the deep_p argument and avoids | 117 so that it handles the deep_p argument and avoids |
106 regenerating the whole menu bar menu tree except | 118 regenerating the whole menu bar menu tree except |
107 when the user tries to use the menubar. | 119 when the user tries to use the menubar. |
108 | 120 |
109 This requires the RIT to forward the WM_INITMENU message to | 121 This requires the RIT to forward the WM_INITMENU message to |
110 the main thread, and not return from that message until the main | 122 the main thread, and not return from that message until the main |
111 thread has processed the MENU_BAR_ACTIVATE_EVENT and regenerated | 123 thread has processed the MENU_BAR_ACTIVATE_EVENT and regenerated |
112 the whole menu bar. In the mean time, it should process other messages. | 124 the whole menu bar. In the mean time, it should process other messages. |
113 | 125 |
114 * Get some major packages installed: W3/url (development version needs | 126 ** Get some major packages installed: W3 (development version needs |
115 significant work), PSGML. Check the assignments file for other | 127 significant work), PSGML. Check the assignments file for other |
116 packages which might go in and have been missed. | 128 packages which might go in and have been missed. |
117 | 129 |
118 * Make keymaps a first-class Lisp object (this means a rewrite of | 130 ** Make keymaps a first-class Lisp object (this means a rewrite of |
119 keymap.c). What should it do apart from being opaque ? | 131 keymap.c). What should it do apart from being opaque ? |
120 multiple inheritance ? faster where-is ? no more fix_submap_inheritance ? | 132 multiple inheritance ? faster where-is ? no more fix_submap_inheritance ? |
121 what else ? | 133 what else ? |
122 | 134 |
123 * Provide real menus on ttys. The MS-DOS implementation can serve as | 135 ** Provide real menus on ttys. The MS-DOS implementation can serve as |
124 an example how to do part of this. | 136 an example how to do part of this. |
125 | 137 |
126 * Implement popular parts of the rest of the CL functions as compiler | 138 ** Implement popular parts of the rest of the CL functions as compiler |
127 macros in cl-macs. | 139 macros in cl-macs. |
128 | 140 |
129 * Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA, | 141 ** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA, |
130 but it's a valuable feature worth making more general. | 142 but it's a valuable feature worth making more general. |
131 | 143 |
132 * Support simultaneous tty and X frames. | 144 ** Support simultaneous tty and X frames. |
133 | 145 |
134 * Provide MIME support for Rmail using the Gnus MIME library. [Maybe | 146 ** Provide MIME support for Rmail using the Gnus MIME library. [Maybe |
135 not now feasible, given Gnus maintenance decisions. fx looked at | 147 not now feasible, given Gnus maintenance decisions. fx looked at |
136 this and can say where some of the problems are.] | 148 this and can say where some of the problems are.] |
137 | 149 |
138 * Eliminate the storm of warnings concerning char/unsigned char | 150 ** Eliminate the storm of warnings concerning char/unsigned char |
139 mismatches that we get with proprietary compilers on various systems. | 151 mismatches that we get with proprietary compilers on various systems. |
140 They make it difficult to spot the important warnings. | 152 They make it difficult to spot the important warnings. |
141 | 153 |
142 * Fix anything necessary to use `long long' EMACS_INTs with GCC. | 154 ** Fix anything necessary to use `long long' EMACS_INTs with GCC. |
143 | 155 |
144 * Split out parts of lisp.h and generate Makefile dependencies | 156 ** Split out parts of lisp.h and generate Makefile dependencies |
145 automatically. | 157 automatically. |
146 | 158 |
147 * Update the FAQ. | 159 ** Update the FAQ. |
148 | 160 |
149 * Allow auto-compression-mode to use zlib calls if zlib is available. | 161 ** Allow auto-compression-mode to use zlib calls if zlib is available. |
150 [It's required for PNG, so may be linked anyhow.] | 162 [It's required for PNG, so may be linked anyhow.] |
151 | 163 |
152 * Add a --pristine startup flag which does -q --no-site-file plus | 164 ** Add a --pristine startup flag which does -q --no-site-file plus |
153 ignoring X resources (Doze equivalents?) and most of the | 165 ignoring X resources (Doze equivalents?) and most of the |
154 environment. What should not be ignored needs consideration. | 166 environment. What should not be ignored needs consideration. |
155 | 167 |
156 * Investigate using the language environment (or locale?) to set up | 168 ** Investigate using the language environment (or locale?) to set up |
157 more things, such as the default Ispell dictionary, calendar | 169 more things, such as the default Ispell dictionary, calendar |
158 holidays, quoting characters?,... | 170 holidays, quoting characters?,... |
159 | 171 |
160 * Improve the GC (generational, incremental). (We may be able to use | 172 ** Improve the GC (generational, incremental). (We may be able to use |
161 the Boehm collector.) [See the Boehm-GC branch in CVS for work on | 173 the Boehm collector.) [See the Boehm-GC branch in CVS for work on |
162 this.] | 174 this.] |
163 | 175 |
164 * Check what hooks would help Emacspeak -- see the defadvising in W3. | 176 ** Check what hooks would help Emacspeak -- see the defadvising in W3. |
165 | 177 |
166 * Add horizontal scroll bars. | 178 ** Add horizontal scroll bars. |
167 | 179 |
168 * Provide an optional feature which computes a scroll bar slider's | 180 ** Provide an optional feature which computes a scroll bar slider's |
169 size and its position from lines instead of characters. | 181 size and its position from lines instead of characters. |
170 | 182 |
171 * Make the Custom themes support do useful things. | 183 ** Make the Custom themes support do useful things. |
172 | 184 |
173 * Investigate using GNU Lightning or similar system for incremental | 185 ** Investigate using GNU Lightning or similar system for incremental |
174 compilation of selected bytecode functions to subrs. Converting CCL | 186 compilation of selected bytecode functions to subrs. Converting CCL |
175 programs to native code is probably the first thing to try, though. | 187 programs to native code is probably the first thing to try, though. |
176 | 188 |
177 * Add support for SVG (Scalable Vector Graphics) rendering to | 189 ** Add support for SVG (Scalable Vector Graphics) rendering to |
178 Emacs. | 190 Emacs. |
179 | 191 |
180 * Allow unknown image types to be rendered via an external program | 192 ** Allow unknown image types to be rendered via an external program |
181 converting them to, say, PBM (in the same way as PostScript?). | 193 converting them to, say, PBM (in the same way as PostScript?). |
182 | 194 |
183 * Allow displaying an X window from an external program in a buffer, | 195 ** Allow displaying an X window from an external program in a buffer, |
184 e.g. to render graphics from Java applets. [gerd and/or wmperry | 196 e.g. to render graphics from Java applets. [gerd and/or wmperry |
185 thought this was feasible.] | 197 thought this was feasible.] |
186 | 198 |
187 * Allow images (not just text) in the margin to be mouse-sensitive. | 199 ** Allow images (not just text) in the margin to be mouse-sensitive. |
188 (Requires recursing through display properties). Provide some way | 200 (Requires recursing through display properties). Provide some way |
189 to simulate mouse-clicks on marginal text without a mouse. | 201 to simulate mouse-clicks on marginal text without a mouse. |
190 | 202 |
191 * Implement Lisp functions to determine properly whether a character | 203 ** Implement Lisp functions to determine properly whether a character |
192 is displayable (particularly needed in XFree 4, sigh). Use it to | 204 is displayable (particularly needed in XFree 4, sigh). Use it to |
193 define useful glyphs that may be displayed as images or unicodes | 205 define useful glyphs that may be displayed as images or unicodes |
194 (with ASCIIfied fallback via latin1-disp). Examples include | 206 (with ASCIIfied fallback via latin1-disp). Examples include |
195 box-drawing graphics in Custom buffers, W3 rules and tables, and | 207 box-drawing graphics in Custom buffers, W3 rules and tables, and |
196 tree displays generally, mode-line mail indicator. [See work done | 208 tree displays generally, mode-line mail indicator. [See work done |
197 already for Emacs 22 and consult fx.] | 209 already for Emacs 22 and consult fx.] |
198 | 210 |
199 * Do something to make rms happy with fx's dynamic loading, and use it | 211 ** Do something to make rms happy with fx's dynamic loading, and use it |
200 to implement things like auto-loaded buffer parsers and database | 212 to implement things like auto-loaded buffer parsers and database |
201 access in cases which need more than Lisp. | 213 access in cases which need more than Lisp. |
202 | 214 |
203 * Extend ps-print to deal with multiple font sizes, images, and extra | 215 ** Extend ps-print to deal with multiple font sizes, images, and extra |
204 encodings. | 216 encodings. |
205 | 217 |
206 * Provide portable undumping using mmap (per gerd design). | 218 ** Provide portable undumping using mmap (per gerd design). |
207 | 219 |
208 * Replace gmalloc.c with the modified Doug Lea code from the current | 220 ** Use the XIE X extension, if available, for image display. |
209 GNU libc so that the special mmapping of buffers can be removed -- | 221 |
210 that apparently loses under Solaris, at least. [fx has mostly done | 222 ** Make monochrome images display using the foreground and background |
211 this.] | |
212 | |
213 * Use the XIE X extension, if available, for image display. | |
214 | |
215 * Make monochrome images display using the foreground and background | |
216 colors of the applicable faces. | 223 colors of the applicable faces. |
217 | 224 |
218 * Add support for rendering antialiased text, probably using | 225 ** Add support for rendering antialiased text, probably using |
219 XRender/Freetype. | 226 XRender/Freetype. |
220 | 227 |
221 * Rewrite make-docfile to be clean and maintainable. | 228 ** Port the conservative stack marking code of Emacs' garbage collector |
222 | |
223 * Port the conservative stack marking code of Emacs' garbage collector | |
224 to more systems, so that we can completely get rid of GCPROs. | 229 to more systems, so that we can completely get rid of GCPROs. |
225 | 230 |
226 * Reorder defcustom's in each package so that the more important | 231 ** Reorder defcustom's in each package so that the more important |
227 options come first in the Customize buffers. This could be done by | 232 options come first in the Customize buffers. This could be done by |
228 either rearranging the file (since options are shown in the order | 233 either rearranging the file (since options are shown in the order |
229 they appear in the *.el files), or by adding a few :set-after | 234 they appear in the *.el files), or by adding a few :set-after |
230 attributes. | 235 attributes. |
231 | 236 |
232 * Maybe document the features of libraries missing from the manual (or | 237 ** Maybe document the features of libraries missing from the manual (or |
233 ancillary manuals, including the Lisp manual in some cases). | 238 ancillary manuals, including the Lisp manual in some cases). |
234 This is not worth doing for all of these packages and we need not | 239 This is not worth doing for all of these packages and we need not |
235 aim for completeness, but some may be worth documenting. | 240 aim for completeness, but some may be worth documenting. |
236 | 241 |
237 Here's a list which is probably not complete/correct: align, allout, | 242 Here's a list which is probably not complete/correct: align, allout, |
248 refbib, refer, scribe, sgml-mode, spell, texinfo, underline, | 253 refbib, refer, scribe, sgml-mode, spell, texinfo, underline, |
249 cmacexp, hideif, mantemp [obsolete?], pcomplete, assoc, xml, | 254 cmacexp, hideif, mantemp [obsolete?], pcomplete, assoc, xml, |
250 cvs-status (should be described in PCL-CVS manual); other progmodes, | 255 cvs-status (should be described in PCL-CVS manual); other progmodes, |
251 probably in separate manual. | 256 probably in separate manual. |
252 | 257 |
253 * Convert the XPM bitmaps to PPM, replace the PBMs with them and scrap | 258 ** Convert the XPM bitmaps to PPM, replace the PBMs with them and scrap |
254 the XPMs so that the colour versions work generally. (Requires care | 259 the XPMs so that the colour versions work generally. (Requires care |
255 with the colour used for the transparent regions.) | 260 with the colour used for the transparent regions.) |
256 | 261 |
257 * Convenient access to the `values' variable. It would be nice to have an | 262 ** Convenient access to the `values' variable. It would be nice to have an |
258 interface that would show you the printed reps of the elements of the | 263 interface that would show you the printed reps of the elements of the |
259 list in a menu, let you select one of the values, and put it into some | 264 list in a menu, let you select one of the values, and put it into some |
260 other variable, without changing the value of `values'. | 265 other variable, without changing the value of `values'. |
261 | 266 |
262 * Fix skip-chars-{for,back}ward to allow character classes. | 267 ** Fix skip-chars-{for,back}ward to allow character classes. |
263 | 268 |
264 * (Controlled by a flag) make open and close syntax match exactly, | 269 ** (Controlled by a flag) make open and close syntax match exactly, |
265 i.e. `(' doesn't match `]'. | 270 i.e. `(' doesn't match `]'. |
266 | 271 |
267 * Specify parameter ID-FORMAT in all calls to `file-attributes' and | 272 ** Specify parameter ID-FORMAT in all calls to `file-attributes' and |
268 `directory-files-and-attributes' where attributes UID or GID are used. | 273 `directory-files-and-attributes' where attributes UID or GID are used. |
269 Whenever possible, use value 'string. | 274 Whenever possible, use value 'string. |
270 When done, change meaning of default value from 'integer to 'string. | 275 When done, change meaning of default value from 'integer to 'string. |
271 If value 'integer is used nowhere, remove the parameter ID-FORMAT from | 276 If value 'integer is used nowhere, remove the parameter ID-FORMAT from |
272 the definition of `file-attributes' and `directory-files-and-attributes' | 277 the definition of `file-attributes' and `directory-files-and-attributes' |
273 and from the calls. | 278 and from the calls. |
274 | 279 |
280 * Internal changes | |
281 | |
282 ** Replace gmalloc.c with the modified Doug Lea code from the current | |
283 GNU libc so that the special mmapping of buffers can be removed -- | |
284 that apparently loses under Solaris, at least. [fx has mostly done | |
285 this.] | |
286 | |
287 ** Rewrite make-docfile to be clean and maintainable. | |
288 | |
289 ** Add an inferior-comint-minor-mode to capture the common set of operations | |
290 offered by major modes that offer an associated inferior | |
291 comint-derived mode. I.e. basically make cmuscheme.el generic. | |
292 For use by sml-mode, python-mode, tex-mode, scheme-mode, ... | |
293 | |
275 ;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036 | 294 ;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036 |