comparison runtime/doc/todo.txt @ 22328:75ff30a78189

Update runtime files. Commit: https://github.com/vim/vim/commit/1d59aa1fdfb191d9872ff87eb94652acd374b293 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 19 18:50:13 2020 +0200 Update runtime files.
author Bram Moolenaar <Bram@vim.org>
date Sat, 19 Sep 2020 19:00:04 +0200
parents d4c7b3e9cd17
children a3bb84cd0f59
comparison
equal deleted inserted replaced
22327:701d200ab63c 22328:75ff30a78189
1 *todo.txt* For Vim version 8.2. Last change: 2020 Sep 07 1 *todo.txt* For Vim version 8.2. Last change: 2020 Sep 19
2 2
3 3
4 VIM REFERENCE MANUAL by Bram Moolenaar 4 VIM REFERENCE MANUAL by Bram Moolenaar
5 5
6 6
38 *known-bugs* 38 *known-bugs*
39 -------------------- Known bugs and current work ----------------------- 39 -------------------- Known bugs and current work -----------------------
40 40
41 Why does Test_invalid_sid() not work in the GUI? 41 Why does Test_invalid_sid() not work in the GUI?
42 42
43 Add matchfuzzy() and matchfuzzypos() Yegappan, #6947
44 should be ready now
45
43 Making everything work: 46 Making everything work:
44 - Should :const work the same as in legacy script? 47 - Fix memory leak in test_vim9_func (through compile_nested_function and
45 Or should it work like in Typescript: only the variable is fixed, not the 48 get_lambda_tv())
46 value itself. 49 - Fix memory leaks in test_vim9_script
47 Then use ":const!" to also fix/lock the value?
48 Typescript uses "as const", which is weird.
49 Alternative: const var = <const>value
50 looks quite strange quite verbose
51 But can be used in several places:
52 SomeFunc(<const>[1, 2, 3])
53 In Vim this basically means "lock this value".
54 How about:
55 SomeFunc(<const>[[1], [2], [3]]) # are sub-lists immutable?
56 SomeFunc(<const>myList) # is myList mutable afterwards?
57
58 - Run the same tests in :def and Vim9 script, like in Test_expr7_not()
59 - :put with a "=" register argument doesn't work, need to find the expression
60 and compile it. (#6397)
61 - At the Vim9 script level, keep script variables local to the block they are 50 - At the Vim9 script level, keep script variables local to the block they are
62 declared in, like in Javascript (using :let). 51 declared in, like in Javascript (using :let).
63 -> Need to remember what variables were declared and delete them when 52 -> Need to remember what variables were declared and delete them when
64 leaving the block. 53 leaving the block.
65 -> if a function is defined it may need to keep the block-locals 54 -> if a function is defined it may need to keep the block-locals
78 assert_true('did_catch') 67 assert_true('did_catch')
79 Add a new command, 68 Add a new command,
80 assertfail 69 assertfail
81 unknown 70 unknown
82 endassertfail E99:.*unknown 71 endassertfail E99:.*unknown
72 - Run the same tests in :def and Vim9 script, like in Test_expr7_not()
83 - In autocmd: use legacy syntax, not whatever the current script uses? 73 - In autocmd: use legacy syntax, not whatever the current script uses?
84 - need to check type when a declaration specifies a type: #6507 74 - need to check type when a declaration specifies a type: #6507
85 let nr: number = 'asdf' 75 let nr: number = 'asdf'
86 - Make sure that in vim9script a function call without namespace only finds 76 - Make sure that in vim9script a function call without namespace only finds
87 the script-local function, not a global one. 77 the script-local function, not a global one.
88 - Make sure that where a callback is expected a function can be used (without 78 - Make sure that where a callback is expected a function can be used (without
89 quotes). E.g. sort() and map(). Also at the script level. 79 quotes). E.g. sort() and map(). Also at the script level.
80 - assignment to more complex lval: list[1][2][3] = 8
81 - ":put" with ISN_PUT does not handle range correctly, e.g. ":$-2put".
82 Add command to parse range at runtime?
90 - Make map() give an error if the resulting type is wrong. 83 - Make map() give an error if the resulting type is wrong.
91 Add mapnew() to create a new List/Dict for the result, which can have a 84 Add mapnew() to create a new List/Dict for the result, which can have a
92 different value type. 85 different value type.
93 - When defining an :autocmd or :command, how to specify using Vim9 syntax? 86 - When defining an :autocmd or :command, how to specify using Vim9 syntax?
94 - always do this when defined in a Vim9 script 87 - always do this when defined in a Vim9 script
106 - Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd 99 - Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
107 - Expand `=expr` in :mkspell 100 - Expand `=expr` in :mkspell
108 - Test that a function defined inside a :def function is local to that 101 - Test that a function defined inside a :def function is local to that
109 function, g: functions can be defined and script-local functions cannot be 102 function, g: functions can be defined and script-local functions cannot be
110 defined. 103 defined.
104 - Does this work already: can use func as reference:
105 def SomeFunc() ...
106 map(list, SomeFunc)
111 - Support passing v:none to use the default argument value. (#6504) 107 - Support passing v:none to use the default argument value. (#6504)
112 - make 0 == 'string' fail on the script level, like inside :def. 108 - make 0 == 'string' fail on the script level, like inside :def.
113 - Check that when using a user function name without prefix, it does not find 109 - Check that when using a user function name without prefix, it does not find
114 a global function. Prefixing g: is required. 110 a global function. Prefixing g: is required.
115 - Compile: for [key, value] in items(map) 111 - Compile: for [key, value] in items(map)
121 - Using ".." at script level doesn't convert arguments to a string. 117 - Using ".." at script level doesn't convert arguments to a string.
122 - Compile replacement of :s command: s/pat/\=expr/ 118 - Compile replacement of :s command: s/pat/\=expr/
123 - Compile redir to local variable: var_redir_start(). 119 - Compile redir to local variable: var_redir_start().
124 - Compile builtin functions that access local variables: 120 - Compile builtin functions that access local variables:
125 islocked() 121 islocked()
126 - possible memory leak in test_vim9_func through compile_nested_function.
127 - memory leaks in test_vim9_expr
128 - memory leaks in test_vim9_script
129 - memory leaks in test_vim9_cmd
130 - When evaluating constants for script variables, some functions could work: 122 - When evaluating constants for script variables, some functions could work:
131 has('asdf'), len('string') 123 has('asdf'), len('string')
132 - Implement "as Name" in "import Item as Name from ..." 124 - Implement "as Name" in "import Item as Name from ..."
133 - Disallow unlet for local/script/imported vars 125 - Disallow unlet for local/script/imported vars
134 - Make "++nr" work. 126 - Make "++nr" work.
149 - better implementation for partial and tests for that. 141 - better implementation for partial and tests for that.
150 - Make "g:imported = Export.exported" work in Vim9 script. 142 - Make "g:imported = Export.exported" work in Vim9 script.
151 - Make Foo.Bar() work to call the dict function. (#5676) 143 - Make Foo.Bar() work to call the dict function. (#5676)
152 - Error in any command in "vim9script" aborts sourcing. 144 - Error in any command in "vim9script" aborts sourcing.
153 - Find a way to test expressions in legacy and Vim9 script without duplication 145 - Find a way to test expressions in legacy and Vim9 script without duplication
154 - Fix memory leaks for test_vim9_disassemble, test_vim9_expr, test_vim9_script
155 - Test each level of expressions properly, with type checking 146 - Test each level of expressions properly, with type checking
156 - Test try/catch and throw better, also nested. 147 - Test try/catch and throw better, also nested.
157 Test return inside try/finally jumps to finally and then returns. 148 Test return inside try/finally jumps to finally and then returns.
158 - can use func as reference:
159 def SomeFunc() ...
160 map(list, SomeFunc)
161 - Test: Function declared inside a :def function is local, disappears at the 149 - Test: Function declared inside a :def function is local, disappears at the
162 end of the function. Unless g: is used, just like with variables. 150 end of the function. Unless g: is used, just like with variables.
163 - implement :type 151 - implement :type
164 - import type declaration? 152 - import type declaration?
165 - implement class 153 - Future work: See |vim9-classes|
166 - implement interface
167 - predefined class: Promise<T>
168 - implement enum 154 - implement enum
169 - Make accessing varargs faster: arg[expr] 155 - Make accessing varargs faster: arg[expr]
170 EVAL expr 156 EVAL expr
171 LOADVARARG (varags idx) 157 LOADVARARG (varags idx)
158 - Make debugging work - at least per function. Need to recompile a function
159 to step through it line-by-line? Evaluate the stack and variables on the
160 stack?
161 - Make profiling work - Add ISN_PROFILE instructions after every line?
162 - List commands when 'verbose' is set or :verbose is used.
172 Further improvements: 163 Further improvements:
173 - compile options that are an expression, e.g. "expr:" in 'spellsuggest', 164 - compile options that are an expression, e.g. "expr:" in 'spellsuggest',
174 'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert', 165 'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
175 'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'. 166 'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
176 - Make inline function work, to be used as a funcref: 167 - Make inline function work, to be used as a funcref:
290 conversions. 281 conversions.
291 282
292 Error numbers available: E653 283 Error numbers available: E653
293 284
294 Patch to implement the vimtutor with a plugin: #6414 285 Patch to implement the vimtutor with a plugin: #6414
295 Was originally writtten by Felipe Morales. 286 Was originally written by Felipe Morales.
296 287
297 Remove SPACE_IN_FILENAME ? It is only used for completion. 288 Remove SPACE_IN_FILENAME ? It is only used for completion.
298 289
299 Patch to use collation based sorting. (Christian Brabandt, #6229) 290 Patch to use collation based sorting. (Christian Brabandt, #6229)
300 291
301 Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work 292 Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work
302 with 'termguicolors'. #1740 293 with 'termguicolors'. #1740
303 294
304 Patch for blockwise paste reporting changes: #6660. 295 Patch for blockwise paste reporting changes: #6660.
296
297 Expanding <mods> should put the tab number from cmdmod.tab before "tab".
298 Any way to convert "$" back by using a special value? (#6901)
305 299
306 Can we detect true color support? https://gist.github.com/XVilka/8346728 300 Can we detect true color support? https://gist.github.com/XVilka/8346728
307 Try setting a color then request the current color, like using t_u7. 301 Try setting a color then request the current color, like using t_u7.
308 302
309 Check out PR #543 (Roland Puntaier). 303 Check out PR #543 (Roland Puntaier).
395 389
396 When 'fileignorecase' is set ":e testfile.c" works to edit TestFile.c, but 390 When 'fileignorecase' is set ":e testfile.c" works to edit TestFile.c, but
397 ":find testfile.c" does not ignore case. 391 ":find testfile.c" does not ignore case.
398 Might be related to #6088. 392 Might be related to #6088.
399 393
394 Error for reverse range when using :vimgrep in file "[id-01] file.txt".
395 (#6919)
396
400 When changing the crypt key the buffer should be considered modified. 397 When changing the crypt key the buffer should be considered modified.
401 Like when changing 'fileformat'. Save the old key in save_file_ff(). 398 Like when changing 'fileformat'. Save the old key in save_file_ff().
402 (Ninu-Ciprian Marginean) 399 (Ninu-Ciprian Marginean)
403 400
404 Strange sequence of BufWipeout and BufNew events while doing omni-complete. 401 Strange sequence of BufWipeout and BufNew events while doing omni-complete.
512 Better: use the "z" prefix. or ]t) and [t(. 509 Better: use the "z" prefix. or ]t) and [t(.
513 510
514 Modeless selection doesn't work in gvim. (#4783) 511 Modeless selection doesn't work in gvim. (#4783)
515 Caused by patch 8.1.1534. 512 Caused by patch 8.1.1534.
516 513
517 Visual highlight not removed when 'dipslay' is "lastline" and line doesn't 514 Visual highlight not removed when 'display' is "lastline" and line doesn't
518 fit. (Kevin Lawler, #4457) 515 fit. (Kevin Lawler, #4457)
519 516
520 Current position in the changelist should be local to the buffer. (#2173) 517 Current position in the changelist should be local to the buffer. (#2173)
521 518
522 Does not build with MinGW out of the box: 519 Does not build with MinGW out of the box: