Mercurial > vim
comparison runtime/doc/todo.txt @ 21499:3a1ed539ae2a
Update runtime files.
Commit: https://github.com/vim/vim/commit/2547aa930b59f5e2bcb70e81d5a57ed461e59b4f
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jul 26 17:00:44 2020 +0200
Update runtime files.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 26 Jul 2020 17:15:05 +0200 |
parents | 21fb2a3ad3ca |
children | 1b345fb68ae3 |
comparison
equal
deleted
inserted
replaced
21498:134699e667ee | 21499:3a1ed539ae2a |
---|---|
1 *todo.txt* For Vim version 8.2. Last change: 2020 Jul 10 | 1 *todo.txt* For Vim version 8.2. Last change: 2020 Jul 26 |
2 | 2 |
3 | 3 |
4 VIM REFERENCE MANUAL by Bram Moolenaar | 4 VIM REFERENCE MANUAL by Bram Moolenaar |
5 | 5 |
6 | 6 |
37 (replace 1234 with the issue/pull number) | 37 (replace 1234 with the issue/pull number) |
38 *known-bugs* | 38 *known-bugs* |
39 -------------------- Known bugs and current work ----------------------- | 39 -------------------- Known bugs and current work ----------------------- |
40 | 40 |
41 Making everything work: | 41 Making everything work: |
42 - in Vim9 script expressions are evaluated differently, not using a type. | 42 - more items in https://github.com/vim/vim/issues/6507 |
43 e.g. "'' == 0" does not give an error and evaluates to true. | 43 - More "goto failed" with check for trylevel. |
44 - cannot put # comment after assert() in :def function | 44 - memory leak in test_vim9_script |
45 - more return types depending on the first argument, like sort(). | |
46 - Check that when sourcing a Vim9 script, only the global items can be used. | 45 - Check that when sourcing a Vim9 script, only the global items can be used. |
47 - :put with a "=" register argument doesn't work, need to find the expression | 46 - :put with a "=" register argument doesn't work, need to find the expression |
48 and compile it. (#6397) | 47 and compile it. (#6397) |
49 - should "'text'->method()" work? 't is a range, but 'text isn't. | 48 - At the script level, keep script variables local to the block they are |
49 declared in? Need to remember what variables were declared and delete them | |
50 when leaving the block. | |
51 - Implement { } block at the script level. | |
52 - need to check type when a declaration specifies a type: #6507 | |
53 let nr: number = 'asdf' | |
54 - Make map() give an error if the resulting type is wrong. | |
55 Add mapnew() to create a new List/Dict for the result, which can have a | |
56 different value type. | |
57 - Implement "export {one, two three}". | |
58 - ISN_CHECKTYPE could use check_argtype() | |
50 - Slice of list: [1, 2, 3][1:2]. | 59 - Slice of list: [1, 2, 3][1:2]. |
60 - give error for variable name: | |
61 let p = function('NoSuchFunc') | |
51 - Give runtime error if function argument is wrong. | 62 - Give runtime error if function argument is wrong. |
52 def Increment(nr: number) | 63 def Increment(nr: number) |
53 range(3)->Increment() | 64 range(3)->Increment() |
54 - Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop | 65 - Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop |
55 - Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd | 66 - Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd |
56 - Expand `=expr` in :mkspell | 67 - Expand `=expr` in :mkspell |
57 - Make "true" and "false" work in vim9script | |
58 - Test that a function defined inside a :def function is local to that | 68 - Test that a function defined inside a :def function is local to that |
59 function, g: functions can be defined and script-local functions cannot be | 69 function, g: functions can be defined and script-local functions cannot be |
60 defined. | 70 defined. |
71 - Support passing v:none to use the default argument value. (#6504) | |
61 - make 0 == 'string' fail on the script level, like inside :def. | 72 - make 0 == 'string' fail on the script level, like inside :def. |
62 - Check that when using a user function name without prefix, it does not find | 73 - Check that when using a user function name without prefix, it does not find |
63 a global function. Prefixing g: is required. | 74 a global function. Prefixing g: is required. |
64 - Compile: for [key, value] in items(map) | 75 - Compile: for [key, value] in items(map) |
65 - Assignment to dict doesn't work: | 76 - Assignment to dict doesn't work: |
75 - memory leaks in test_vim9_expr | 86 - memory leaks in test_vim9_expr |
76 - memory leaks in test_vim9_script | 87 - memory leaks in test_vim9_script |
77 - memory leaks in test_vim9_cmd | 88 - memory leaks in test_vim9_cmd |
78 - When evaluating constants for script variables, some functions could work: | 89 - When evaluating constants for script variables, some functions could work: |
79 has('asdf'), len('string') | 90 has('asdf'), len('string') |
80 - Support type for ":let"/":const" at script level for Vim9 script. | |
81 (Ben Jackson, #5671) | |
82 Can we share the code from ex_let_const() between direct execution and | |
83 compiling? | |
84 - Implement "as Name" in "import Item as Name from ..." | 91 - Implement "as Name" in "import Item as Name from ..." |
85 - Disallow unlet for local/script/imported vars | 92 - Disallow unlet for local/script/imported vars |
86 - Make "++nr" work. | 93 - Make "++nr" work. |
87 - Make closures work: | 94 - Make closures work: |
88 - Create closure in a loop. Need to make a list of them. | 95 - Create closure in a loop. Need to make a list of them. |
89 - expandcmd() with `=expr` in filename uses legacy expression. | 96 - expandcmd() with `=expr` in filename uses legacy expression. |
90 - eval_expr() in ex_cexpr() | 97 - eval_expr() in ex_cexpr() |
91 - eval_expr() call in dbg_parsearg() and debuggy_find() | 98 - eval_expr() call in dbg_parsearg() and debuggy_find() |
92 - has() is compiled as a constant, but some checks are dynamic. | 99 - has() is compiled as a constant, but some checks are dynamic. |
93 Check for dynamic values, such as "gui_running". | 100 Check for dynamic values, such as "gui_running". |
101 - Implement command modifiers, such as "silent". (#6530) | |
94 New syntax and functionality: | 102 New syntax and functionality: |
95 Improve error checking: | 103 Improve error checking: |
96 - "echo Func()" is an error if Func() does not return anything. | 104 - "echo Func()" is an error if Func() does not return anything. |
97 Test: | 105 Test: |
98 - Using a Vim9 autoload script (functions must be global). | 106 - Using a Vim9 autoload script (functions must be global). |
137 - compile "skip" argument of searchpair() | 145 - compile "skip" argument of searchpair() |
138 - compile "expr" and "call" expression of a channel in channel_exe_cmd()? | 146 - compile "expr" and "call" expression of a channel in channel_exe_cmd()? |
139 | 147 |
140 Popup windows: | 148 Popup windows: |
141 - Cursor not updated before a redraw, making it jump. (#5943) | 149 - Cursor not updated before a redraw, making it jump. (#5943) |
150 - Add a termcap entry for changing the cursor when it goes under the popup and | |
151 back. like t_SI and t_EI (t_SU and t_EU, where "U" means under?) | |
142 - With terminal in popup, allow for popup_hide() to temporarily hide it.? | 152 - With terminal in popup, allow for popup_hide() to temporarily hide it.? |
143 - Fire some autocommand event after a new popup window was created and | 153 - Fire some autocommand event after a new popup window was created and |
144 positioned? PopupNew? Could be used to set some options or move it out of | 154 positioned? PopupNew? Could be used to set some options or move it out of |
145 the way. (#5737) | 155 the way. (#5737) |
146 However, it may also cause trouble, changing the popup of another plugin. | 156 However, it may also cause trouble, changing the popup of another plugin. |
157 - Add a way to use popup_menu() synchronously: instead of invoking the | |
158 callback, return the choice. (Ben Jackson, #6534) | |
147 - Use popup (or popup menu) for command line completion | 159 - Use popup (or popup menu) for command line completion |
148 - When using a popup for the info of a completion menu, and there is not | 160 - When using a popup for the info of a completion menu, and there is not |
149 enough space, let the popup overlap with the menu. (#4544) | 161 enough space, let the popup overlap with the menu. (#4544) |
150 - Implement flip option. | 162 - Implement flip option. |
151 - Make redrawing more efficient and avoid flicker: | 163 - Make redrawing more efficient and avoid flicker: |
197 More complete solution would actually run Vim in a Terminal and control it | 209 More complete solution would actually run Vim in a Terminal and control it |
198 with another Vim instance. | 210 with another Vim instance. |
199 | 211 |
200 Terminal emulator window: | 212 Terminal emulator window: |
201 - No support for underline color, t_8u. | 213 - No support for underline color, t_8u. |
214 - When in terminal-Normal mode when the job finishes, the cursor jumps to the | |
215 end but the window is not updated. This only happens when typing "a". | |
216 :term bash -c "for V in {0..5}; do echo $V; sleep 1; done" | |
202 - When started with ":terminal ++close" and the shell exits but there is a | 217 - When started with ":terminal ++close" and the shell exits but there is a |
203 background process, the window remains open, because the channel still | 218 background process, the window remains open, because the channel still |
204 exists (and output still shows). Perhaps close the window when an explicit | 219 exists (and output still shows). Perhaps close the window when an explicit |
205 ++close was used? (#5931) | 220 ++close was used? (#5931) |
206 - Using "CTRL-W :confirm quite" and selecting "yes" should work like ":quit!". | 221 - Using "CTRL-W :confirm quite" and selecting "yes" should work like ":quit!". |
236 http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134 | 251 http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134 |
237 - When 'encoding' is not utf-8, or the job is using another encoding, setup | 252 - When 'encoding' is not utf-8, or the job is using another encoding, setup |
238 conversions. | 253 conversions. |
239 | 254 |
240 Error numbers available: | 255 Error numbers available: |
241 E489, E610, E611, E653, E856 | 256 E610, E611, E653 |
242 | 257 |
243 Remove SPACE_IN_FILENAME ? It is only used for completion. | 258 Remove SPACE_IN_FILENAME ? It is only used for completion. |
244 | 259 |
245 Patch to use collaction based sorting. (Christian Brabandt, #6229) | 260 Patch to use collaction based sorting. (Christian Brabandt, #6229) |
246 | 261 |
267 BufIsUnloaded (after buffer ID no longer has) | 282 BufIsUnloaded (after buffer ID no longer has) |
268 BufIsWiped (after buffer ID was wiped) | 283 BufIsWiped (after buffer ID was wiped) |
269 BufIsRenamed (after buffer ID gets another name) | 284 BufIsRenamed (after buffer ID gets another name) |
270 The buffer list and windows are locked, no changes possible | 285 The buffer list and windows are locked, no changes possible |
271 | 286 |
272 How about removing Atari MiNT support? | 287 Make it possible to map (console and GUI): #6457 |
273 src/Make_mint.mak, src/os_mint.h, matches with __MINT__ | 288 <C-[> 0x27 or is this <Esc> ? |
289 <C-\> 0x28 | |
290 <C-]> 0x29 | |
291 <C-^> 0x30 | |
292 <C-_> 0x31 | |
293 | |
294 Patch for Template string: #4634 | |
295 Have another look at the implementation. | |
274 | 296 |
275 Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr" | 297 Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr" |
276 replace this: | 298 replace this: |
277 let left = GetLeftFunc() | 299 let left = GetLeftFunc() |
278 let right = GetRightFunc() | 300 let right = GetRightFunc() |
279 let res = left < right ? lower : left == right ? equal : upper | 301 let res = left < right ? lower : left == right ? equal : upper |
280 by: | 302 by: |
281 let res = GetLeftFunc() <=> GetRightFunc() ?< lower ?= equal ?> upper | 303 let res = GetLeftFunc() <=> GetRightFunc() ?< lower ?= equal ?> upper |
282 Patch to make :q work with local arglist. (Christian Brabandt, #6286) | 304 Patch to make :q work with local arglist. (Christian Brabandt, #6286) |
305 | |
306 Lua: updating wrong buffer when using newly created, unloaded buffer. | |
307 (#6539) | |
308 | |
309 When "+ register is set then "" points to it. If another Vim grabs the "+ | |
310 register, then "" doesn't contain anything. Make it still follow "+. | |
311 (#6435) | |
283 | 312 |
284 Patch to fix drawing error with DirectX. (James Grant, #5688) | 313 Patch to fix drawing error with DirectX. (James Grant, #5688) |
285 Causes flicker on resizing. Workaround from Ken Takata. | 314 Causes flicker on resizing. Workaround from Ken Takata. |
286 How about only setting the attribute when part of the Vim window is offscreen? | 315 How about only setting the attribute when part of the Vim window is offscreen? |
287 | 316 |
345 | 374 |
346 Test loose_clipboard() by selecting text before suspending. | 375 Test loose_clipboard() by selecting text before suspending. |
347 | 376 |
348 Undo puts cursor in wrong line after "cG<Esc>" undo. | 377 Undo puts cursor in wrong line after "cG<Esc>" undo. |
349 | 378 |
379 Implement completion for "breakadd". Should expand the second argument, e.g. | |
380 "func", and then function names after ":breakadd func". Including | |
381 script-local functions. | |
382 | |
350 :unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019 | 383 :unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019 |
351 Dec 19) | 384 Dec 19) |
352 | 385 |
353 Patch to add an option to enable/disable VTP. (Nobuhiro Takasaki, #5344) | 386 Patch to add an option to enable/disable VTP. (Nobuhiro Takasaki, #5344) |
354 Should have three values: empty, "off", "on". Name it 'winterm'? | 387 Should have three values: empty, "off", "on". Name it 'winterm'? |
383 #5771) | 416 #5771) |
384 | 417 |
385 ":bnext" in a help buffer is supposed to go to the next help buffer, but it | 418 ":bnext" in a help buffer is supposed to go to the next help buffer, but it |
386 goes to any buffer, and then :bnext skips help buffers, since they are | 419 goes to any buffer, and then :bnext skips help buffers, since they are |
387 unlisted. (#4478) | 420 unlisted. (#4478) |
388 | |
389 Patch for Template string: #4634 | |
390 Copies the text twice, not very efficient. Requires a separate implementation | |
391 for Vim9 script, compiling the string parts and expressions. | |
392 | 421 |
393 Statusline highlighting error, off by one. (#5599) | 422 Statusline highlighting error, off by one. (#5599) |
394 | 423 |
395 ":find" with 'path' set to "data*" does not find files, while completion does | 424 ":find" with 'path' set to "data*" does not find files, while completion does |
396 find them. (Max Kukartsev, #6218) | 425 find them. (Max Kukartsev, #6218) |
1925 Add a check for b:no_match_paren in Highlight_matching_Pair() (Marcin | 1954 Add a check for b:no_match_paren in Highlight_matching_Pair() (Marcin |
1926 Szamotulski, 2012 Nov 8) | 1955 Szamotulski, 2012 Nov 8) |
1927 | 1956 |
1928 Session file creation: 'autochdir' causes trouble. Keep it off until after | 1957 Session file creation: 'autochdir' causes trouble. Keep it off until after |
1929 loading all files. | 1958 loading all files. |
1930 | |
1931 MS-Windows resizing problems: | |
1932 - Windows window on screen positioning: Patch by Yukihiro Nakadaira, 2012 Jun | |
1933 20. Uses getWindowRect() instead of GetWindowPlacement() | |
1934 - Win32: When the taskbar is at the top of the screen creating the tabbar | |
1935 causes the window to move unnecessarily. (William E. Skeith III, 2012 Jan | |
1936 12) Patch: 2012 Jan 13 Needs more work (2012 Feb 2) | |
1937 | 1959 |
1938 'iminsert' global value set when using ":setlocal iminsert"? (Wu, 2012 Jun 23) | 1960 'iminsert' global value set when using ":setlocal iminsert"? (Wu, 2012 Jun 23) |
1939 | 1961 |
1940 Patch to append regexp to tag commands to make it possible to select one out | 1962 Patch to append regexp to tag commands to make it possible to select one out |
1941 of many matches. (Cody Cutler, 2013 Mar 28) | 1963 of many matches. (Cody Cutler, 2013 Mar 28) |