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)