Commit | Line | Data |
---|---|---|
e39fc314 | 1 | -*-text-*- |
19cc91fb | 2 | |
2255d5b4 RS |
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 | |
5 | aware that the problem is being addressed, and talk with you how to do | |
7bea57c9 | 6 | it best. Since Emacs is an FSF-copyrighted package, please be |
2255d5b4 RS |
7 | prepared to sign legal papers to transfer the copyright on your work |
8 | to the FSF. | |
9 | ||
10 | Small but important fixes needed in existing features: | |
a9c1a157 | 11 | |
a9c1a157 RS |
12 | * Make compile.el record the markers that point to error loci |
13 | on text properties in the error message lines. | |
14 | ||
6b61353c KH |
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 | |
17 | 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 | |
19 | text-property, overlay, or selective display) from the kill-ring. | |
20 | ||
a9c1a157 RS |
21 | Important features: |
22 | ||
5e101746 | 23 | * Provide user-friendly ways to list all available font families, |
bf6394a6 DL |
24 | display a font as a sample, etc. [fx is looking at multilingual |
25 | font selection for Emacs 22.] | |
5e101746 | 26 | |
00a18b59 | 27 | * Program Enriched mode to read and save in RTF. [Is there actually a |
6b61353c KH |
28 | decent single definition of RTF? Maybe see info at |
29 | http://latex2rtf.sourceforge.net/.] | |
6165b6e3 | 30 | |
a9c1a157 RS |
31 | * Implement something better than the current Refill mode. This |
32 | probably needs some primitive support. | |
33 | ||
34 | * Implement primitive and higher-level functions to allow filling | |
35 | properly with variable-pitch faces. | |
36 | ||
d1c3f6b6 RS |
37 | * Implement a smoother vertical scroll facility, one that allows |
38 | C-v to scroll through a tall image. | |
a9c1a157 | 39 | |
6165b6e3 EZ |
40 | * Implement other text formatting properties. |
41 | ** 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". | |
43 | Don't break the line between two characters that have the | |
44 | same value of this property. | |
45 | ** Discretionary hyphens that are not visible when they are at end of line. | |
46 | ||
a9c1a157 RS |
47 | * Make movemail work with IMAP. |
48 | ||
bf6394a6 DL |
49 | * Internationalize Emacs's messages. [Note that this is of limited |
50 | use until the menus can display multilingual text. It also doesn't | |
51 | address important issues like using the names of symbols essentially | |
52 | as documentation, e.g. in command names and Custom. -- fx] | |
a9c1a157 | 53 | |
bf6394a6 DL |
54 | * Make the Lucid menu widget display multilingual text. [This |
55 | 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 | |
57 | pixels. Note that the relevant Xlib functions assume a specific | |
58 | locale; that isn't good enough even if X can render the arbitrary | |
7bea57c9 DL |
59 | 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 | |
61 | Emacs can encode it as utf-8 and gtk can display the result.] | |
a9c1a157 RS |
62 | |
63 | * Remove the limitation that window and frame widths and heights can | |
64 | be only full columns/lines. | |
65 | ||
66 | Other features we would like: | |
67 | ||
68 | * Have a command suggestion help system that recognizes patterns | |
69 | of commands which could be replaced with a simpler common command. | |
70 | It should not make more than one suggestion per 10 minutes. | |
6165b6e3 | 71 | |
30a2aafd RS |
72 | * 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 | |
74 | user-selected input method, with the default being the union of | |
75 | latin-1-prefix and latin-1-postfix. | |
76 | ||
a933dad1 DL |
77 | * Implement a clean way to use different major modes for |
78 | different parts of a buffer. | |
79 | ||
80 | * Give start-process the ability to direct standard-error | |
81 | output to a different filter. | |
82 | ||
a933dad1 DL |
83 | * Make desktop.el save the "frame configuration" of Emacs (in some |
84 | useful sense). | |
85 | ||
8ba148c7 RS |
86 | * Give desktop.el a feature to switch between different named |
87 | desktops. | |
88 | ||
a933dad1 | 89 | * Replace finder.el with something that generates an Info file |
e39fc314 DL |
90 | which gives the same information through a menu structure. [Dave |
91 | Love started on this.] | |
a933dad1 | 92 | |
e39fc314 | 93 | * Implement a variant of uncompress.el or jka-compr.el that works with |
2794f7ab DL |
94 | GNU Privacy Guard for encryption. [Code exists but isn't assigned. |
95 | See the Gnus development sources for assigned code concerning GPG | |
96 | use with mail, which is probably a good start.] | |
a933dad1 DL |
97 | |
98 | * Save undo information in files, and reload it when needed | |
99 | for undoing. | |
100 | ||
7665519d | 101 | * Merge the Emacs regex.c with the Glibc regex.c. |
bf6394a6 | 102 | They split off a few years ago through negligence. |
7665519d | 103 | |
a933dad1 DL |
104 | * Change the Windows NT menu code |
105 | so that it handles the deep_p argument and avoids | |
106 | regenerating the whole menu bar menu tree except | |
107 | when the user tries to use the menubar. | |
108 | ||
109 | This requires the RIT to forward the WM_INITMENU message to | |
110 | the main thread, and not return from that message until the main | |
0245b3ef | 111 | thread has processed the MENU_BAR_ACTIVATE_EVENT and regenerated |
a933dad1 | 112 | the whole menu bar. In the mean time, it should process other messages. |
d054101f | 113 | |
e39fc314 | 114 | * Get some major packages installed: W3/url (development version needs |
2794f7ab | 115 | significant work), PSGML. Check the assignments file for other |
a52ce7f8 | 116 | packages which might go in and have been missed. |
e39fc314 DL |
117 | |
118 | * Make keymaps a first-class Lisp object (this means a rewrite of | |
5dd31b13 SM |
119 | keymap.c). What should it do apart from being opaque ? |
120 | multiple inheritance ? faster where-is ? no more fix_submap_inheritance ? | |
121 | what else ? | |
e39fc314 DL |
122 | |
123 | * Provide real menus on ttys. The MS-DOS implementation can serve as | |
124 | an example how to do part of this. | |
125 | ||
126 | * Implement popular parts of the rest of the CL functions as compiler | |
127 | macros in cl-macs. | |
128 | ||
a52ce7f8 JB |
129 | * Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA, |
130 | but it's a valuable feature worth making more general. | |
e39fc314 DL |
131 | |
132 | * Support simultaneous tty and X frames. | |
133 | ||
bf6394a6 DL |
134 | * Provide MIME support for Rmail using the Gnus MIME library. [Maybe |
135 | not now feasible, given Gnus maintenance decisions. fx looked at | |
136 | this and can say where some of the problems are.] | |
e39fc314 DL |
137 | |
138 | * Eliminate the storm of warnings concerning char/unsigned char | |
139 | mismatches that we get with proprietary compilers on various systems. | |
140 | They make it difficult to spot the important warnings. | |
141 | ||
142 | * Fix anything necessary to use `long long' EMACS_INTs with GCC. | |
eaf67bae DL |
143 | |
144 | * Split out parts of lisp.h and generate Makefile dependencies | |
145 | automatically. | |
146 | ||
147 | * Update the FAQ. | |
148 | ||
b04f7626 DL |
149 | * Allow auto-compression-mode to use zlib calls if zlib is available. |
150 | [It's required for PNG, so may be linked anyhow.] | |
1265b539 DL |
151 | |
152 | * Add a --pristine startup flag which does -q --no-site-file plus | |
153 | ignoring X resources (Doze equivalents?) and most of the | |
154 | environment. What should not be ignored needs consideration. | |
155 | ||
cf56d05f DL |
156 | * Investigate using the language environment (or locale?) to set up |
157 | more things, such as the default Ispell dictionary, calendar | |
6147334f | 158 | holidays, quoting characters?,... |
34f70eda DL |
159 | |
160 | * Improve the GC (generational, incremental). (We may be able to use | |
7bea57c9 DL |
161 | the Boehm collector.) [See the Boehm-GC branch in CVS for work on |
162 | this.] | |
19cc91fb | 163 | |
4dd4cc14 | 164 | * Check what hooks would help Emacspeak -- see the defadvising in W3. |
e2849090 | 165 | |
03ff8aab | 166 | * Add horizontal scroll bars. |
00a18b59 | 167 | |
e4ded23c GM |
168 | * Provide an optional feature which computes a scroll bar slider's |
169 | size and its position from lines instead of characters. | |
c0460c17 | 170 | |
bf6394a6 | 171 | * Make the Custom themes support do useful things. |
3a84ed60 | 172 | |
8d57a345 | 173 | * Investigate using GNU Lightning or similar system for incremental |
5dcdd840 DL |
174 | compilation of selected bytecode functions to subrs. Converting CCL |
175 | programs to native code is probably the first thing to try, though. | |
b14b5f08 | 176 | |
177c0ea7 | 177 | * Add support for SVG (Scalable Vector Graphics) rendering to |
296808a5 | 178 | Emacs. |
6add099c | 179 | |
d1c3f6b6 RS |
180 | * Allow unknown image types to be rendered via an external program |
181 | converting them to, say, PBM (in the same way as PostScript?). | |
182 | ||
183 | * 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 | |
185 | thought this was feasible.] | |
186 | ||
187 | * Allow images (not just text) in the margin to be mouse-sensitive. | |
188 | (Requires recursing through display properties). Provide some way | |
189 | to simulate mouse-clicks on marginal text without a mouse. | |
190 | ||
191 | * Implement Lisp functions to determine properly whether a character | |
192 | is displayable (particularly needed in XFree 4, sigh). Use it to | |
193 | define useful glyphs that may be displayed as images or unicodes | |
194 | (with ASCIIfied fallback via latin1-disp). Examples include | |
195 | box-drawing graphics in Custom buffers, W3 rules and tables, and | |
196 | tree displays generally, mode-line mail indicator. [See work done | |
197 | already for Emacs 22 and consult fx.] | |
198 | ||
199 | * 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 | |
201 | access in cases which need more than Lisp. | |
202 | ||
203 | * Extend ps-print to deal with multiple font sizes, images, and extra | |
204 | encodings. | |
205 | ||
206 | * Provide portable undumping using mmap (per gerd design). | |
207 | ||
208 | * Replace gmalloc.c with the modified Doug Lea code from the current | |
bf6394a6 DL |
209 | GNU libc so that the special mmapping of buffers can be removed -- |
210 | that apparently loses under Solaris, at least. [fx has mostly done | |
211 | this.] | |
d1c3f6b6 | 212 | |
6add099c | 213 | * Use the XIE X extension, if available, for image display. |
e641b454 | 214 | |
51fe665a RS |
215 | * Make monochrome images display using the foreground and background |
216 | colors of the applicable faces. | |
217 | ||
2a573e69 CW |
218 | * Add support for rendering antialiased text, probably using |
219 | XRender/Freetype. | |
c5020b5b | 220 | |
d1c3f6b6 | 221 | * Rewrite make-docfile to be clean and maintainable. |
5e101746 RS |
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. | |
225 | ||
5005a9c0 EZ |
226 | * Reorder defcustom's in each package so that the more important |
227 | options come first in the Customize buffers. This could be done by | |
228 | 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 | |
230 | attributes. | |
231 | ||
5e101746 RS |
232 | * Maybe document the features of libraries missing from the manual (or |
233 | ancillary manuals, including the Lisp manual in some cases). | |
234 | This is not worth doing for all of these packages and we need not | |
235 | aim for completeness, but some may be worth documenting. | |
236 | ||
237 | Here's a list which is probably not complete/correct: align, allout, | |
238 | artist, ansi-color, array, battery, calculator, cdl, cmuscheme, | |
657c5358 | 239 | completion, cua, delim-col, dirtrack, double, echistory, elide-head, |
5e101746 RS |
240 | easymenu, expand, flow-ctrl, format [format-alist], |
241 | generic/generic-x [various modes], kermit, log-edit, ledit | |
242 | [obsolete?], makesum, midnight [other than in Kill Buffer node], | |
243 | mouse-copy [?], mouse-drag, mouse-sel, net-utils, rcompile, | |
244 | snmp-mode [?], soundex [should be interactive?], strokes [start from | |
245 | the web page], talk, thingatpt [interactive functions?], type-break, | |
246 | vcursor, xscheme, zone-mode [?], mlconvert [?], iso-cvt, iso-swed, | |
247 | swedish, feedmail [?], uce, bruce, gametree, meese, page-ext, | |
248 | refbib, refer, scribe, sgml-mode, spell, texinfo, underline, | |
249 | cmacexp, hideif, mantemp [obsolete?], pcomplete, assoc, xml, | |
250 | cvs-status (should be described in PCL-CVS manual); other progmodes, | |
251 | probably in separate manual. | |
758830ba | 252 | |
bf6394a6 DL |
253 | * 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 | |
255 | with the colour used for the transparent regions.) | |
256 | ||
758830ba JB |
257 | * 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 | |
259 | 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'. | |
bf6394a6 DL |
261 | |
262 | * Fix skip-chars-{for,back}ward to allow character classes. | |
6b61353c KH |
263 | |
264 | * (Controlled by a flag) make open and close syntax match exactly, | |
265 | i.e. `(' doesn't match `]'. | |
266 | ||
267 | * Specify parameter ID-FORMAT in all calls to `file-attributes' and | |
268 | `directory-files-and-attributes' where attributes UID or GID are used. | |
269 | Whenever possible, use value 'string. | |
270 | When done, change meaning of default value from 'integer to 'string. | |
271 | If value 'integer is used nowhere, remove the parameter ID-FORMAT from | |
272 | the definition of `file-attributes' and `directory-files-and-attributes' | |
273 | and from the calls. | |
274 | ||
275 | ;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036 |