comparison runtime/doc/todo.txt @ 20552:74e3316c1d5a

Update runtime files Commit: https://github.com/vim/vim/commit/388a5d4f20b4b64341d1604aa238cab85827b892 Author: Bram Moolenaar <Bram@vim.org> Date: Tue May 26 21:20:45 2020 +0200 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Tue, 26 May 2020 21:30:04 +0200
parents 7f88f6a3ed4c
children 661eb972cb22
comparison
equal deleted inserted replaced
20551:f1b23a9643fe 20552:74e3316c1d5a
1 *todo.txt* For Vim version 8.2. Last change: 2020 May 11 1 *todo.txt* For Vim version 8.2. Last change: 2020 May 26
2 2
3 3
4 VIM REFERENCE MANUAL by Bram Moolenaar 4 VIM REFERENCE MANUAL by Bram Moolenaar
5 5
6 6
36 browser use: https://github.com/vim/vim/issues/1234 36 browser use: https://github.com/vim/vim/issues/1234
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 Patch to test TERM signal. (Dominique, #6055) 41 Include src/po/vim.pot ?
42
43 Include src/po/vim.pot
44 42
45 Vim9 script: 43 Vim9 script:
46 Make closures work:
47 - call closure from not compiled context
48 - Create closure in a loop. Need to make a list of them.
49 Forward declarations:
50 - Cleanup when sourcing a script again: all script-local variables, imports
51 and functions are deleted.
52 - make sure only constants in declarations are executed, no function calls.
53 - Declare a variable at script level without an assignment.
54 let var: string
55 Error without a type or assignment
56 let var # error!
57 Making everything work: 44 Making everything work:
45 - possible memory leak in test_vim9_func through compile_nested_function.
46 - memory leaks in test_vim9_expr
47 - memory leaks in test_vim9_script
58 - Test that a script-local function in Vim9 script cannot be deleted. 48 - Test that a script-local function in Vim9 script cannot be deleted.
49 - Make "true" and "false" work in vim9script
59 - Test that a function defined inside a :def function is local to that 50 - Test that a function defined inside a :def function is local to that
60 function, g: functions can be defined and script-local functions cannot be 51 function, g: functions can be defined and script-local functions cannot be
61 defined. 52 defined.
53 - 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 54 - Check that when using a user function name without prefix, it does not find
63 a global function. Prefixing g: is required. 55 a global function. Prefixing g: is required.
64 - Compile: let [var, var] = expr 56 - Compile: let [var, var] = expr
65 - Compile: for [key, value] in items(map) 57 - Compile: for [key, value] in items(map)
66 - Assignment to dict doesn't work: 58 - Assignment to dict doesn't work:
73 - Compile builtin functions that access local variables: 65 - Compile builtin functions that access local variables:
74 islocked() 66 islocked()
75 - Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop 67 - Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
76 - Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd 68 - Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
77 - Expand `=expr` in :mkspell 69 - Expand `=expr` in :mkspell
70 - When evaluating constants for script variables, some functions could work:
71 has('asdf'), len('string')
78 - Support type for ":let"/":const" at script level for Vim9 script. 72 - Support type for ":let"/":const" at script level for Vim9 script.
79 (Ben Jackson, #5671) 73 (Ben Jackson, #5671)
80 Can we share the code from ex_let_const() between direct execution and 74 Can we share the code from ex_let_const() between direct execution and
81 compiling? 75 compiling?
82 - Disallow unlet for local/script/imported vars 76 - Disallow unlet for local/script/imported vars
83 - Make "++nr" work. 77 - Make "++nr" work.
78 - Make closures work:
79 - Create closure in a loop. Need to make a list of them.
84 - expandcmd() with `=expr` in filename uses legacy expression. 80 - expandcmd() with `=expr` in filename uses legacy expression.
85 - eval_expr() in ex_cexpr() 81 - eval_expr() in ex_cexpr()
86 - eval_expr() call in dbg_parsearg() and debuggy_find() 82 - eval_expr() call in dbg_parsearg() and debuggy_find()
87 - Make "true" and "false" work in vim9script 83 - has() is compiled as a constant, but some checks are dynamic.
84 Check for dynamic values, such as "gui_running".
88 New syntax and functionality: 85 New syntax and functionality:
89 Improve error checking: 86 Improve error checking:
90 - "echo Func()" is an error if Func() does not return anything. 87 - "echo Func()" is an error if Func() does not return anything.
91 Also: 88 Also:
92 - For range: make table of first ASCII character with flag to quickly check if 89 - For range: make table of first ASCII character with flag to quickly check if
111 - implement :type 108 - implement :type
112 - import type declaration? 109 - import type declaration?
113 - implement class 110 - implement class
114 - implement interface 111 - implement interface
115 - predefined class: Promise<T> 112 - predefined class: Promise<T>
113 - implement enum
116 - Make accessing varargs faster: arg[expr] 114 - Make accessing varargs faster: arg[expr]
117 EVAL expr 115 EVAL expr
118 LOADVARARG (varags idx) 116 LOADVARARG (varags idx)
119 Further improvements: 117 Further improvements:
120 - compile options that are an expression, e.g. "expr:" in 'spellsuggest', 118 - compile options that are an expression, e.g. "expr:" in 'spellsuggest',
123 - Make inline function work, to be used as a funcref: 121 - Make inline function work, to be used as a funcref:
124 let ref = def(arg: type): rettype 122 let ref = def(arg: type): rettype
125 body 123 body
126 enddef 124 enddef
127 - compile get_lambda_tv() in popup_add_timeout() 125 - compile get_lambda_tv() in popup_add_timeout()
126 - inline call to map() and filter()
128 - compile "skip" argument of searchpair() 127 - compile "skip" argument of searchpair()
129 - compile "expr" and "call" expression of a channel in channel_exe_cmd()? 128 - compile "expr" and "call" expression of a channel in channel_exe_cmd()?
130 129
131 Popup windows: 130 Popup windows:
131 - Can put focus in another window using API and "drop". (#6077)
132 - With some sequence get get hidden finished terminal buffer. (#5768) 132 - With some sequence get get hidden finished terminal buffer. (#5768)
133 Cannot close popup terminal (#5744) 133 Cannot close popup terminal (#5744)
134 Buffer can't be wiped, gets status "aF". (#5764) 134 Buffer can't be wiped, gets status "aF". (#5764)
135 Is buf->nwindows incorrect? 135 Is buf->nwindows incorrect?
136 - popup_clear() and popup_close() should close the terminal popup, and 136 - popup_clear() and popup_close() should close the terminal popup, and
199 Terminal emulator window: 199 Terminal emulator window:
200 - When started with ":terminal ++close" and the shell exits but there is a 200 - When started with ":terminal ++close" and the shell exits but there is a
201 background process, the window remains open, because the channel still 201 background process, the window remains open, because the channel still
202 exists (and output still shows). Perhaps close the window when an explicit 202 exists (and output still shows). Perhaps close the window when an explicit
203 ++close was used? (#5931) 203 ++close was used? (#5931)
204 - Using "CTRL-W :confirm quite" and selecting "yes" should work like ":quit!".
205 (Harm te Hennepe, #6129)
204 - When the job in the terminal doesn't use mouse events, let the scroll wheel 206 - When the job in the terminal doesn't use mouse events, let the scroll wheel
205 scroll the scrollback, like a terminal does at the shell prompt. #2490 207 scroll the scrollback, like a terminal does at the shell prompt. #2490
208 A bit like using CTRL-W N first.
209 Jump back like with "a" when any key is typed.
206 And use modeless selection. #2962 210 And use modeless selection. #2962
207 - Use CTRL-W CTRL-K to enter a digraph? #5371 211 - Use CTRL-W CTRL-K to enter a digraph? #5371
208 - When Vim runs in the terminal and changes the title, the statusline needs to 212 - When Vim runs in the terminal and changes the title, the statusline needs to
209 be redrawn. 213 be redrawn.
210 - GUI: When using ":set go+=!" a system() call causes the hit-enter prompt. 214 - GUI: When using ":set go+=!" a system() call causes the hit-enter prompt.
230 http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134 234 http://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/head:/main.c#L134
231 - When 'encoding' is not utf-8, or the job is using another encoding, setup 235 - When 'encoding' is not utf-8, or the job is using another encoding, setup
232 conversions. 236 conversions.
233 237
234 Error numbers available: 238 Error numbers available:
235 E453, E454, E460, E489, E491, E610, E611, E653, 239 E453, E454, E489, E610, E611, E653, E856, E857, E861, E900
236 E856, E857, E861, E900 240
241 Patch to fix that typval related code is spread out. (Yegappan Lakshmanan,
242 #6093)
237 243
238 Buffer autocommands are a bit inconsistent. Add a separate set of 244 Buffer autocommands are a bit inconsistent. Add a separate set of
239 autocommands for the buffer lifecycle: 245 autocommands for the buffer lifecycle:
240 BufIsCreated (after buffer ID exists) 246 BufIsCreated (after buffer ID exists)
241 BufIsLoaded (after buffer ID has content) 247 BufIsLoaded (after buffer ID has content)
252 Patch to explain use of "%" in :!. (David Briscoe, #5591) 258 Patch to explain use of "%" in :!. (David Briscoe, #5591)
253 259
254 Patch to improve Windows terminal support. (Nobuhiro Takasaki, #5546) 260 Patch to improve Windows terminal support. (Nobuhiro Takasaki, #5546)
255 Ready to include. 261 Ready to include.
256 262
263 Patch to improve use of Lua path. (Prabir Shrestha, #6098)
264
265 Patch to make exepath() work better on MS-Windows. (#6115)
266
257 Patch to add "-d" to xxd. (#5616) 267 Patch to add "-d" to xxd. (#5616)
258 268
259 Patch for the Haiku port: #5961 269 Patch for the Haiku port: #5961
260 270
261 Patch to add Turkish manual. (Emir Sarı, #5641) 271 Patch to add Turkish manual. (Emir Sarı, #5641)
269 (Timur Celik, #6011) 279 (Timur Celik, #6011)
270 280
271 Patch to support cindent option to handle pragmas differently. 281 Patch to support cindent option to handle pragmas differently.
272 (Max Rumpf, #5468) 282 (Max Rumpf, #5468)
273 283
284 Patch to add ":syn foldlevel" to use fold level further down the line.
285 (Brad King, 2016 Oct 19, update 2017 Jan 30, now in #6087)
286
274 File marks merging has duplicates since 7.4.1925. (Ingo Karkat, #5733) 287 File marks merging has duplicates since 7.4.1925. (Ingo Karkat, #5733)
275 288
276 Running test_gui and test_gui_init with Motif sometimes kills the window 289 "make test_gui" crashed in submenu_change(). Fix and remove workaround in
277 manager. Problem with Motif? Now test_gui crashes in submenu_change(). 290 add_pixmap_args().
278 Athena is OK. 291 Athena is OK.
279 Motif: Build on Ubuntu can't enter any text in dialog text fields. 292 Motif: Build on Ubuntu can't enter any text in dialog text fields.
293 Running test_gui and test_gui_init with Motif sometimes kills the window
294 manager. Problem with Motif?
280 295
281 :map output does not clear the reset of the command line. 296 :map output does not clear the reset of the command line.
282 (#5623, also see #5962) 297 (#5623, also see #5962)
283 298
284 Patch to properly break CJK lines: Anton Kochkov, #3875 299 Patch to properly break CJK lines: Anton Kochkov, #3875
285 Flag in 'formatoptions' is not used in the tests. 300 Flag in 'formatoptions' is not used in the tests.
286 301
287 Patch to add 'vtp' option. (#5344) 302 Patch to add 'vtp' option. (#5344)
288 Needs better docs. Is there a better name? 303 Needs better docs. Is there a better name?
289 304
305 Patch to add argument to trim() to only trim start or end of a string.
306 (Yegappan, #6126)
307
290 undo result wrong: Masato Nishihata, #4798 308 undo result wrong: Masato Nishihata, #4798
291 309
292 Patch for Template string: #4491. New pull: #4634 310 Patch for Template string: #4491. New pull: #4634
293 Ready to include? Review the code. 311 Ready to include? Review the code.
294 312
297 315
298 Patch to delete BeOS code. (#5817) Anyone who wants to keep it? 316 Patch to delete BeOS code. (#5817) Anyone who wants to keep it?
299 317
300 With bash ":make" does not set v:shell_error. Possible solution: set 318 With bash ":make" does not set v:shell_error. Possible solution: set
301 'shellpipe' to "2>&1| tee %s; exit ${PIPESTATUS[0]}" #5994 319 'shellpipe' to "2>&1| tee %s; exit ${PIPESTATUS[0]}" #5994
320
321 Using mode() when "/pat" is used in Visual mode returns "v" instead of "c",
322 which is not useful. Return "c/v" instead. And "c/o" when using "d/pat".
323 #6127
324
325 When 'fileignorecase' is set ":e testfile.c" works to edit TestFile.c, but
326 ":find testfile.c" does not ignore case.
327 Might be related to #6088.
302 328
303 When changing the crypt key the buffer should be considered modified. 329 When changing the crypt key the buffer should be considered modified.
304 Like when changing 'fileformat'. Save the old key in save_file_ff(). 330 Like when changing 'fileformat'. Save the old key in save_file_ff().
305 (Ninu-Ciprian Marginean) 331 (Ninu-Ciprian Marginean)
306 332
317 Patch to add function to return the text used in the quickfix window. 343 Patch to add function to return the text used in the quickfix window.
318 (Yegappan, #5465) 344 (Yegappan, #5465)
319 345
320 Patch to add readdirex() (Ken Takata, #5619) 346 Patch to add readdirex() (Ken Takata, #5619)
321 347
348 Wrong error when using local arglist. (Harm te Hennepe, #6133)
349
322 Request to support <Cmd> in mappings, similar to how Neovim does this. 350 Request to support <Cmd> in mappings, similar to how Neovim does this.
323 (Daniel Hahler, #4784) 351 (Daniel Hahler, #4784)
324 352
325 Undo puts cursor in wrong line after "cG<Esc>" undo. 353 Undo puts cursor in wrong line after "cG<Esc>" undo.
326 354
386 support combining characters. (Charles Campbell) Also #4687 414 support combining characters. (Charles Campbell) Also #4687
387 415
388 "--cleanFOO" does not result in an error. (#5537) 416 "--cleanFOO" does not result in an error. (#5537)
389 417
390 Add "t" action to settagstack(): truncate and add new entries. (#5405) 418 Add "t" action to settagstack(): truncate and add new entries. (#5405)
419
420 When 'relativenumber' is set the line just below a diff change doesn't get
421 updated. (#6138)
391 422
392 Result of synID() sometimes wrong in help files. (#5252) 423 Result of synID() sometimes wrong in help files. (#5252)
393 424
394 Status line is nut updated when splitting windows. (Marcin Szamotulski, #5496) 425 Status line is nut updated when splitting windows. (Marcin Szamotulski, #5496)
395 426
1327 +channel: 1358 +channel:
1328 - Add a in_cb, invoked when the write buffer has become empty. (Matteo Landi) 1359 - Add a in_cb, invoked when the write buffer has become empty. (Matteo Landi)
1329 - Add ch_readlines(): for a channel in NL mode, reads as many lines as are 1360 - Add ch_readlines(): for a channel in NL mode, reads as many lines as are
1330 available. Should be more efficient than looping over ch_read() with 1361 available. Should be more efficient than looping over ch_read() with
1331 ch_status() to check for more. 1362 ch_status() to check for more.
1363 - If buffer contents is changed in a callback, set w_redr_status so that it
1364 gets redrawn in redraw_after_callback(). #6120
1332 - Add a separate timeout for opening a socket. Currently it's fixed at 50 1365 - Add a separate timeout for opening a socket. Currently it's fixed at 50
1333 msec, which is too small for a remote connection. (tverniquet, #2130) 1366 msec, which is too small for a remote connection. (tverniquet, #2130)
1334 - Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026) 1367 - Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
1335 - Writing raw mode to a buffer should still handle NL characters as line 1368 - Writing raw mode to a buffer should still handle NL characters as line
1336 breaks. (Dmitry Zotikov, 2017 Aug 16) 1369 breaks. (Dmitry Zotikov, 2017 Aug 16)
1449 1482
1450 ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19) 1483 ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
1451 Also with latest version. 1484 Also with latest version.
1452 1485
1453 Cannot delete a file with square brackets with delete(). (#696) 1486 Cannot delete a file with square brackets with delete(). (#696)
1454
1455 Patch to add ":syn foldlevel" to use fold level further down the line.
1456 (Brad King, 2016 Oct 19, update 2017 Jan 30)
1457 1487
1458 Completion for input() does not expand environment variables. (chdiza, 2016 1488 Completion for input() does not expand environment variables. (chdiza, 2016
1459 Jul 25, #948) 1489 Jul 25, #948)
1460 1490
1461 Patch to add 'systemencoding', convert between 'encoding' and this for file 1491 Patch to add 'systemencoding', convert between 'encoding' and this for file