Do not use backslash-b to select backspaces.
[mp-5.x.git] / TODO
blobbeeab3334ec7415f2e733b040353c42b0359eeb8
1 Minimum Profit 5 TODO / Bug List
2 ================================
4 Release Critical Bugs
5 ---------------------
7  * 1286: Add an action to move to previous section.
8  * 1287: Add an action to move to next section.
10 Open Bugs
11 ---------
13  * 1150: The GTK menu is not rebuilt when calling mp.update_ui().
14  * 1176: Add interface to set the undo levels.
15  * 1189: mp.drv.form() cannot be used from the command line in win32.
16  * 1199: On GTK, the default font (Mono 12, seemingly an alias to an
17    actual font) doesn't get its width calculated correctly, so right
18    margin detection and mouse positioning doesn't work. To workaround
19    this, set mp.config.font_face (in the config file) to an existing
20    monospaced font, like "DejaVu Mono" or "Bitstream Vera Sans Mono".
21  * 1230: Action `eval_doc' seems to fail forever after an error.
22  * 1233: Document all MPSL code using mp_doccer (at least, the
23    interface functions).
24  * 1242: There cannot be two tags with the same name, as they are
25    stored as hash keys.
26  * 1249: Change TUI dialogs to be really dialogs.
27  * 1271: Section marks should be multiline.
28  * 1278: The Qt driver does not accept Qt-specific command line
29    arguments.
30  * 1282: The timer function in the Curses driver does not work
31    while pressing keys.
32  * 1285: Fix KDE build.
34 Pending Enhancements
35 --------------------
37  * 1100: Paren matching should be syntax-highlight-dependent, so that
38    HTML / XML / SGML match < > pairs.
39  * 1101: Paren matching should not be limited to just parentheses and
40    similar, but to full strings (very useful for HTML open / close tags.)
41  * 1109: Add jump to matching paren.
42  * 1183: Many actions should operate only on the selection block
43    (expand this issue).
44  * 1203: Change the drawing engine to only apply the syntax highlighting
45    regexes whenever the modified flag has changed or the viewport is
46    different.
47  * 1225: Add a regex (or similar) filter for lines. Lines matching it
48    (or not) won't appear on screen.
49  * 1275: Add a 'Writing' menu bar.
50  * 1279: Add a new visual wrap mode.
51  * 1280: Study a way to convert MP to a "portable" application, i.e.
52    to be formed by just the executable with all MPSL code embedded
53    (mainly aimed towards MS Windows).
55 Closed
56 ------
58  * 1103: When the end of a coloured block (for example, a comment in
59    C code) is lost below the last line, it's not coloured (this probably
60    means there should exist 'postread lines')(Fixable with special regular
61    expressions; Tue, 15 Nov 2005 13:49:45 +0100).
62  * 1114: Add delete line (Thu, 24 Nov 2005 20:12:05 +0100).
63  * 1121: Treatment of EOL in last line is uncertain
64    (Thu, 08 Dec 2005 20:01:09 +0100).
65  * 1123: When deleting the only line of a file, it gets mad
66    (Thu, 08 Dec 2005 20:09:42 +0100).
67  * 1104: When moving up / down, the X position should match the visual
68    column and not the exact one. Now, when moving among lines with a
69    different number of tabs, the cursor jumps weirdly
70    (Fri, 09 Dec 2005 10:59:01 +0100).
71  * 1105: Use a reasonable build system with config.sh
72    (Thu, 15 Dec 2005 08:32:19 +0100).
73  * 1124: Add the multi-document management (Thu, 15 Dec 2005 11:12:14 +0100).
74  * 1102: Tabs are incorrectly coloured when the cursor is over one
75    (Thu, 15 Dec 2005 12:09:35 +0100).
76  * 1122: Fix quote regexes to not match newlines
77    (Thu, 15 Dec 2005 12:36:51 +0100).
78  * 1125: Make it installable under Unix systems
79    (Mon, 19 Dec 2005 17:17:19 +0100).
80  * 1106: Add tag support (Wed, 21 Dec 2005 07:55:03 +0100).
81  * 1126: The dynamic array length in drw_as_array() is not taken
82    into account (Wed, 21 Dec 2005 18:30:22 +0100).
83  * 1127: If a double width char does not fit to the end of the line,
84    draw a single space instead (Wed, 21 Dec 2005 18:45:08 +0100).
85  * 1108: Add word wrapping (Sat, 24 Dec 2005 19:26:45 +0100).
86  * 1128: Add the -e command line switch
87    (Mon, 26 Dec 2005 19:45:20 +0100).
88  * 1119: Add learn mode (Fri, 20 Jan 2006 18:55:41 +0100).
89  * 1129: Add '+line' command line argument (Tue, 24 Jan 2006 06:22:49 +0100).
90  * 1130: When the last open file is closed (so a new, empty file is created
91    automatically), the tab files are not rebuilt (as the size of the tab set
92    is the same) (Tue, 14 Feb 2006 08:08:55 +0100).
93  * 1132: Add move word right (Mon, 20 Feb 2006 17:23:57 +0100).
94  * 1111: Add search (Tue, 21 Feb 2006 07:28:36 +0100).
95  * 1112: Add replace (Tue, 21 Feb 2006 07:48:36 +0100).
96  * 1113: Add replace all (Tue, 21 Feb 2006 08:33:02 +0100).
97  * 1133: Add replace in all documents (Tue, 21 Feb 2006 08:37:11 +0100).
98  * 1134: Add ~/.mp.mpsl (user profile) support (Tue, 28 Feb 2006 17:44:56 +0100).
99  * 1135: If ~/.mp.mpsl does not exist, aborts
100   (Tue, 11 Apr 2006 17:05:27 +0200).
101  * 1117: Add go to line (Mon, 17 Apr 2006 13:36:34 +0200).
102  * 1136: Add the 'modified' flag to documents
103    (Wed, 19 Apr 2006 08:16:37 +0200).
104  * 1145: Add tag target to the status line (Sat, 13 May 2006 09:56:37 +0200).
105  * 1118: Add move word left (Sat, 13 May 2006 12:25:01 +0200).
106  * 1107: Add ispell support (Mon, 15 May 2006 11:50:29 +0200).
107  * 1147: Add history to GTK's readline (Sun, 21 May 2006 17:33:42 +0200).
108  * 1148: Add history to win32's readline (Sun, 21 May 2006 17:48:35 +0200).
109  * 1139: Add the 'default' value to mp.drv.readline()
110    (Mon, 22 May 2006 06:10:17 +0200).
111  * 1143: Add interactive help (Tue, 23 May 2006 18:39:29 +0200).
112  * 1149: Unify mp.insert() and mp.paste(), as they do the same thing
113    (Thu, 25 May 2006 13:40:26 +0200).
114  * 1138: The call to mp.load_tags() in mp_tags.mpsl startup does not
115    work because at that time the colors are not built (so there is no
116    mp.colors.tag.attr) (Mon, 05 Jun 2006 19:25:32 +0200).
117  * 1144: Add the menu (Tue, 06 Jun 2006 19:09:38 +0200).
118  * 1146: Add 'recording macro' flag to the status line
119    (Sat, 10 Jun 2006 11:51:28 +0200).
120  * 1151: The menu should show a ? if the action doesn't exist
121    (Tue, 13 Jun 2006 16:19:05 +0200).
122  * 1152: The menu should show the bound key, if any
123    (Tue, 13 Jun 2006 16:19:11 +0200).
124  * 1154: Change syntax highlight definitions to be an array, so that
125    preference works (Tue, 27 Jun 2006 16:35:18 +0200).
126  * 1110: Add mp_templates support (Tue, 27 Jun 2006 18:18:49 +0200).
127  * 1140: Add mp.drv.list() (Closed by #1156 and #1157).
128  * 1156: Add mp.drv.list() to GTK (Tue, 04 Jul 2006 13:19:58 +0200).
129  * 1157: Add mp.drv.list() to win32 (Thu, 06 Jul 2006 13:14:14 +0200).
130  * 1141: Add complete tag support, with 'ctags' execution, asking for
131    a tag (needs #1139) and selecting from a list (needs #1140)
132    (Thu, 13 Jul 2006 13:59:02 +0200).
133  * 1142: Add symbol completion with tags (needs #1140)
134    (Thu, 13 Jul 2006 17:10:49 +0200).
135  * 1159: Do something to avoid having carriage returns in the text
136    (Mon, 17 Jul 2006 14:22:26 +0200).
137  * 1158: Fail on trying to open directories (Mon, 17 Jul 2006 15:54:25 +0200).
138  * 1160: Current opening file method (read-write mode and then stat())
139    fails opening read-only files, which is unacceptable
140    (Wed, 19 Jul 2006 13:15:07 +0200).
141  * 1153: Suppress the "File '.mp.mpsl' not found in INC" spurious
142    error message (Wed, 19 Jul 2006 18:28:09 +0200).
143  * 1161: Pressing backspace at the beggining of a document deleted
144    the first character (Wed, 19 Jul 2006 18:34:17 +0200).
145  * 1163: Add readline_password to TUI (Thu, 27 Jul 2006 10:17:54 +0200).
146  * 1164: Add readline_password to GTK (Thu, 27 Jul 2006 10:23:56 +0200).
147  * 1165: Add readline_password to Win32 (Thu, 27 Jul 2006 10:38:16 +0200).
148  * 1155: Add replace (Sat, 02 Sep 2006 11:54:06 +0200).
149  * 1167: Tags fail because mp.search() now delimits the string with /
150    (Sun, 17 Sep 2006 09:54:46 +0200).
151  * 1177: Add mp.drv.form() support to Win32 (Mon, 25 Sep 2006 19:49:29 +0200).
152  * 1178: Add mp.drv.form() support to TUI (Sat, 30 Sep 2006 08:03:10 +0200).
153  * 1115: Add password protection (Closed by #1180;
154    Mon, 02 Oct 2006 17:24:36 +0200).
155  * 1162: Add menu support to the Curses / TUI interface
156    (Mon, 02 Oct 2006 20:11:28 +0200).
157  * 1181: Search should always be positioned in the same line
158    (Mon, 02 Oct 2006 20:19:24 +0200).
159  * 1180: Prompt for a password when detecting encrypted files
160    (Thu, 12 Oct 2006 10:54:45 +0200).
161  * 1186: Password-protected files cannot be opened from the command
162    line because mp.drv.form() doesn't exist at that time
163    (Thu, 12 Oct 2006 12:23:14 +0200).
164  * 1187: Tagged words aren't coloured in the GTK driver
165    (Fri, 13 Oct 2006 17:45:56 +0200).
166  * 1188: Tagged words aren't coloured in the win32 driver
167    (Fri, 13 Oct 2006 18:02:55 +0200).
168  * 1190: Encrypted files fail opening in win32
169    (Closed by #1191; Fri, 13 Oct 2006 18:28:02 +0200).
170  * 1191: The win32 version seems to write encrypted files correctly
171    (they can be read on win32 and on unix), but can't read
172    (Fixed in MPDM; Fri, 13 Oct 2006 18:59:01 +0200).
173  * 1192: Fix password protected opening form to equal cancellation
174    if the password is empty (Fri, 13 Oct 2006 20:37:41 +0200).
175  * 1193: mp.drv.form() cannot be used from the command line in GTK,
176    dialogs are created with no fields (but password protected files
177    and tags do work) (My mistake, they work; Sat, 14 Oct 2006 09:31:57 +0200).
178  * 1131: Add move to next / previous ocurrence of character
179    (Mon, 16 Oct 2006 16:17:54 +0200).
180  * 1197: Win32 forms under Win98 don't return anything (it seems that
181    GetDlgItemTextW() is failing) (Fri, 20 Oct 2006 07:42:10 +0200).
182  * 1196: Win32 forms don't show any text under Win98 (it seems that
183    SetDlgItemTextW() is failing) (Fri, 20 Oct 2006 07:50:49 +0200).
184  * 1185: Delete '.' from INC (Fri, 03 Nov 2006 14:03:46 +0100).
185  * 1182: Add selection by moving with the shift key down
186    (Fri, 03 Nov 2006 15:48:41 +0100).
187  * 1200: Add selection by mouse dragging to GTK
188    (Fri, 03 Nov 2006 16:57:26 +0100).
189  * 1202: Block selection doesn't work well. The first mark should have
190    preference from the other (must never change in a selection
191    'session') (Fri, 03 Nov 2006 17:34:03 +0100).
192  * 1201: Add selection by mouse dragging to Win32
193    (Wed, 08 Nov 2006 18:04:03 +0100).
194  * 1116: Add grep (Tue, 14 Nov 2006 17:20:24 +0100).
195  * 1206: Add 'sync' (save all modified documents)
196    (Sun, 26 Nov 2006 12:39:07 +0100).
197  * 1207: Add 'Reopen as UTF-8' (Closed by: #1209, #1210;
198    Sun, 03 Dec 2006 20:27:28 +0100).
199  * 1208: Add 'Reopen as current locale' (Closed by: #1209, #1210;
200    Sun, 03 Dec 2006 20:27:28 +0100).
201  * 1211: Add the 'document_list' action (Fri, 12 Jan 2007 08:28:32 +0100).
202  * 1179: It doesn't work with ncurses, so stop lying about it and
203    ask for ncursesw (Thu, 18 Jan 2007 08:15:14 +0100).
204  * 1169: Port translations from mp 3.x (Thu, 18 Jan 2007 09:02:38 +0100).
205  * 1204: When toggling spelling, the document is incorrectly refreshed
206    (Mon, 22 Jan 2007 13:21:09 +0100).
207  * 1198: Add interface to active spellchecking
208    (Mon, 22 Jan 2007 13:28:36 +0100).
209  * 1210: Add interface to set the encoding
210    (Mon, 22 Jan 2007 13:35:25 +0100).
211  * 1209: Add 'Reopen' (renamed to 'Revert'; Mon, 22 Jan 2007 13:40:25 +0100).
212  * 1172: Add interface to set the word wrapping column
213    (Mon, 22 Jan 2007 14:06:09 +0100).
214  * 1173: Add interface to set the line terminator
215    (Mon, 22 Jan 2007 14:06:09 +0100).
216  * 1174: Add interface to set autoindentation.
217    (Mon, 22 Jan 2007 14:06:09 +0100).
218  * 1171: Add interface to set tab size (Mon, 22 Jan 2007 16:28:47 +0100).
219  * 1175: Add interface to set the tabs-as-spaces
220    (Mon, 22 Jan 2007 16:28:47 +0100).
221  * 1168: Port all syntax highlight definitions from mp 3.x
222    (Wed, 24 Jan 2007 17:58:36 +0100).
223  * 1212: Add mp.config.maximize support for GTK
224    (Thu, 25 Jan 2007 08:45:39 +0100).
225  * 1213: Add mp.config.maximize support for Win32
226    (Thu, 25 Jan 2007 17:12:39 +0100).
227  * 1120: Add a 'system-command' action (Fri, 02 Feb 2007 10:13:26 +0100).
228  * 1137: Word wrap counts all caracters as measuring 1 column,
229    which is stupid. This is specially true for tabs
230    (Thu, 22 Feb 2007 14:10:09 +0100).
231  * 1214: Search and replace don't replace \t, \r and such
232    (Mon, 26 Feb 2007 17:30:50 +0100).
233  * 1215: Rewrite the timer so that it's no longer an action, but
234    a specific function call (Thu, 29 Mar 2007 12:37:01 +0200).
235  * 1216: Document the new timer functionality
236    (Tue, 03 Apr 2007 16:51:06 +0200).
237  * 1217: Add 'Please wait...' messages (Thu, 19 Apr 2007 13:06:54 +0200).
238  * 1220: Tag completion seems to redraw incorrectly
239    (Thu, 10 May 2007 10:29:08 +0200).
240  * 1221: When tag completion expands to exactly one tag, redraw
241    is still incorrect (Thu, 10 May 2007 13:25:25 +0200).
242  * 1224: Also execute /etc/mp.mpsl (Tue, 22 May 2007 08:22:18 +0200).
243  * 1223: Add a mprc.mpsl.sample file (Closed by #1226;
244    Wed, 30 May 2007 13:51:51 +0200).
245  * 1226: Document the configuration values
246    (Wed, 30 May 2007 13:51:58 +0200).
247  * 1228: Add 'ctrl-a: Menu' to Curses status line
248    (Tue, 05 Jun 2007 13:49:02 +0200).
249  * 1229: The 'replace' action should use sregex() instead of an
250    ad-hoc splice() + mp.insert() (Tue, 19 Jun 2007 09:03:57 +0200).
251  * 1231: Selection from GTK lists crashes if the element have
252    changed and ENTER or Escape is pressed (Fixed by a library
253    upgrade; Fri, 29 Jun 2007 08:01:17 +0200).
254  * 1232: Update the features in the home page
255    (Wed, 29 Aug 2007 14:04:15 +0200).
256  * 1237: /etc/mp.mpsl is not being executed
257    (Wed, 12 Sep 2007 12:26:35 +0200).
258  * 1238: On win32, the 'exit' action is called twice when exiting
259    from the keystroke or the menu (but *not* when closing the
260    window) (Mon, 17 Sep 2007 14:28:28 +0200).
261  * 1234: Add support for local sessions
262    (Mon, 17 Sep 2007 17:37:41 +0200).
263  * 1184: Stop inserting the keypress if a key is not bound
264    (Mon, 17 Sep 2007 19:52:19 +0200).
265  * 1241: Implement keycode multiplexing ala Emacs
266    (Tue, 18 Sep 2007 13:25:52 +0200).
267  * 1235: Change the calling points for auto-saved sessions
268    (They are fine now; Tue, 18 Sep 2007 13:36:30 +0200).
269  * 1239: Don't save session if only unnamed files are open
270    (Thu, 20 Sep 2007 19:07:03 +0200).
271  * 1243: The new drw_search_hit() function should pass the
272    mp.last_search value through mp.prefix_regex() (or
273    mp.last_search stored as a regex) (Mon, 15 Oct 2007 14:42:17 +0200).
274  * 1246: An empty search hangs (Tue, 13 Nov 2007 13:13:02 +0100).
275  * 1245: The record macro function, when called from the menu,
276    drops the last keystroke (Thu, 22 Nov 2007 14:39:50 +0100).
277  * 1247: The menu doesn't move on the Curses version
278    (Thu, 22 Nov 2007 14:53:49 +0100).
279  * 1195: The curses menu crashes if it doesn't fit on the screen
280    (Thu, 22 Nov 2007 15:10:52 +0100).
281  * 1222: Add --help info
282    (Fri, 23 Nov 2007 13:22:05 +0100).
283  * 1240: Fix the -f (execute script) command-line argument
284    (Fri, 23 Nov 2007 13:33:11 +0100).
285  * 1219: Update the man page (Fri, 23 Nov 2007 14:16:54 +0100).
286  * 1218: Create or adapt The README file
287    (Tue, 27 Nov 2007 13:29:10 +0100).
288  * 1244: Document the data model
289    (Thu, 29 Nov 2007 07:31:47 +0100).
290  * 1250: Autoindent should be disabled while pasting
291    (Fri, 07 Dec 2007 08:14:25 +0100).
292  * 1251: In TUI's list, when the cursor is on the last element, the
293    rest of the screen is drawn in cursor color
294    (Tue, 18 Dec 2007 11:14:19 +0100).
295  * 1252: Ctrl-keys on GTK fail when caps enabled
296    (Fri, 22 Feb 2008 07:57:40 +0100).
297  * 1236: Calling with -t doesn't draw the screen if only one
298    tag is found (Mon, 25 Feb 2008 15:17:43 +0100).
299  * 1205: Copy & paste from two different instances of MP (GTK)
300    seem to fail (copying or pasting from other applications seem
301    to work) (Tue, 26 Feb 2008 07:28:50 +0100).
302  * 1253: Document the 'build' action (Thu, 13 Mar 2008 07:50:28 +0100).
303  * 1254: Sessions don't set the y position of files correctly
304    (Mon, 31 Mar 2008 17:30:18 +0200).
305  * 1255: Document change in 'grep' (Tue, 01 Jul 2008 08:05:11 +0200).
306  * 1256: Document change in 'build' (Tue, 01 Jul 2008 08:05:11 +0200).
307  * 1257: Document new builtin encoders (Tue, 01 Jul 2008 08:05:11 +0200).
308  * 1258: Document change in curses dialogs (Tue, 01 Jul 2008 08:05:11 +0200).
309  * 1262: Add text underlining to KDE4 (Sun, 31 Aug 2008 16:10:35 +0200).
310  * 1263: Add history to form() text fields in KDE4
311    (Mon, 01 Sep 2008 12:37:01 +0200).
312  * 1264: Avoid exiting if no xserver can be connected to in KDE4
313    (Tue, 02 Sep 2008 12:25:01 +0200).
314  * 1248: No localisation on Win32
315    (Tue, 07 Oct 2008 13:39:49 +0200).
316  * 1265: Fix localisation / gettext when KDE4 support is compiled
317    (Tue, 07 Oct 2008 13:39:36 +0200).
318  * 1267: Sometimes replace all hangs (Tue, 04 Nov 2008 09:19:50 +0100).
319  * 1269: Don't try to search inside the block if it's empty
320    (Wed, 21 Jan 2009 10:37:16 +0100).
321  * 1261: Apply Jeremy's function_list()
322    (Mon, 02 Feb 2009 16:10:34 +0100).
323  * 1272: Fix the `open_templates_file' action
324    (Wed, 04 Mar 2009 10:04:59 +0100).
325  * 1227: The length of an open combobox (at least under XP)
326    is ridiculous (Tue, 21 Apr 2009 12:17:22 +0200).
327  * 1194: Underlined text doesn't work under win32
328    (Tue, 21 Apr 2009 12:51:38 +0200).
329  * 1270: tools/po2mpsl.mpsl skips the last string
330    (Tue, 21 Apr 2009 17:47:42 +0200).
331  * 1274: Add interface to configure the repeated word detector
332    (Wed, 22 Apr 2009 08:52:43 +0200).
333  * 1273: mp.repeated_words() leaves the last max_dist words
334    unchecked (Tue, 28 Apr 2009 11:55:42 +0200).
335  * 1276: Fix win32 processing of Unicode characters
336    (Mon, 27 Jul 2009 16:52:20 +0200).
337  * 1277: Fix win32 window title (Tue, 28 Jul 2009 06:59:56 +0000).
338  * 1266: Add a new tab style, in which the next tab column is taken from
339    the previous line (Thu, 01 Oct 2009 10:48:37 +0200).
340  * 1268: Implement mp.timer() in the KDE4 driver
341    (Tue, 24 Nov 2009 12:50:32 +0100).
342  * 1166: Add a file open navigator to TUI
343    (Thu, 25 Nov 2010 10:33:52 +0100).
344  * 1259: Apply Jeremy's indent_block() (Wed, 31 Aug 2011 12:49:38 +0200).
345  * 1260: Apply Jeremy's outdent_block() (Wed, 31 Aug 2011 12:49:38 +0200).
346  * 1281: The multithreaded hex viewer crashes (seemingly only
347    in multicore machines)
348    (Option removed; Sat, 15 Oct 2011 09:24:16 +0200).
349  * 1283: Add Jeremy's smart-bol to the "Line options..." form
350    (Tue, 18 Oct 2011 14:42:26 +0200).
351  * 1288: Add an option to set the selected item in form lists
352    (Option already exists, you moron; Wed, 02 Nov 2011 19:49:13 +0000).
353  * 1289: Remember the last Makefile target (needs #1288 fixed)
354    (Thu, 03 Nov 2011 09:17:28 +0100).
355  * 1290: In the `section_list' action, select the item nearest to
356    current cursor position (needs #1288 fixed)
357    (Thu, 03 Nov 2011 10:05:17 +0100).
358  * 1291: In C and MPSL the help action should search for
359    mp_doccer-style documentation code
360    (Thu, 10 Nov 2011 13:34:55 +0100).
361  * 1292: Insert new documents after the current one
362    (Wed, 21 Dec 2011 16:09:50 +0100).
363  * 1170: The curses driver doesn't redraw when the terminal window
364    is resized (Wed, 11 Jan 2012 10:01:52 +0100).
365  * 1293: Add a mp.pipes() game (Fri, 20 Jan 2012 12:58:44 +0100).
366  * 1284: Add version control support (git, svn, etc)
367    (Tue, 14 Feb 2012 12:25:04 +0100).
368  * 1294: If the `keep_eol' config variable is not set, EOLs should
369    be forced (Mon, 27 Feb 2012 12:47:26 +0000).
370  * 1295: Delete backspace+char pairs when piping help
371    (Mon, 27 Feb 2012 15:43:29 +0100).
373 Email bugs to angel@triptico.com