Update runtime files
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.2. Last change: 2020 Apr 20
|
||||
*todo.txt* For Vim version 8.2. Last change: 2020 Apr 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -39,38 +39,59 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Vim9 script:
|
||||
more tests for # comments:
|
||||
check all calls to ends_excmd() and test that space before # is needed.
|
||||
next: ex_findpat()
|
||||
func and partial types:
|
||||
- Calling unknown user function does not give proper error message:
|
||||
assert_equal('123text', RefDef2Arg()) typo for "RetDef2Arg"
|
||||
- "func" inside "vim9script" doesn't work? (Ben Jackson, #5670)
|
||||
- :func inside vim9script must still use a:arg
|
||||
- define function and create funcref in one step:
|
||||
let ref = def(arg: type): rettype
|
||||
body
|
||||
enddef
|
||||
Big changes, need design:
|
||||
- Make closures work:
|
||||
Grab the part of the stack that has the arguments and local vars.
|
||||
Pass a pointer and offset to the closure where this stack fragment is (frame
|
||||
pointer).
|
||||
When a closure disappears at end of the function - nothing to do.
|
||||
When a closure remains at end of the function: copy frame, attach to closure.
|
||||
- At the vim9 script level: Allow using a function that is defined later.
|
||||
Requires compiling functions only when the whole script has been sourced.
|
||||
Like Javascript "hoisting", but only at the script level:
|
||||
1. Discovery phase: Read the file to find all functions, variable
|
||||
declarations and imports If a variable has a constant expression we get
|
||||
the type, otherwise it will be "any". Follow imports recursively.
|
||||
2. Compilation phase: compile :def function bodies, using declared types
|
||||
3. Execution phase: Execute imports when encountered. (skip over functions)
|
||||
- When sourcing a script again, also delete script-local variables.
|
||||
Making everything work:
|
||||
- Test that a script-local function in Vim9 script cannot be deleted.
|
||||
- Test that a function defined inside a :def function is local to that
|
||||
function, g: functions can be defined and script-local functions cannot be
|
||||
defined.
|
||||
Also:
|
||||
- When wildcards are expanded, find `=expr` and evaluate it before invoking
|
||||
the command. For example: :edit `=filename`
|
||||
- Check that when using a user function name without prefix, it does not find
|
||||
a global function. Prefixing g: is required.
|
||||
- Compile let [var, var] = expr
|
||||
- Compile replacement of :s command: s/pat/\=expr/
|
||||
- Compile redir to local variable: var_redir_start().
|
||||
- Compile builtin functions that access local variables:
|
||||
islocked()
|
||||
- Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
|
||||
- Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
|
||||
- Expand `=expr` in :mkspell
|
||||
- Support type for ":let"/":const" at script level for Vim9 script.
|
||||
(Ben Jackson, #5671)
|
||||
Can we share the code from ex_let_const() between direct execution and
|
||||
compiling?
|
||||
- Disallow unlet for local/script/imported vars
|
||||
- Make "++nr" work.
|
||||
- expandcmd() with `=expr` in filename uses legacy expression.
|
||||
- eval_expr() in ex_cexpr()
|
||||
- eval_expr() call in dbg_parsearg() and debuggy_find()
|
||||
New syntax and functionality:
|
||||
- define function and create funcref in one step:
|
||||
let ref = def(arg: type): rettype
|
||||
body
|
||||
enddef
|
||||
Improve error checking:
|
||||
- "echo Func()" is an error if Func() does not return anything.
|
||||
- Check all Ex commands, give error if they use an expression and should be
|
||||
compiled.
|
||||
Also:
|
||||
- For range: make table of first ASCII character with flag to quickly check if
|
||||
it can be a Vim9 command. E.g. "+" can, but "." can't.
|
||||
- better implementation for partial and tests for that.
|
||||
- Make "g:imported = Export.exported" work in Vim9 script.
|
||||
- Make Foo.Bar() work to call the dict function. (#5676)
|
||||
- Support type for ":let"/":const" at script level for Vim9 script.
|
||||
(Ben Jackson, #5671)
|
||||
Can we share the code for :let between direct execution and compiling?
|
||||
- Disallow unlet for local/script/imported vars
|
||||
- Make "++nr" work.
|
||||
- Check that import in legacy script works and puts item in s:
|
||||
- Error in any command in "vim9script" aborts sourcing.
|
||||
- Find a way to test expressions in legacy and Vim9 script without duplication
|
||||
@ -93,6 +114,13 @@ Also:
|
||||
- Make accessing varargs faster: arg[expr]
|
||||
EVAL expr
|
||||
LOADVARARG (varags idx)
|
||||
Further improvements:
|
||||
- compile options that are an expression, e.g. "expr:" in 'spellsuggest',
|
||||
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
|
||||
'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
|
||||
- compile get_lambda_tv() in popup_add_timeout()
|
||||
- compile "skip" argument of searchpair()
|
||||
- compile "expr" and "call" expression of a channel in channel_exe_cmd()?
|
||||
|
||||
Popup windows:
|
||||
- With some sequence get get hidden finished terminal buffer. (#5768)
|
||||
@ -198,7 +226,7 @@ Terminal emulator window:
|
||||
conversions.
|
||||
|
||||
Error numbers available:
|
||||
E453, E454, E460, E489, E491, E565, E578, E610, E611, E653,
|
||||
E453, E454, E460, E489, E491, E610, E611, E653,
|
||||
E856, E857, E861, E900
|
||||
|
||||
Buffer autocommands are a bit inconsistent. Add a separate set of
|
||||
@ -222,8 +250,13 @@ Ready to include.
|
||||
|
||||
Patch to add "-d" to xxd. (#5616)
|
||||
|
||||
Patch for the Haiku port: #5961
|
||||
|
||||
Patch to add Turkish manual. (Emir Sarı, #5641)
|
||||
|
||||
Patch to support different color for undercurl in cterm.
|
||||
(Timur Celik, #6011)
|
||||
|
||||
Patch to support cindent option to handle pragmas differently.
|
||||
(Max Rumpf, #5468)
|
||||
|
||||
@ -234,6 +267,9 @@ manager. Problem with Motif? Now test_gui crashes in submenu_change().
|
||||
Athena is OK.
|
||||
Motif: Build on Ubuntu can't enter any text in dialog text fields.
|
||||
|
||||
:map output does not clear the reset of the command line.
|
||||
(#5623, also see #5962)
|
||||
|
||||
Patch to properly break CJK lines: Anton Kochkov, #3875
|
||||
Flag in 'formatoptions' is not used in the tests.
|
||||
|
||||
@ -248,7 +284,10 @@ Ready to include? Review the code.
|
||||
When 'lazyredraw' is set sometimes the title is not updated.
|
||||
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
|
||||
|
||||
Patch to delete BeOS code. (#5817)
|
||||
Patch to delete BeOS code. (#5817) Anyone who wants to keep it?
|
||||
|
||||
With bash ":make" does not set v:shell_error. Possible solution: set
|
||||
'shellpipe' to "2>&1| tee %s; exit ${PIPESTATUS[0]}" #5994
|
||||
|
||||
Strange sequence of BufWipeout and BufNew events while doing omni-complete.
|
||||
(Paul Jolly, #5656)
|
||||
@ -317,6 +356,8 @@ unlisted. (#4478)
|
||||
|
||||
Patch to include reduce() function. (#5481)
|
||||
|
||||
When SIGTSTP is ignored, don't let CTRL-Z suspend Vim? (Kurtis Rader, #5990)
|
||||
|
||||
Statusline highlighting error, off by one. (#5599)
|
||||
|
||||
Enable 'termbidi' if $VTE_VERSION >= 5703 ?
|
||||
@ -331,11 +372,6 @@ Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
|
||||
The :syntax cchar value can only be a single character. It would be useful to
|
||||
support combining characters. (Charles Campbell) Also #4687
|
||||
|
||||
Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
||||
It can replace the BeOS code, which is likely not used anymore.
|
||||
Now on github: #1856. Updated Oct 2017
|
||||
Got permission to include this under the Vim license.
|
||||
|
||||
"--cleanFOO" does not result in an error. (#5537)
|
||||
|
||||
Add "t" action to settagstack(): truncate and add new entries. (#5405)
|
||||
|
||||
Reference in New Issue
Block a user