Commit | Line | Data |
---|---|---|
309920fa EZ |
1 | Emacs TODO List -*-outline-*- |
2 | ||
1bb97e22 | 3 | Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 |
5b87ad55 GM |
4 | Free Software Foundation, Inc. |
5 | See the end of the file for license conditions. | |
6 | ||
19cc91fb | 7 | |
2255d5b4 RS |
8 | If you are ready to start working on any of these TODO items, we |
9 | appreciate your help; please write to emacs-devel@gnu.org so we can be | |
10 | aware that the problem is being addressed, and talk with you how to do | |
7bea57c9 | 11 | it best. Since Emacs is an FSF-copyrighted package, please be |
2255d5b4 RS |
12 | prepared to sign legal papers to transfer the copyright on your work |
13 | to the FSF. | |
14 | ||
c884b4d7 DN |
15 | * Simple tasks. These don't require much emacs knowledge, they are |
16 | suitable for anyone from beginners to experts. | |
17 | ||
9fe219e3 DN |
18 | ** make emacsclient accept -nw as a synonym to -t. |
19 | ||
20 | ** Replace some uses of the preprocessor code in Makefile.in with the equivalent autoconf. | |
21 | ||
c884b4d7 DN |
22 | ** Major modes should have a menu entry. Examples of modes that do |
23 | not have one at the moment and probably should: text-mode, | |
76be286d | 24 | change-log-mode, texinfo-mode, nroff-mode, reb-mode. |
c884b4d7 DN |
25 | |
26 | ** Change the text for the mode-line tooltips to not use things like C-x 0. | |
27 | In general make sure that tooltips have obvious meanings. Check if | |
28 | all items on the mode-line have a suitable tooltip. | |
29 | ||
4e0ace23 DN |
30 | ** edebug and debugger-mode should have a toolbar. |
31 | It can use the same icons as gud. | |
32 | ||
c884b4d7 DN |
33 | ** Check what minor modes don't use define-minor-mode and convert them |
34 | to use it. | |
35 | ||
6d095958 GM |
36 | ** Convert all defvars with leading `*' in the doc-strings into defcustoms |
37 | of appropriate :type and :group. | |
38 | ||
ba1c68de | 39 | * Small but important fixes needed in existing features: |
a9c1a157 | 40 | |
cc48343f RS |
41 | ** Flymake's customization mechanism needs to be both simpler (fewer |
42 | levels of indirection) and better documented, so it is easier to | |
43 | understand. I find it quite hard to figure out what compilation | |
44 | command it will use. | |
45 | ||
46 | I suggest totally rewriting that part of Flymake, using the simplest | |
47 | mechanism that sufficies for the specific needs. That will be easy | |
48 | for users to customize. | |
49 | ||
600e5c79 | 50 | ** Make "emacs --daemon" start emacs without showing any frame. |
f1d45b83 DN |
51 | Use emacsclient later to open frames. |
52 | ||
600e5c79 DN |
53 | ** Make it possible to reliably turn on minor modes using "mode:" in the local |
54 | variables section. | |
f1d45b83 | 55 | |
37202eec SM |
56 | ** "Options -> Save Options" should save the font set via "Set Font/Fontset" |
57 | I.e. mouse-set-font should use customize-face. | |
58 | ||
0989e765 SM |
59 | ** Compute the list of active keymaps *after* reading the first event. |
60 | ||
046ece71 KS |
61 | ** Distribute a bar cursor of width > 1 evenly between the two glyphs |
62 | on each side of the bar (what to do at the edges?). | |
63 | ||
d322eb9b RS |
64 | ** buffer-offer-save should be a permanent local. |
65 | ||
125fbe81 | 66 | ** revert-buffer should eliminate overlays and the mark. |
045744c6 MR |
67 | For related problems consult the thread starting with |
68 | http://lists.gnu.org/archive/html/emacs-devel/2005-11/msg01346.html | |
125fbe81 | 69 | |
f98abf6d RS |
70 | ** erase-buffer should perhaps disregard read-only properties of text. |
71 | ||
30c56b97 LT |
72 | ** Make occur correctly handle matches that span more than one line, |
73 | as well as overlapping matches. | |
74 | ||
d3a403e5 | 75 | ** Fix the kill/yank treatment of invisible text. At the moment, |
b9e6b498 | 76 | invisible text is placed in the kill-ring, so that the contents of |
2345130a SM |
77 | the ring may not correspond to the text as displayed to the user. |
78 | It ought to be possible to omit text which is invisible (due to a | |
b9e6b498 GM |
79 | text-property, overlay, or selective display) from the kill-ring. |
80 | ||
6f771c32 RS |
81 | ** Change the way define-minor-mode handles autoloading. |
82 | It should not generate :require. Or :require in defcustom | |
83 | should not be recorded in the user's custom-set-variables call. | |
84 | ||
af09dd78 RS |
85 | ** Feature to change cursor shape when Emacs is idle (for more than |
86 | a specified time). | |
87 | ||
4e07258f RS |
88 | ** The buttons at the top of a custom buffer should not omit |
89 | variables whose values are currently hidden. | |
90 | ||
ec0cf966 RS |
91 | ** Clean up the variables in browse-url. Perhaps use a shell command string to |
92 | specify the browser instead of the mushrooming set of functions. | |
93 | See also ESR's proposal for a BROWSER environment variable | |
94 | <URL:http://www.catb.org/~esr/BROWSER/browse-url.patch>. | |
95 | ||
528b6abc RS |
96 | ** Enhance scroll-bar to handle tall line (similar to line-move). |
97 | ||
98 | ** Make occur handle multi-line matches cleanly with context. | |
99 | ||
f98abf6d RS |
100 | ** In Custom buffers, put the option that turns a mode on or off first, |
101 | using a heuristic of some kind? | |
102 | ||
103 | ** Define recompute-arg and recompute-arg-if for fix_command to use. | |
104 | See rms message of 11 Dec 05. | |
105 | ||
7c14546c JD |
106 | ** Height returned by frame-parameter ... and height given to |
107 | make-frame does not mean the same thing. The former includes menu and | |
108 | tool bar lines, the latter don't. frame-parameter should return height | |
109 | without menu and tool bar lines. | |
110 | ||
f98abf6d RS |
111 | ** In Emacs Info, examples of using Customize should be clickable |
112 | and they should create Custom buffers. | |
113 | ||
321e4870 RS |
114 | ** The toolbar should show keyboard equivalents in its tooltips. |
115 | ||
74561a26 RS |
116 | ** Add function to redraw the tool bar. |
117 | ||
a9b6d67e RS |
118 | ** M-! M-n should fetch the buffer-file-name as the default. |
119 | ||
5a893bff RS |
120 | ** Redesign the load-history data structure so it can cope better |
121 | with evaluating definitions of the same function from different files, | |
122 | recording which file the latest definition came from. | |
046ece71 | 123 | |
4b4d11cc RS |
124 | ** make back_comment use syntax-ppss or equivalent. |
125 | ||
67ccd6cb GM |
126 | ** Consider improving src/sysdep.c's search for a fqdn. |
127 | http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00782.html | |
128 | ||
129 | ** Find a proper fix for rcirc multiline nick adding. | |
130 | http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00684.html | |
211fb124 | 131 | |
94172215 EZ |
132 | ** Implement `network-interface-list' and `network-interface-info' |
133 | on MS-Windows. Hint: the information is present in the Registry, | |
134 | under the keys | |
135 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage\ | |
136 | and | |
137 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<device>\ | |
138 | where <device> is the network device found under the first key. | |
139 | ||
4af1faa3 GM |
140 | ** Check for any included packages that define obsolete bug-reporting commands. |
141 | Change them to use report-emacs-bug. | |
142 | ||
7a00b900 NR |
143 | ** Allow fringe indicators to display a tooltip (provide a help-echo property?) |
144 | ||
ba1c68de | 145 | * Important features: |
a9c1a157 | 146 | |
cc48343f RS |
147 | ** Having tabs above a window to switch buffers in it. |
148 | ||
149 | ** "Perspectives" are named persistent window configurations. We have | |
150 | had the window configuration mechanism in GNU Emacs since the | |
151 | beginning but we have never developed a good user interface to take | |
152 | advantage of them. Eclipse's user interface seems to be good. | |
153 | ||
154 | Perspectives work well even if you do the equivalent of C-x 4 C-f | |
155 | because of the distinction between view windows vs file windows. In | |
156 | Emacs this is more or less the "dedicated window" feature, but we have | |
157 | never really made it work for this. | |
158 | ||
159 | Perspectives also need to interact with the tabs. | |
160 | ||
161 | ** Imenu could be extended into a file-structure browsing mechanism | |
162 | using code like that of customize-groups. | |
163 | ||
164 | ** Display something in the margin on lines that have compilation | |
165 | errors. | |
166 | ||
167 | ** Compilation error navigation bar, parallel to the scroll bar, | |
168 | indicating where in the buffer there are compilation errors. | |
169 | Perhaps we could arrange to display these error indications on top | |
170 | of the scroll bar itself. That depends on to what extent toolkit | |
171 | scroll bars are extensible. | |
172 | ||
ba1c68de | 173 | ** Provide user-friendly ways to list all available font families, |
321e4870 RS |
174 | list fonts, display a font as a sample, etc. [fx is looking at |
175 | multilingual font selection for the Unicode branch of Emacs.] | |
5e101746 | 176 | |
3aa7c28e RS |
177 | ** Provide a convenient way to select a color with the mouse. |
178 | ||
09d04fb3 | 179 | ** Rewrite the face code to be simpler, clearer and faster. |
5e101746 | 180 | |
ba1c68de | 181 | ** Program Enriched mode to read and save in RTF. [Is there actually a |
c51b37fd | 182 | decent single definition of RTF? Maybe see info at |
1b2105d9 EZ |
183 | http://latex2rtf.sourceforge.net/.] This task seems to be addressed |
184 | by http://savannah.nongnu.org/projects/emacs-rtf/, which is still in | |
185 | very early stages. | |
6165b6e3 | 186 | |
ba1c68de | 187 | ** Implement something better than the current Refill mode. This |
a9c1a157 RS |
188 | probably needs some primitive support. |
189 | ||
ba6be78d | 190 | ** Add a command to make a "Local Variables" section in the current buffer |
07ff1e4b RS |
191 | and/or add a variable to the list. |
192 | ||
ba1c68de | 193 | ** Implement primitive and higher-level functions to allow filling |
a9c1a157 RS |
194 | properly with variable-pitch faces. |
195 | ||
ba1c68de | 196 | ** Implement a smoother vertical scroll facility, one that allows |
d3a403e5 SM |
197 | C-v to scroll through a tall image. The primitive operations |
198 | posn-at-point and posn-at-x-y should now make it doable in elisp. | |
a9c1a157 | 199 | |
6ca1c497 RS |
200 | ** Implement intelligent search/replace, going beyond query-replace |
201 | (see http://graphics.csail.mit.edu/~rcm/chi04.pdf). | |
202 | ||
ba1c68de SM |
203 | ** Implement other text formatting properties. |
204 | *** Footnotes that can appear either in place or at the end of the page. | |
205 | *** text property that says "don't break line in middle of this". | |
6165b6e3 EZ |
206 | Don't break the line between two characters that have the |
207 | same value of this property. | |
ba1c68de | 208 | *** Discretionary hyphens that are not visible when they are at end of line. |
6165b6e3 | 209 | |
ec0cf966 RS |
210 | ** Internationalize Emacs's messages. |
211 | ||
4a7499a9 RS |
212 | ** Set up a facility to save backtraces when errors happen during |
213 | specified filters, specified timers, and specified hooks. | |
214 | ||
49322539 RS |
215 | ** Install mmc@maruska.dyndns.org's no-flicker change. |
216 | ||
07ff1e4b RS |
217 | ** Add a "current vertical pixel level" value that goes with point, |
218 | so that motion commands can also move through tall images. | |
219 | This value would be to point as window-vscroll is to window-start. | |
220 | ||
ec0cf966 RS |
221 | ** Address internationalization of symbols names essentially |
222 | as documentation, e.g. in command names and Custom. | |
a9c1a157 | 223 | |
ba1c68de | 224 | ** Make the Lucid menu widget display multilingual text. [This |
bf6394a6 DL |
225 | probably needs to be done from actual Emacs buffers, either directly |
226 | in the menu or by rendering in an unmapped window and copying the | |
f677a3a3 SM |
227 | pixels. The current code assumes a specific locale; that isn't good |
228 | enough even if X can render the arbitrary text] [The gtk | |
7bea57c9 DL |
229 | port now displays multilingual text in menus, but only insofar as |
230 | Emacs can encode it as utf-8 and gtk can display the result.] | |
f677a3a3 SM |
231 | Maybe making Lucid menus work like Gtk's (i.e. just force utf-8) is good |
232 | enough now that Emacs can encode most chars into utf-8. | |
a9c1a157 | 233 | |
ba1c68de | 234 | ** Remove the limitation that window and frame widths and heights can |
a9c1a157 RS |
235 | be only full columns/lines. |
236 | ||
ba1c68de SM |
237 | * Other features we would like: |
238 | ||
22f9eb9e CY |
239 | ** Make longlines-mode wrap lines based on screen position instead |
240 | of character position, so that variable-width fonts can be handled | |
241 | properly. | |
242 | ||
c3bb6fdb SM |
243 | ** Allow frames(terminals) created by emacsclient to inherit their environment |
244 | from the emacsclient process. | |
a37288ad SM |
245 | ** Remove the default toggling behavior of minor modes when called from elisp |
246 | rather than interactively. This a trivial one-liner in easy-mode.el. | |
0de301ed | 247 | |
a53e64cc SM |
248 | ** Create a category of errors called `user-error' for errors which are |
249 | typically due to pilot errors and should thus be in debug-ignored-errors. | |
250 | ||
39eadb4a RS |
251 | ** Give Tar mode all the features of Archive mode. |
252 | ||
9b8453da RS |
253 | ** Create a category of errors called `process-error' |
254 | for some or all errors associated with using subprocesses. | |
255 | ||
51f74c37 RS |
256 | ** Maybe reinterpret `parse-error' as a category of errors |
257 | and put some other errors under it. | |
258 | ||
1a500a73 | 259 | ** A function to tell you the argument pattern of functions. |
1b2105d9 | 260 | See `function-arity' in http://www.loveshack.ukfsn.org/emacs/fx-misc.el. |
1a500a73 RS |
261 | |
262 | ** Make byte-compile warn when a doc string is too wide. | |
263 | ||
9f4ba075 CY |
264 | ** Make byte-optimization warnings issue accurate line numbers. |
265 | ||
f95a20e7 RS |
266 | ** A function to check for customizable options that have been |
267 | set but not saved, and ask the user whether to save them. | |
268 | This could go in kill-emacs-query-functions, to remind people | |
269 | to save their changes. If the user says yes, show them | |
270 | in a Custom buffer using customize-customized. | |
271 | ||
8c9676fb DK |
272 | ** Record the sxhash of the default value for customized variables |
273 | and notify the user (maybe by adding a menu item or toolbar button, | |
274 | as the detection can occur during autoload time) when the default | |
275 | changes (meaning that new versions of the Lisp source with a changed | |
276 | default value got installed) and offer ediff on the respective | |
277 | customization buffers. | |
278 | ||
e0402468 | 279 | ** Emacs Lisp mode could put an overlay on the defun for every |
8c9676fb DK |
280 | function that has advice. The overlay could have `after-text' like |
281 | " [Function has advice]". It might look like (defun foo [Function | |
282 | has advice] (x y) The overlay could also be a button that you could | |
283 | use to view the advice. | |
e0402468 | 284 | |
17e55b2a RS |
285 | ** Add a function to get the insertion-type of the markers in an overlay. |
286 | ||
9c9c88db SM |
287 | ** ange-ftp |
288 | *** understand sftp | |
1b2105d9 EZ |
289 | This is hard to make work because sftp doesn't print status |
290 | messages. | |
291 | ||
9c9c88db SM |
292 | *** Use MLS for ange-ftp-insert-directory if a list of files is specified. |
293 | ||
ba1c68de SM |
294 | ** Ability to map a key, including all modified-combinations. |
295 | E.g map mouse-4 to wheel-up as well as M-mouse-4 -> M-wheel-up | |
296 | M-C-mouse-4 -> M-C-wheel-up, H-S-C-M-s-double-mouse-4 -> | |
297 | H-S-C-M-s-double-wheel-up, ... | |
a9c1a157 | 298 | |
ba1c68de SM |
299 | ** Beefed-up syntax-tables. |
300 | *** recognize multi-character syntactic entities like `begin' and `end'. | |
301 | *** nested string-delimiters (for Postscript's (foo(bar)baz) strings). | |
302 | *** support for infix operators (with precedence). | |
303 | *** support for the $ (paired delimiter) in parse-partial-sexp. | |
304 | *** support for hook-chars whose effect on the parsing-state is specified | |
305 | by elisp code. Thus a char could both close a string and open a comment | |
306 | at the same time and do it in a context-sensitive way. | |
307 | *** ability to add mode-specific data to the partial-parse-state. | |
308 | ||
2d1ef312 RS |
309 | ** Add a way to convert a keyboard macro to equivalent Lisp code. |
310 | ||
ba1c68de | 311 | ** Have a command suggestion help system that recognizes patterns |
a9c1a157 RS |
312 | of commands which could be replaced with a simpler common command. |
313 | It should not make more than one suggestion per 10 minutes. | |
6165b6e3 | 314 | |
ba1c68de | 315 | ** Add a way to define input methods by computing them (when first used) |
30a2aafd RS |
316 | from other input methods. Then redefine C-x 8 to use a |
317 | user-selected input method, with the default being the union of | |
318 | latin-1-prefix and latin-1-postfix. | |
319 | ||
a7abe867 | 320 | ** Switch the Windows port to using Unicode keyboard input (maybe). |
2fa4f835 EZ |
321 | Based on http://msdn2.microsoft.com/en-us/library/ms633586.aspx, |
322 | this boils down to (1) calling RegisterClassW function to register | |
323 | Emacs windows, and (2) modifying ALL system messages to use Unicode. | |
324 | In particular, WM_CHAR messages, which result from keyboard input, | |
a7abe867 | 325 | will then come in encoded in UTF-16. |
2fa4f835 EZ |
326 | |
327 | One advantage of switching to Unicode is to toss encoded-kbd usage, | |
328 | which will solve the problem with binding non-ASCII keys with | |
329 | modifiers. | |
330 | ||
a7abe867 RS |
331 | Problem: using this on Windows 9x/ME requires installing the |
332 | Microsoft Layer for Unicode (MSLU), which might not implement all | |
333 | the required functionality that is available built-in on Windows XP | |
334 | and later. We should not make this change if it would pressure | |
335 | users of unauthorized copies of older versions of Windows to | |
336 | downgrade to versions that require activation. | |
337 | ||
ba1c68de | 338 | ** Implement a clean way to use different major modes for |
06382b71 RS |
339 | different parts of a buffer. This could be useful in editing |
340 | Bison input files, for instance, or other kinds of text | |
1b2105d9 EZ |
341 | where one language is embedded in another language. See |
342 | http://www.loveshack.ukfsn.org/emacs/multi-mode.el and also | |
343 | mmm-mode, as reference for approaches took by others. | |
a933dad1 | 344 | |
b76781cd RS |
345 | ** Arrange a way for an input method to return the first character |
346 | immediately, then replace it later. So that C-s a with | |
347 | input method latin-1-postfix would immediately search for an a. | |
a933dad1 | 348 | |
ba1c68de | 349 | ** Give start-process the ability to direct standard-error |
a933dad1 DL |
350 | output to a different filter. |
351 | ||
ba1c68de | 352 | ** Make desktop.el save the "frame configuration" of Emacs (in some |
a933dad1 DL |
353 | useful sense). |
354 | ||
ba1c68de | 355 | ** Give desktop.el a feature to switch between different named |
8ba148c7 RS |
356 | desktops. |
357 | ||
ba1c68de | 358 | ** Replace finder.el with something that generates an Info file |
e39fc314 DL |
359 | which gives the same information through a menu structure. [Dave |
360 | Love started on this.] | |
a933dad1 | 361 | |
10bb671b RS |
362 | ** Add a cpio mode, more or less like tar mode. |
363 | ||
ba1c68de | 364 | ** Implement a variant of uncompress.el or jka-compr.el that works with |
2794f7ab DL |
365 | GNU Privacy Guard for encryption. [Code exists but isn't assigned. |
366 | See the Gnus development sources for assigned code concerning GPG | |
1b2105d9 EZ |
367 | use with mail, which is probably a good start.] See also |
368 | http://www.loveshack.ukfsn.org/emacs/auto-crypt.tgz. | |
a933dad1 | 369 | |
06382b71 RS |
370 | ** Save undo information in special temporary files, and reload it |
371 | when needed for undoing. This could extend undo capacity. | |
a933dad1 | 372 | |
ba1c68de | 373 | ** Change the Windows NT menu code |
a933dad1 DL |
374 | so that it handles the deep_p argument and avoids |
375 | regenerating the whole menu bar menu tree except | |
376 | when the user tries to use the menubar. | |
377 | ||
378 | This requires the RIT to forward the WM_INITMENU message to | |
379 | the main thread, and not return from that message until the main | |
0245b3ef | 380 | thread has processed the MENU_BAR_ACTIVATE_EVENT and regenerated |
a933dad1 | 381 | the whole menu bar. In the mean time, it should process other messages. |
d054101f | 382 | |
ba1c68de | 383 | ** Get some major packages installed: W3 (development version needs |
93a759ba | 384 | significant work), PSGML, _possibly_ Cedet and ECB. |
590394eb GM |
385 | http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg01493.html |
386 | Check the assignments file for other packages which might go in and | |
387 | have been missed. | |
388 | ||
7d6f3b3a GM |
389 | ** Possibly install python-mode in place of python.el, or combine the two. |
390 | Someone needs to do the work of figuring out who all the non-trivial | |
391 | python-mode.el contributors are and getting assignments. | |
392 | http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02156.html | |
393 | http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02201.html | |
394 | http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02489.html | |
395 | http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html | |
396 | ||
ba1c68de | 397 | ** Make keymaps a first-class Lisp object (this means a rewrite of |
5dd31b13 SM |
398 | keymap.c). What should it do apart from being opaque ? |
399 | multiple inheritance ? faster where-is ? no more fix_submap_inheritance ? | |
400 | what else ? | |
e39fc314 | 401 | |
ba1c68de | 402 | ** Provide real menus on ttys. The MS-DOS implementation can serve as |
2fa4f835 | 403 | an example how to do part of this; see the XMenu* functions on msdos.c. |
e39fc314 | 404 | |
ba1c68de | 405 | ** Implement popular parts of the rest of the CL functions as compiler |
e39fc314 DL |
406 | macros in cl-macs. |
407 | ||
261b01c6 RS |
408 | ** Make compiler warnings about functions that might be undefined at run time |
409 | smarter, so that they know which files are required by the file being | |
410 | compiled and don't warn about functions defined in them. | |
411 | ||
ba1c68de | 412 | ** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA, |
a52ce7f8 | 413 | but it's a valuable feature worth making more general. |
e39fc314 | 414 | |
ba1c68de | 415 | ** Provide MIME support for Rmail using the Gnus MIME library. [Maybe |
bf6394a6 DL |
416 | not now feasible, given Gnus maintenance decisions. fx looked at |
417 | this and can say where some of the problems are.] | |
e39fc314 | 418 | |
ba1c68de | 419 | ** Eliminate the storm of warnings concerning char/unsigned char |
1b2105d9 EZ |
420 | mismatches that we get with GCC 4.x and proprietary compilers on |
421 | various systems. They make it difficult to spot the important | |
422 | warnings. | |
e39fc314 | 423 | |
ba1c68de | 424 | ** Fix anything necessary to use `long long' EMACS_INTs with GCC. |
eaf67bae | 425 | |
ba1c68de | 426 | ** Split out parts of lisp.h and generate Makefile dependencies |
eaf67bae DL |
427 | automatically. |
428 | ||
ba1c68de | 429 | ** Update the FAQ. |
eaf67bae | 430 | |
ba1c68de | 431 | ** Allow auto-compression-mode to use zlib calls if zlib is available. |
b04f7626 | 432 | [It's required for PNG, so may be linked anyhow.] |
1265b539 | 433 | |
ba1c68de | 434 | ** Add a --pristine startup flag which does -q --no-site-file plus |
1265b539 DL |
435 | ignoring X resources (Doze equivalents?) and most of the |
436 | environment. What should not be ignored needs consideration. | |
590394eb | 437 | [Do the existing -Q and -D cover this, or is more needed?] |
1265b539 | 438 | |
ba1c68de | 439 | ** Improve the GC (generational, incremental). (We may be able to use |
7bea57c9 DL |
440 | the Boehm collector.) [See the Boehm-GC branch in CVS for work on |
441 | this.] | |
19cc91fb | 442 | |
ba1c68de | 443 | ** Check what hooks would help Emacspeak -- see the defadvising in W3. |
e2849090 | 444 | |
a5bd14d3 RS |
445 | ** Add definitions for symbol properties, for documentation purposes. |
446 | ||
ba1c68de | 447 | ** Add horizontal scroll bars. |
00a18b59 | 448 | |
ba1c68de | 449 | ** Provide an optional feature which computes a scroll bar slider's |
e4ded23c | 450 | size and its position from lines instead of characters. |
c0460c17 | 451 | |
ba1c68de | 452 | ** Allow unknown image types to be rendered via an external program |
590394eb GM |
453 | converting them to, say, PBM (in the same way as PostScript?). [does |
454 | doc-view.el do this, or could it be extended to do this?] | |
d1c3f6b6 | 455 | |
ba1c68de | 456 | ** Allow displaying an X window from an external program in a buffer, |
d1c3f6b6 RS |
457 | e.g. to render graphics from Java applets. [gerd and/or wmperry |
458 | thought this was feasible.] | |
459 | ||
ba1c68de | 460 | ** Allow images (not just text) in the margin to be mouse-sensitive. |
d1c3f6b6 RS |
461 | (Requires recursing through display properties). Provide some way |
462 | to simulate mouse-clicks on marginal text without a mouse. | |
463 | ||
ba1c68de | 464 | ** Implement Lisp functions to determine properly whether a character |
d1c3f6b6 RS |
465 | is displayable (particularly needed in XFree 4, sigh). Use it to |
466 | define useful glyphs that may be displayed as images or unicodes | |
467 | (with ASCIIfied fallback via latin1-disp). Examples include | |
468 | box-drawing graphics in Custom buffers, W3 rules and tables, and | |
469 | tree displays generally, mode-line mail indicator. [See work done | |
8589dc17 | 470 | already for Emacs 23 and consult fx.] |
d1c3f6b6 | 471 | |
ba1c68de | 472 | ** Do something to make rms happy with fx's dynamic loading, and use it |
d1c3f6b6 RS |
473 | to implement things like auto-loaded buffer parsers and database |
474 | access in cases which need more than Lisp. | |
475 | ||
ba1c68de | 476 | ** Extend ps-print to deal with multiple font sizes, images, and extra |
d1c3f6b6 RS |
477 | encodings. |
478 | ||
ba1c68de | 479 | ** Provide portable undumping using mmap (per gerd design). |
d1c3f6b6 | 480 | |
48b194fd RS |
481 | ** Make byte-compile avoid binding an expanded defsubst's args |
482 | when the body only calls primitives. | |
483 | ||
ba1c68de | 484 | ** Use the XIE X extension, if available, for image display. |
e641b454 | 485 | |
ba1c68de | 486 | ** Make monochrome images display using the foreground and background |
51fe665a RS |
487 | colors of the applicable faces. |
488 | ||
d101bf56 RS |
489 | ** Face remapping. |
490 | ||
ec68482b RS |
491 | ** Make `format-time-string' preserve text properties like `format'. |
492 | ||
fda12b27 RS |
493 | ** Optionally make the cursor a little thinner at the end of a line |
494 | or the end of the buffer. | |
495 | ||
ba1c68de | 496 | ** Port the conservative stack marking code of Emacs' garbage collector |
1b2105d9 EZ |
497 | to more systems, so that we can completely get rid of GCPROs. Note |
498 | that Boehm garbage collector provides this. | |
5e101746 | 499 | |
ba1c68de | 500 | ** Reorder defcustom's in each package so that the more important |
5005a9c0 EZ |
501 | options come first in the Customize buffers. This could be done by |
502 | either rearranging the file (since options are shown in the order | |
503 | they appear in the *.el files), or by adding a few :set-after | |
504 | attributes. | |
505 | ||
ba1c68de | 506 | ** Maybe document the features of libraries missing from the manual (or |
5e101746 RS |
507 | ancillary manuals, including the Lisp manual in some cases). |
508 | This is not worth doing for all of these packages and we need not | |
509 | aim for completeness, but some may be worth documenting. | |
510 | ||
511 | Here's a list which is probably not complete/correct: align, allout, | |
512 | artist, ansi-color, array, battery, calculator, cdl, cmuscheme, | |
657c5358 | 513 | completion, cua, delim-col, dirtrack, double, echistory, elide-head, |
5e101746 RS |
514 | easymenu, expand, flow-ctrl, format [format-alist], |
515 | generic/generic-x [various modes], kermit, log-edit, ledit | |
516 | [obsolete?], makesum, midnight [other than in Kill Buffer node], | |
517 | mouse-copy [?], mouse-drag, mouse-sel, net-utils, rcompile, | |
518 | snmp-mode [?], soundex [should be interactive?], strokes [start from | |
519 | the web page], talk, thingatpt [interactive functions?], type-break, | |
520 | vcursor, xscheme, zone-mode [?], mlconvert [?], iso-cvt, iso-swed, | |
521 | swedish, feedmail [?], uce, bruce, gametree, meese, page-ext, | |
522 | refbib, refer, scribe, sgml-mode, spell, texinfo, underline, | |
523 | cmacexp, hideif, mantemp [obsolete?], pcomplete, assoc, xml, | |
524 | cvs-status (should be described in PCL-CVS manual); other progmodes, | |
525 | probably in separate manual. | |
758830ba | 526 | |
ba1c68de | 527 | ** Convert the XPM bitmaps to PPM, replace the PBMs with them and scrap |
bf6394a6 DL |
528 | the XPMs so that the colour versions work generally. (Requires care |
529 | with the colour used for the transparent regions.) | |
530 | ||
ba1c68de | 531 | ** Convenient access to the `values' variable. It would be nice to have an |
758830ba JB |
532 | interface that would show you the printed reps of the elements of the |
533 | list in a menu, let you select one of the values, and put it into some | |
534 | other variable, without changing the value of `values'. | |
bf6394a6 | 535 | |
ba1c68de | 536 | ** (Controlled by a flag) make open and close syntax match exactly, |
c51b37fd DL |
537 | i.e. `(' doesn't match `]'. |
538 | ||
ba1c68de | 539 | ** Specify parameter ID-FORMAT in all calls to `file-attributes' and |
9ac8c83b LH |
540 | `directory-files-and-attributes' where attributes UID or GID are used. |
541 | Whenever possible, use value 'string. | |
542 | When done, change meaning of default value from 'integer to 'string. | |
543 | If value 'integer is used nowhere, remove the parameter ID-FORMAT from | |
544 | the definition of `file-attributes' and `directory-files-and-attributes' | |
545 | and from the calls. | |
546 | ||
81e4af5f EZ |
547 | ** Modify the emulation of `stat' for MS-Windows to support large files. |
548 | The current version uses the stock Windows definition of `struct | |
549 | stat', where the file's size is returned as a 32-bit integer. That | |
550 | overflows for files larger than 4GB. To fix, modify `stat' to use | |
551 | 64-bit size, and use a declaration of `struct stat' that supports | |
552 | such sizes. | |
553 | ||
cf4c9271 KH |
554 | ** Make language-info-alist customizable. Currently a user can customize |
555 | only the variable `current-language-environment'. | |
556 | ||
557 | ** Improve language environment handling so that Emacs can fit | |
558 | better to a users locale. Currently Emacs uses utf-8 language | |
559 | environment for all utf-8 locales, thus a user in ja_JP.UTF-8 locale | |
560 | are also put in utf-8 lang. env. In such a case, it is | |
561 | better to use Japanese lang. env. but prefer utf-8 coding system. | |
1f724d55 | 562 | |
321e4870 RS |
563 | ** Enhance locale handling: handle language, territory and charset |
564 | orthogonally and de-emphasize language environments. Use the locale | |
565 | to set up more things, such as fontsets, the default Ispell | |
566 | dictionary, diary format, calendar holidays and display, quoting | |
567 | characters and phrase boundaries, sentence endings, collation for | |
568 | sorting (at least for unicodes), HTTP Accept-language, patterns for | |
569 | directory listings and compilation messages, yes-or-no replies, | |
570 | common menu items when the toolkit supports it ... `locale-info' | |
571 | needs extending for LC_COLLATE &c. [fx started on this.] | |
572 | ||
1f724d55 KH |
573 | ** Eliminate the current restriction on header printing by ps-print. |
574 | Currently, a header can contain only single 1-byte charset in | |
575 | addition to ASCII. | |
576 | ||
577 | ** In ps-print, provide an user friendly interface to specify fonts. | |
578 | ||
1f724d55 KH |
579 | ** Enhance word boundary detection for such a script that doesn't use |
580 | space at word boundary (e.g. Thai). | |
581 | ||
cf4c9271 KH |
582 | ** Implement interface programs with major Japanese conversion server |
583 | in lib-src so that they can be used from the input method | |
584 | "japanese". Currently, most Japanese users are using external | |
585 | packages (e.g. tamago, anthy) or an input method via XIM. | |
1f724d55 | 586 | |
a53e64cc SM |
587 | ** Let LEIM handle the Mode_switch key like XIM does (i.e. a toggle like C-\ |
588 | but which can also be used as a modifier). | |
589 | ||
d59e3c42 NR |
590 | ** Improve Help buffers: Change the face of previously visited links (like |
591 | Info, but also with regard to namespace), add a forward button to make the | |
592 | Help buffer more browser like and gives the value of lisp expressions | |
593 | e.g auto-mode-alist, the right face. [nickrob@snap.net.nz has a patch | |
594 | for this for inclusion after 22.1]. | |
595 | ||
5a473319 GM |
596 | ** Possibly make `list-holidays' eval items in the calendar-holidays variable. |
597 | See thread | |
598 | <http://lists.gnu.org/archive/html/emacs-devel/2006-02/msg01034.html>. | |
599 | [rgm@gnu.org will look at this after 22.1] | |
600 | ||
9e21382c GM |
601 | ** Possibly make cal-dst use the system timezone database directly. |
602 | See thread | |
603 | <http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-11/msg00060.html> | |
604 | ||
590394eb GM |
605 | ** Possibly add a "close" button to the modeline. |
606 | The idea is to add an "X" of some kind, that when clicked deletes | |
607 | the window associated with that modeline. | |
608 | http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg02416.html | |
609 | ||
ba1c68de SM |
610 | * Internal changes |
611 | ||
41a023e3 | 612 | ** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction |
dcbccc4d CY |
613 | since the mark bit is no longer stored in the Lisp_Object itself. |
614 | ||
12cdb1c1 SM |
615 | ** Refine the `predicate' arg to read-file-name. |
616 | Currently, it mixes up the predicate to apply when doing completion and the | |
617 | one to use when terminating the selection. | |
618 | ||
1d919365 SM |
619 | ** Merge ibuffer.el and buff-menu.el. |
620 | More specifically do what's needed to make ibuffer.el the default, | |
621 | or just an extension of buff-menu.el. | |
622 | ||
623 | ** Use pcomplete by default in shell-mode. | |
624 | This means to make it behave (by default) more like the current code. | |
625 | Use it also for read-shell-command, M-x compile, ... | |
626 | ||
627 | ** Merge sendmail.el and messages.el. | |
628 | Probably not a complete merge, but at least arrange for messages.el to be | |
629 | a derived mode of sendmail.el. Or arrange for messages.el to be split | |
630 | into a small core and "the rest" so that we use less resources as long as | |
631 | we stick to the features provided in sendmail.el. | |
045744c6 | 632 | |
ba1c68de | 633 | ** Replace gmalloc.c with the modified Doug Lea code from the current |
1d919365 SM |
634 | GNU libc so that the special mmapping of buffers can be removed -- |
635 | that apparently loses under Solaris, at least. [fx has mostly done | |
636 | this.] | |
ba1c68de SM |
637 | |
638 | ** Rewrite make-docfile to be clean and maintainable. | |
639 | ||
640 | ** Add an inferior-comint-minor-mode to capture the common set of operations | |
641 | offered by major modes that offer an associated inferior | |
d3a403e5 SM |
642 | comint-derived mode. I.e. basically make cmuscheme.el/inf-lisp.el generic. |
643 | For use by sml-mode, python-mode, tex-mode, scheme-mode, lisp-mode, | |
644 | haskell-mode, tuareg-mode, ... | |
ba1c68de | 645 | |
7cef6228 CY |
646 | ** Make SYNC_INPUT the default. |
647 | All loops using immediate_quit need to be checked to ensure that | |
648 | C-g can interrupt them, in case of an infinite loop. Once we | |
649 | switch to using SYNC_INPUT, we can remove the BLOCK_INPUTs in the | |
650 | allocation functions (allocate_string etc.) without worrying about | |
651 | data munging. | |
652 | ||
f57dad5a MB |
653 | ** Add "link" button class |
654 | Add a standard button-class named "link", and make all other link-like | |
655 | button classes inherit from it. Set the default face of the "link" button | |
656 | class to the standard "link" face. | |
657 | ||
2345130a SM |
658 | * Other known bugs: |
659 | ||
c3bb6fdb | 660 | ** `make-frame' forgets unhandled parameters, at least for X11 frames. |
48b8e4a0 SM |
661 | ** The \\{...} keymap dump output does not correctly remove shadowed entries: |
662 | From: "Drew Adams" <drew.adams@oracle.com> | |
663 | ||
664 | (define-key minibuffer-local-map [(control ?=)] 'foo) | |
665 | (define-key minibuffer-local-completion-map [(control ?=)] 'foo) | |
666 | ||
667 | (defun toto () "\\{minibuffer-local-completion-map}" 4) | |
668 | ||
669 | C-h f toto shows a duplicate entry for C-=: | |
670 | ||
671 | toto is a Lisp function. | |
672 | (toto) | |
673 | ||
674 | key binding | |
675 | - --- ------- | |
676 | ||
677 | C-g abort-recursive-edit | |
678 | TAB minibuffer-complete | |
679 | C-j exit-minibuffer | |
680 | RET exit-minibuffer | |
681 | ESC Prefix Command | |
682 | SPC minibuffer-complete-word | |
683 | ? minibuffer-completion-help | |
684 | C-= foo | |
685 | C-= foo | |
686 | ... | |
687 | ||
2345130a SM |
688 | ** a two-char comment-starter whose two chars are symbol constituents will |
689 | not be noticed if it appears within a word. | |
690 | ||
07ff1e4b RS |
691 | ** Fix unexelf.c to handle the .data.rel and .data.rel.local |
692 | sections made by GCC 3.4 on IRIX. | |
693 | ||
5b87ad55 GM |
694 | \f |
695 | This file is part of GNU Emacs. | |
696 | ||
697 | GNU Emacs is free software; you can redistribute it and/or modify | |
698 | it under the terms of the GNU General Public License as published by | |
fca4a5de | 699 | the Free Software Foundation; either version 3, or (at your option) |
5b87ad55 | 700 | any later version. |
309920fa | 701 | |
5b87ad55 GM |
702 | GNU Emacs is distributed in the hope that it will be useful, |
703 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
704 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
705 | GNU General Public License for more details. | |
309920fa | 706 | |
5b87ad55 GM |
707 | You should have received a copy of the GNU General Public License |
708 | along with GNU Emacs; see the file COPYING. If not, write to the | |
709 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
710 | Boston, MA 02110-1301, USA. | |
309920fa | 711 | |
ab5796a9 | 712 | ;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036 |