Update runtime files.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 7a87de0..07779b4 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 8.2. Last change: 2020 Dec 22
+*todo.txt* For Vim version 8.2. Last change: 2021 Jan 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,17 +38,11 @@
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Rewrite the section on "magic". Say that 'magic' is normally on, then this
-happens... If 'magic' is off, then this is different..
+Reload: How to make sure type of script function hasn't changed?
-test_vim9_cmd: uses uninitialized var
+Valgrind: test_vim9_cmd: uses uninitialized var
Vim9 - Make everything work:
-- For an :autocmd and :command argument defined in Vim9 script, if a following
- line starts with "|" append it. It's like line continuation. (#6702)
-- The syntax of a range list[a:b] is ambiguous, is this one "a:b" variable or
- a range from "a" to "b"? To avoid confusion, require white space before
- (and after) the colon? #7409
- Implement "export {one, two three}".
- Use "null" for v:null, like true and false? #7495
- ISN_CHECKTYPE could use check_argtype()
@@ -59,7 +53,18 @@
- If a :def function is called with a function reference, compile it to get
the function type.
def Filter(x: string, Cond: func(string): bool)
- Filter(x, { v -> v =~ '^b' })
+ Filter(x, (v) => v =~ '^b')
+- Make inline function work, to be used as a funcref:
+ let Ref = (arg: type): type => {
+ statement
+ return expr
+ }
+ let Ref = (arg: type) => {
+ statement
+ statement
+ }
+- implement { cmd } compiled
+- implement { cmd } at script level
- Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
- Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
- Expand `=expr` in :mkspell
@@ -68,8 +73,11 @@
map(list, SomeFunc)
- For builtin functions using tv_get_string*() use check_for_string() to be
more strict about the argument type.
+- Implement :lockvar and :unlockvar. How about local variables? Perhaps only
+ allow this for global variables. Use :final or :const otherwise.
- Allow function names that will be script-local to start with lower case
- letter?
+ letter? Or also require names with s: prefix to use upper case?
+ Also apply this function references "var ref = SomeFunc"
- Support passing v:none to use the default argument value. (#6504)
- Make map() give an error if the resulting type of the first argument is
wrong. Only works if the type is known? Is this slow (need to go over all
@@ -98,7 +106,7 @@
- Implement using imported items at script level from "import * as X" in
eval_variable(). Should pass the ".xxx" that follows and return that.
- Disallow unlet for local/script/imported vars
-- Make "++nr" work.
+- Make "++nr" work. "++g:count" doesn't work, thinks it is a range.
- Make closures work:
- Create closure in a loop. Need to make a list of them.
- nested closure only uses one context, not all (#7150)
@@ -144,10 +152,6 @@
- compile options that are an expression, e.g. "expr:" in 'spellsuggest',
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
-- Make inline function work, to be used as a funcref:
- let ref = def(arg: type): rettype
- body
- enddef
- compile get_lambda_tv() in popup_add_timeout()
- inline call to map() and filter()
- compile "skip" argument of searchpair()
@@ -224,6 +228,7 @@
with another Vim instance.
Terminal emulator window:
+- Can escape a terminal popup with win_gotoid(), should be an error
- No support for underline color, t_8u.
- When in terminal-Normal mode when the job finishes, the cursor jumps to the
end but the window is not updated. This only happens when typing "a".
@@ -276,6 +281,8 @@
Patch to implement the vimtutor with a plugin: #6414
Was originally written by Felipe Morales.
+Patch to find Python dll using registry key. (#7540)
+
Remove SPACE_IN_FILENAME ? It is only used for completion.
Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
@@ -663,6 +670,38 @@
'sessionoptions', making it impossible to have a session with a relative path.
(#4450)
+Session file only contains local option values for buffers that are in a
+window, not other buffers. (#7532)
+
+Script generated by :mksession does not work well if there are windows with
+modified buffers
+ change "silent only" into "silent only!"
+ change "edit fname" of first buffer to "hide edit fname"
+ skip "badd fname" if "fname" is already in the buffer list
+ remove remark about unloading buffers from documentation
+
+When session file has name in argument list but the buffer was deleted, the
+buffer is not deleted when using the session file. (#1393)
+Should add the buffer in hidden state.
+
+When a session file is created and there are "nofile" buffers, these are not
+filled. Need to trigger BufReadCmd autocommands. Also handle deleting the
+initial empty buffer better. (ZyX, 2015 March 8)
+
+Setting the spell file in a session only reads the local additions, not the
+normal spell file. (Enno Nagel, 2014 Mar 29)
+
+Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
+(Felix Kater, 2009 Mar 3)
+
+Something wrong with session that has "cd" commands and "badd", in such a way
+that Vim doesn't find the edited file in the buffer list, causing the
+ATTENTION message? (Tony Mechelynck, 2008 Dec 1)
+Also: swap files are in ~/tmp/ One has relative file name ".mozilla/...".
+
+'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
+Likonen, March 19)
+
When using a timer callback vgetc_busy is reset, allowing for using input().
But in a channel callback this does not happen. We need to do something
similar to check_due_timer(). Also see #3809.
@@ -852,13 +891,6 @@
Win32 key codes are messy. Mike Williams tried to fix that, but now old
mappings no longer work. Create a new terminal for the better solution?
-Script generated by :mksession does not work well if there are windows with
-modified buffers
- change "silent only" into "silent only!"
- change "edit fname" of first buffer to "hide edit fname"
- skip "badd fname" if "fname" is already in the buffer list
- remove remark about unloading buffers from documentation
-
Compiler warnings (geeknik, 2017 Oct 26):
- signed integer overflow in do_sub() (#2249)
- signed integer overflow in get_address() (#2248)
@@ -1120,7 +1152,7 @@
#2089) Patch with possible solution by Björn Linse.
The change list index is local to a buffer, but it doesn't make sense using it
-for another buffer. (lacygoll) Copy w_changelistidx to wininfo_S and back.
+for another buffer. (lacygolil) Copy w_changelistidx to wininfo_S and back.
X11: Putting more than about 262040 characters of text on the clipboard and
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
@@ -1227,10 +1259,6 @@
import can't be used in define option when include matches too.
(Romain Lafourcade, 2017 Jun 18, #1519)
-When session file has name in argument list but the buffer was deleted, the
-buffer is not deleted when using the session file. (#1393)
-Should add the buffer in hidden state.
-
Wrong diff highlighting with three files. (2016 Oct 20, #1186)
Also get E749 on exit.
Another example in #1309
@@ -1689,10 +1717,6 @@
Patch to add a "literal" argument to bufnr(). (Olaf Dabrunz, 2015 Aug 4)
-When a session file is created and there are "nofile" buffers, these are not
-filled. Need to trigger BufReadCmd autocommands. Also handle deleting the
-initial empty buffer better. (ZyX, 2015 March 8)
-
Extended file attributes lost on write (backupcopy=no). Issue 306.
Patch to add :lockjumps. (Carlo Baldassi, 2015 May 25)
@@ -1821,9 +1845,6 @@
- Development work on plugins (although diff with distributed version would be
useful).
-Setting the spell file in a session only reads the local additions, not the
-normal spell file. (Enno Nagel, 2014 Mar 29)
-
When typing the first character of a command, e.g. "f", then using a menu, the
menu item doesn't work. Clear typeahead when using a menu?
@@ -2472,9 +2493,6 @@
height. Also happens when there is another window in the frame, if it's not
very high. (Yegappan Lakshmanan, 2010 Jul 22, Michael Peeters, 2010 Jul 22)
-Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
-(Felix Kater, 2009 Mar 3)
-
Session file generates error upon loading, cause by --remote-silent-tab.
(7tommm (ytommm) 2010 Nov 24)
@@ -2534,11 +2552,6 @@
"gqip" in Insert mode has an off-by-one error, causing it to reflow text.
(Raul Coronado, 2009 Nov 2)
-Something wrong with session that has "cd" commands and "badd", in such a way
-that Vim doesn't find the edited file in the buffer list, causing the
-ATTENTION message? (Tony Mechelynck, 2008 Dec 1)
-Also: swap files are in ~/tmp/ One has relative file name ".mozilla/...".
-
MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew"
doesn't set 'ff' to "unix". (Ben Fritz, 2008 Dec 5) Reusing the old buffer
probably causes this.
@@ -2735,9 +2748,6 @@
":echoe" in catch block stops processing, while this doesn't happen outside of
a catch block. (ZyX, 2011 Jun 2)
-'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
-Likonen, March 19)
-
Test 54 uses shell commands, that doesn't work on non-Unix systems. Use some
other way to test buffer-local autocommands.