Update runtime files
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 9e5b6f2..062ccc3 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -9034,7 +9034,7 @@
entry depends on the language specific
kind values. Only available when
using a tags file generated by
- Exuberant ctags or hdrtag.
+ Universal/Exuberant ctags or hdrtag.
static A file specific tag. Refer to
|static-tag| for more information.
More entries may be present, depending on the content of the
diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt
index 9adfea9..8645ad9 100644
--- a/runtime/doc/ft_ada.txt
+++ b/runtime/doc/ft_ada.txt
@@ -1,4 +1,4 @@
-*ft_ada.txt* For Vim version 8.2. Last change: 2010 Jul 20
+*ft_ada.txt* For Vim version 8.2. Last change: 2022 Mar 13
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
@@ -89,9 +89,9 @@
*ft-ada-omni*
The Ada omni-completions (|i_CTRL-X_CTRL-O|) uses tags database created either
-by "gnat xref -v" or the "exuberant Ctags (http://ctags.sourceforge.net). The
-complete function will automatically detect which tool was used to create the
-tags file.
+by "gnat xref -v" or the "Universal Ctags" (https://ctags.io). The complete
+function will automatically detect which tool was used to create the tags
+file.
------------------------------------------------------------------------------
3.1 Omni Completion with "gnat xref" ~
@@ -125,18 +125,18 @@
3.2 Omni Completion with "ctags"~
*ada-ctags*
-Exuberant Ctags uses its own multi-language code parser. The parser is quite
-fast, produces a lot of extra information (hence the name "Exuberant Ctags")
-and can run on files which currently do not compile.
+Universal/Exuberant Ctags use their own multi-language code parser. The
+parser is quite fast, produces a lot of extra information and can run on files
+which currently do not compile.
-There are also lots of other Vim-tools which use exuberant Ctags.
+There are also lots of other Vim-tools which use Universal/Exuberant Ctags.
+Universal Ctags is preferred, Exuberant Ctags is no longer being developed.
-You will need to install a version of the Exuberant Ctags which has Ada
-support patched in. Such a version is available from the GNU Ada Project
-(http://gnuada.sourceforge.net).
+You will need to install Universal Ctags which is available from
+https://ctags.io
-The Ada parser for Exuberant Ctags is fairly new - don't expect complete
-support yet.
+The Ada parser for Universal/Exuberant Ctags is fairly new - don't expect
+complete support yet.
==============================================================================
4. Compiler Support ~
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index e434286..93f68bd 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,4 +1,4 @@
-*gui_w32.txt* For Vim version 8.2. Last change: 2021 Oct 24
+*gui_w32.txt* For Vim version 8.2. Last change: 2022 Mar 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -236,7 +236,8 @@
When the "unnamed" string is included in the 'clipboard' option, the unnamed
register is the same. Thus you can yank to and paste from the clipboard
-without prepending "* to commands.
+without prepending "* to commands. If this doesn't work use the "unnamedplus"
+string in the 'clipboard' option.
The 'a' flag in 'guioptions' is not included by default. This means that text
is only put on the clipboard when an operation is performed on it. Just
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index f1060e8..61ad7c9 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt* For Vim version 8.2. Last change: 2022 Jan 28
+*if_perl.txt* For Vim version 8.2. Last change: 2022 Mar 13
VIM REFERENCE MANUAL by Sven Verdoolaege
@@ -22,9 +22,9 @@
Perl script (see scripts.vim in Vim's syntax directory). Vim assumes a file
is POD text if the filename has a .POD suffix.
-To use tags with Perl, you need a recent version of Exuberant ctags. Look
-here:
- http://ctags.sourceforge.net
+To use tags with Perl, you need Universal/Exuberant Ctags. Look here:
+ Universal Ctags (preferred): https://ctags.io
+ Exuberant Ctags: http://ctags.sourceforge.net
Alternatively, you can use the Perl script pltags.pl, which is shipped with
Vim in the $VIMRUNTIME/tools directory. This script has currently more
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 3153d46..5dc3348 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 8.2. Last change: 2022 Mar 06
+*insert.txt* For Vim version 8.2. Last change: 2022 Mar 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1409,11 +1409,16 @@
C *ft-c-omni*
-Completion of C code requires a tags file. You should use Exuberant ctags,
-because it adds extra information that is needed for completion. You can find
-it here: http://ctags.sourceforge.net/ Version 5.6 or later is recommended.
+Completion of C code requires a tags file. You should use Universal/
+Exuberant ctags, because it adds extra information that is needed for
+completion. You can find it here:
+ Universal Ctags: https://ctags.io
+ Exuberant Ctags: http://ctags.sourceforge.net
-For version 5.5.4 you should add a patch that adds the "typename:" field:
+Universal Ctags is preferred, Exuberant Ctags is no longer being developed.
+
+For Exuberant ctags, version 5.6 or later is recommended. For version 5.5.4
+you should add a patch that adds the "typename:" field:
ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch
A compiled .exe for MS-Windows can be found at:
http://ctags.sourceforge.net/
@@ -1534,8 +1539,11 @@
PHP *ft-php-omni*
Completion of PHP code requires a tags file for completion of data from
-external files and for class aware completion. You should use Exuberant ctags
-version 5.5.4 or newer. You can find it here: http://ctags.sourceforge.net/
+external files and for class aware completion. You should use Universal/
+Exuberant ctags version 5.5.4 or newer. You can find it here:
+
+ Universal Ctags: https://ctags.io
+ Exuberant Ctags: http://ctags.sourceforge.net
Script completes:
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 9d353ac..5bafaff 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 8.2. Last change: 2022 Feb 18
+*options.txt* For Vim version 8.2. Last change: 2022 Mar 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7859,9 +7859,10 @@
linear search can be avoided when case is ignored. Use a value of '2'
in the "!_TAG_FILE_SORTED" line for this. A tag file can be case-fold
sorted with the -f switch to "sort" in most unices, as in the command:
- "sort -f -o tags tags". For "Exuberant ctags" version 5.x or higher
- (at least 5.5) the --sort=foldcase switch can be used for this as
- well. Note that case must be folded to uppercase for this to work.
+ "sort -f -o tags tags". For Universal ctags and Exuberant ctags
+ version 5.x or higher (at least 5.5) the --sort=foldcase switch can be
+ used for this as well. Note that case must be folded to uppercase for
+ this to work.
By default, tag searches are case-sensitive. Case is ignored when
'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index f43ab7c..9451ff2 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -5553,11 +5553,12 @@
memory Vim will consume.
Only highlighting typedefs, unions and structs can be done too. For this you
-must use Exuberant ctags (found at http://ctags.sf.net).
+must use Universal Ctags (found at https://ctags.io) or Exuberant ctags (found
+at http://ctags.sf.net).
Put these lines in your Makefile:
-# Make a highlight file for types. Requires Exuberant ctags and awk
+# Make a highlight file for types. Requires Universal/Exuberant ctags and awk
types: types.vim
types.vim: *.[ch]
ctags --c-kinds=gstu -o- *.[ch] |\
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 81ba7d9..e64bdd5 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4254,6 +4254,7 @@
E1266 if_pyth.txt /*E1266*
E127 eval.txt /*E127*
E1270 change.txt /*E1270*
+E1271 vim9.txt /*E1271*
E128 eval.txt /*E128*
E129 eval.txt /*E129*
E13 message.txt /*E13*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index b53131b..e239119 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -561,7 +561,8 @@
The second format is new. It includes additional information in optional
fields at the end of each line. It is backwards compatible with Vi. It is
-only supported by new versions of ctags (such as Exuberant ctags).
+only supported by new versions of ctags (such as Universal ctags or Exuberant
+ctags).
{tagname} The identifier. Normally the name of a function, but it can
be any identifier. It cannot contain a <Tab>.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 57a84e5..fd0817d 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 8.2. Last change: 2022 Mar 08
+*todo.txt* For Vim version 8.2. Last change: 2022 Mar 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,27 +38,10 @@
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Allow for assigning v:null to job/channel/funcref etc.
-- Check that the declared type is not lost.
-- Check: var d: dict<func> = {a: function('tr'), b: null}
-
-Fix that with s being an empty string, this returns TRUE:
- echo s is null_string
-
-Make sure null types work to:
-- assign to a variable
-- use as an argument
-- use as default value of optional argument
-- use as return value
-- use in a list/dict constant, type is correct
-- revert comparing with null?
-
-TODO item in eval.c
-
-Really drop the Athena GUI? And NeXtaw?
+Really drop the Athena and NeXtaw GUI? Decide end of March.
Once Vim9 is stable:
-- Use Vim9 for runtime files.
+- Use Vim9 for more runtime files.
- Check code coverage, add more tests if needed.
vim9execute.c line 1900
vim9expr.c
@@ -123,7 +106,6 @@
- Should popup_getoptions() also return the mask? #7774
- Add a way to use popup_menu() synchronously: instead of invoking the
callback, return the choice. (Ben Jackson, #6534)
-- Use popup (or popup menu) for command line completion
- When using a popup for the info of a completion menu, and there is not
enough space, let the popup overlap with the menu. (#4544)
- Implement flip option.
@@ -2231,10 +2213,6 @@
Problem with editing file in binary mode. (Ingo Krabbe, 2009 Oct 8)
-With 'wildmode' set to "longest:full,full" and pressing Tab once the first
-entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe, 2011
-Feb 12)
-
Display error when 'tabline' that includes a file name with double-width
characters. (2010 Aug 14, bootleq)
@@ -2437,10 +2415,6 @@
first line. (Ingo Karkat, 2008 Jul 1) Ian Kelling is working on this.
Similar problem with ":e". (Marc Montu, 2014 Apr 22)
-Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
-laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
-Works OK with Vim in an xterm.
-
Cursor line moves in other window when using CTRL-W J that doesn't change
anything. (Dasn, 2009 Apr 7)
@@ -2473,10 +2447,6 @@
When 'rightleft' is set, cursorcolumn isn't highlighted after the end of a
line. It's also wrong in folds. (Dominique Pelle, 2010 Aug 21)
-After using <Tab> for command line completion after ":ta blah" and getting E33
-(no tags file), further editing the command to e.g., ":echo 'blah'", the
-command is not executed. Fix by Ian Kelling?
-
":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
Chase) Fix by Ian Kelling, 2008 Jul 14.
@@ -2652,16 +2622,6 @@
When a register contains illegal bytes, writing viminfo in utf-8 and reading
it back doesn't result in utf-8. (Devin Bayer)
-Command line completion: Scanning for tags doesn't check for typed key now and
-then? Hangs for about 5 seconds. Appears to be caused by finding include
-files with "foo/**" in 'path'. (Kalisiak, 2006 July 15)
-Additional info: When using the |wildcards| ** globing, vim hangs
-indefinitely on lots of directories. The |file-searching| globing, like in
-":set path=/**" does not hang as often as with globing with |wildcards|, like
-in ":1find /**/file". This is for files that unix "find" can find very
-quickly. Merging the 2 kinds of globing might make this an easier fix. (Ian
-Kelling, 2008 July 4)
-
When the file name has parenthesis, e.g., "foo (bar).txt", ":!ls '%'" has the
parenthesis escaped but not the space. That's inconsistent. Either escape
neither or both. No escaping might be best, because it doesn't depend on
@@ -2740,8 +2700,6 @@
When $VAR contains a backslash expand('$VAR') removes it. (Teemu Likonen, 2008
Jun 18)
-If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
-
In debug mode, using CTRL-R = to evaluate a function causes stepping through
the function. (Hari Krishna Dara, 2006 Jun 28)
@@ -2850,13 +2808,6 @@
For Aap: include a config.arg.example file with hints how to use config.arg.
-Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
-only one buffer line displayed, causes display errors.
-
-Completing with 'wildmenu' and using <Up> and <Down> to move through directory
-tree stops unexpectedly when using ":cd " and entering a directory that
-doesn't contain other directories.
-
Default for 'background' is wrong when using xterm with 256 colors.
Table with estimates from Matteo Cavalleri, 2014 Jan 10.
@@ -3538,8 +3489,6 @@
8 When doing Insert mode completion a mapping cannot recursively call
edit(), because the completion information is global. Put everything in
an allocated structure?
-8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
- ":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
7 mb_off2cells() doesn't work correctly on the tail byte of a double-byte
character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
@@ -4274,8 +4223,6 @@
7 CTRL-] checks the highlight group for finding out what the tag is.
7 Add an explanation how a list of words can be used to highlight misspelled
words.
-8 Add more command line completion for :syntax.
-8 Add more command line completion for :highlight.
7 Should find a better way to parse the :syntax and :highlight commands.
Use tables or lists that can be shared by parsing for execution and
completion?
@@ -5061,6 +5008,35 @@
- Add 'wildlongest' option: Key to use to find longest common match for
command line completion (default CTRL-L), like 'wildchar'. (Cregut)
Also: when there are several matches, show them line a CTRL-D.
+- With 'wildmode' set to "longest:full,full" and pressing Tab once the first
+ entry in wildmenu is highlighted, that shouldn't happen. (Yuki Watanabe,
+ 2011 Feb 12)
+- After using <Tab> for command line completion after ":ta blah" and getting
+ E33 (no tags file), further editing the command to e.g., ":echo 'blah'",
+ the command is not executed. Fix by Ian Kelling?
+- Command line completion: Scanning for tags doesn't check for typed key now
+ and then? Hangs for about 5 seconds. Appears to be caused by finding
+ include files with "foo/**" in 'path'. (Kalisiak, 2006 July 15)
+ Additional info: When using the |wildcards| ** globing, vim hangs
+ indefinitely on lots of directories. The |file-searching| globing, like in
+ ":set path=/**" does not hang as often as with globing with |wildcards|,
+ like in ":1find /**/file". This is for files that unix "find" can find
+ very quickly. Merging the 2 kinds of globing might make this an easier
+ fix. (Ian Kelling, 2008 July 4)
+- Command line completion when 'cmdheight' is maximum and 'wildmenu' is set,
+ only one buffer line displayed, causes display errors.
+- Completing with 'wildmenu' and using <Up> and <Down> to move through
+ directory tree stops unexpectedly when using ":cd " and entering a
+ directory that doesn't contain other directories.
+8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
+ ":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
+8 Add more command line completion for :syntax.
+8 Add more command line completion for :highlight.
+- Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
+ laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1) Works
+ OK with Vim in an xterm.
+- If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't
+ work.
Command line history:
diff --git a/runtime/doc/usr_29.txt b/runtime/doc/usr_29.txt
index 5940206..de1b911 100644
--- a/runtime/doc/usr_29.txt
+++ b/runtime/doc/usr_29.txt
@@ -1,4 +1,4 @@
-*usr_29.txt* For Vim version 8.2. Last change: 2016 Feb 27
+*usr_29.txt* For Vim version 8.2. Last change: 2022 Mar 13
VIM USER MANUAL - by Bram Moolenaar
@@ -33,10 +33,12 @@
ctags *.c
"ctags" is a separate program. Most Unix systems already have it installed.
-If you do not have it yet, you can find Exuberant ctags here:
-
+If you do not have it yet, you can find Universal/Exuberant ctags at:
+ http://ctags.io ~
http://ctags.sf.net ~
+Universal ctags is preferred, Exuberant ctags is no longer being developed.
+
Now when you are in Vim and you want to go to a function definition, you can
jump to it by using the following command: >
@@ -142,15 +144,15 @@
When Vim has to search many places for tags files, you can hear the disk
rattling. It may get a bit slow. In that case it's better to spend this
time while generating one big tags file. You might do this overnight.
- This requires the Exuberant ctags program, mentioned above. It offers an
-argument to search a whole directory tree: >
+ This requires the Universal or Exuberant ctags program, mentioned above.
+It offers an argument to search a whole directory tree: >
cd ~/proj
ctags -R .
-The nice thing about this is that Exuberant ctags recognizes various file
-types. Thus this doesn't work just for C and C++ programs, also for Eiffel
-and even Vim scripts. See the ctags documentation to tune this.
+The nice thing about this is that Universal/Exuberant ctags recognizes various
+file types. Thus this doesn't work just for C and C++ programs, also for
+Eiffel and even Vim scripts. See the ctags documentation to tune this.
Now you only need to tell Vim where your big tags file is: >
:set tags=~/proj/tags
@@ -232,7 +234,8 @@
Since CTRL-] takes you to the definition of the identifier under the cursor,
you can use a list of identifier names as a table of contents. Here is an
example.
- First create a list of identifiers (this requires Exuberant ctags): >
+ First create a list of identifiers (this requires Universal or Exuberant
+ctags): >
ctags --c-types=f -f functions *.c
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index 0e1ecf5..7d5c258 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -837,7 +837,7 @@
Patch 8.2.0107
Problem: Hgignore is out of sync from gitignore.
Solution: Add lines to hgignore. (Ken Takata)
-Files: .hgigmore
+Files: .hgignore
Patch 8.2.0108
Problem: When sign text is changed a manual redraw is needed. (Pontus
@@ -2474,7 +2474,7 @@
Patch 8.2.0367
Problem: Can use :pedit in a popup window.
Solution: Disallow it.
-Files: src/ex_docmd.c, src/testdir/test_popuwin.vim
+Files: src/ex_docmd.c, src/testdir/test_popupwin.vim
Patch 8.2.0368
Problem: Vim9: import that redefines local variable does not fail.
@@ -2513,7 +2513,7 @@
Problem: Prop_find() may not find text property at start of the line.
Solution: Adjust the loop to find properties. (Axel Forsman, closes #5761,
closes #5663)
-Files: src/testprop.c, src/testdir/test_textprop.vim
+Files: src/textprop.c, src/testdir/test_textprop.vim
Patch 8.2.0373
Problem: Type of term_sendkeys() is unknown.
@@ -3743,7 +3743,7 @@
Problem: Vim9: no error when omitting type from argument.
Solution: Enforce specifying argument types.
Files: src/userfunc.c, src/ex_eval.c, src/testdir/test_vim9_script.vim,
- src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim
+ src/testdir/test_vim9_func.vim, src/testdir/test_vim9_expr.vim,
src/testdir/test_vim9_disassemble.vim
Patch 8.2.0571
@@ -3921,7 +3921,7 @@
Patch 8.2.0600
Problem: Vim9: cannot read or write w:, t: and b: variables.
Solution: Implement load and store for w:, t: and b: variables.
- (closes #5950)
+ (closes #5950)
Files: src/testdir/test_vim9_disassemble.vim,
src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
src/vim9.h, src/vim9compile.c, src/vim9execute.c
@@ -4042,7 +4042,7 @@
Patch 8.2.0618
Problem: Echoing a null list results in no output. (Yegappan Lakshmanan)
-Solution: Return "[]" instead of NULL in echo_string_core().
+Solution: Return "[]" instead of NULL in echo_string_core().
Files: src/eval.c, src/testdir/test_messages.vim
Patch 8.2.0619
@@ -4095,7 +4095,7 @@
(closes #5670)
Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/userfunc.c,
src/eval.c, src/globals.h, src/testdir/test_vim9_func.vim,
- src/testdir/test_vim9_disassemble.vim
+ src/testdir/test_vim9_disassemble.vim,
src/testdir/test_vim9_script.vim
Patch 8.2.0627
@@ -5205,8 +5205,9 @@
Solution: Include revision 727, but add the index instead of switching
between RGB and indexed.
Files: src/terminal.c, src/term.c, src/libvterm/include/vterm.h,
- src/libvterm/src/pen.c src/libvterm/src/screen.c
- src/libvterm/src/vterm_internal.h src/libvterm/t/30state_pen.test
+ src/libvterm/src/pen.c, src/libvterm/src/screen.c,
+ src/libvterm/src/vterm_internal.h,
+ src/libvterm/t/30state_pen.test,
src/libvterm/t/harness.c, src/libvterm/src/state.c,
src/libvterm/t/26state_query.test,
src/libvterm/t/64screen_pen.test
@@ -5299,7 +5300,7 @@
src/evalvars.c, src/proto/evalvars.pro, src/vim9compile.c,
src/proto/vim9compile.pro, src/vim9execute.c, src/ex_cmds.h,
src/ex_docmd.c, src/ex_cmdidxs.h, src/vim.h, src/testdir/vim9.vim,
- src/testdir/test_vim9_disassemble.vim
+ src/testdir/test_vim9_disassemble.vim,
src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim
Patch 8.2.0819
@@ -5667,7 +5668,7 @@
Problem: Getting attributes for directory entries is slow.
Solution: Add readdirex(). (Ken Takata, closes #5619)
Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
- src/fileio.c, src/filepath.c src/proto/fileio.pro,
+ src/fileio.c, src/filepath.c, src/proto/fileio.pro,
src/proto/filepath.pro, src/testdir/test_functions.vim
Patch 8.2.0876
@@ -6292,7 +6293,7 @@
Problem: Vim9: cannot compile "[var, var] = list".
Solution: Implement list assignment.
Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/evalvars.c,
- src/proto/evalvars.pro src/eval.c, src/testdir/test_vim9_script.vim
+ src/proto/evalvars.pro, src/eval.c, src/testdir/test_vim9_script.vim
Patch 8.2.0982
Problem: Insufficient testing for reading/writing files.
@@ -6335,7 +6336,7 @@
src/cmdexpand.c, src/config.h.in, src/configure.ac,
src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/fileio.c,
src/filepath.c, src/globals.h, src/proto/fileio.pro,
- src/testdir/test_cmdline.vim, src/testdir/test_functions.vim
+ src/testdir/test_cmdline.vim, src/testdir/test_functions.vim,
src/vim.h
Patch 8.2.0989
@@ -9545,7 +9546,7 @@
Problem: Vim9: cannot assign to local option.
Solution: Skip over "&l:" and "&g:". (closes #6749)
Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/vim9.vim,
- src/vim9compile.c src/testdir/test_vim9_script.vim
+ src/vim9compile.c, src/testdir/test_vim9_script.vim
Patch 8.2.1519
Problem: Vim9: Ex command default range is not set.
@@ -11740,7 +11741,7 @@
Patch 8.2.1898
Problem: Command modifier parsing always uses global cmdmod.
Solution: Pass in cmdmod_T to use. Rename struct fields consistently.
-Files: src/structs.h, src/arglist.c src/buffer.c, src/bufwrite.c,
+Files: src/structs.h, src/arglist.c, src/buffer.c, src/bufwrite.c,
src/diff.c, src/change.c, src/cmdhist.c, src/edit.c,
src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c,
src/fileio.c, src/filepath.c, src/gui.c, src/gui_gtk_x11.c,
@@ -13549,7 +13550,7 @@
Problem: Vim9: return type of => lambda not parsed.
Solution: Parse and use the return type.
Files: src/vim9compile.c, src/userfunc.c, src/vim9type.c,
- src/proto/vim9type.pro, src/vim9script.c, src/eval.c
+ src/proto/vim9type.pro, src/vim9script.c, src/eval.c,
src/testdir/test_vim9_expr.vim
Patch 8.2.2210
@@ -13776,7 +13777,7 @@
Files: src/term.c
Patch 8.2.2249
-Problem: Termcodes test is flaky when used over ssh with X forwarding.
+Problem: Termcodes test is flaky when used over ssh with X forwarding.
Solution: Set 'mousetime' to a larger value. (Dominique Pellé, closes #7576,
closes #7563)
Files: src/testdir/test_termcodes.vim
@@ -15482,7 +15483,7 @@
Solution: Implement ISN_UNLETRANGE.
Files: src/errors.h, src/eval.c, src/evalvars.c, src/list.c,
src/proto/evalvars.pro, src/proto/list.pro, src/vim9.h,
- src/vim9compile.c, src/vim9execute.c
+ src/vim9compile.c, src/vim9execute.c,
src/testdir/test_vim9_assign.vim
Patch 8.2.2534
@@ -15518,7 +15519,7 @@
Solution: Store both the finally and endtry indexes. (closes #7885)
Files: src/vim9execute.c, src/vim9compile.c, src/vim9.h,
src/testdir/test_vim9_script.vim,
-
+
Patch 8.2.2540
Problem: Vim9: no error for using script var name for argument.
Solution: Check for this error. (closes #7868)
@@ -17249,7 +17250,7 @@
Patch 8.2.2841
Problem: MS-Windows: cursor in wrong position when 'lazyredraw' and
- 'statusline' are set.
+ 'statusline' are set.
Solution: Call compute_cmdrow(). (closes #8170, closes #8184)
Files: src/os_win32.c
@@ -17936,7 +17937,7 @@
Problem: Using getchar() in Vim9 script is problematic.
Solution: Add getcharstr(). (closes #8343)
Files: runtime/doc/eval.txt, src/evalfunc.c, src/getchar.c,
- src/proto/getchar.pro, src/testdir/test_getchar.vim
+ src/proto/getchar.pro, src/testdir/test_functions.vim
Patch 8.2.2958 (after 8.2.2957)
Problem: Function list test fails.
@@ -18849,7 +18850,7 @@
Files: src/testdir/check.vim
Patch 8.2.3110
-Problem: A pattern that matches the cursor position is bit complicated.
+Problem: A pattern that matches the cursor position is a bit complicated.
Solution: Use a dot to indicate the cursor line and column. (Christian
Brabandt, closes #8497, closes #8179)
Files: runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c,
@@ -18864,7 +18865,7 @@
Problem: With concealing enabled and indirectly closing a fold the cursor
may be somewhere in a folded line when it is not on the first line
of the fold.
-Solution: Check if he cursor is somewhere in the folded text.
+Solution: Check if the cursor is somewhere in the folded text.
Files: src/drawscreen.c
Patch 8.2.3113
@@ -23950,7 +23951,7 @@
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
Files: src/errors.h, src/globals.h, src/arglist.c, src/bufwrite.c,
- src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c src/ex_eval.c,
+ src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
src/help.c, src/scriptfile.c, src/usercmd.c, src/userfunc.c,
src/vim9cmds.c, src/vim9compile.c
@@ -23975,7 +23976,7 @@
Patch 8.2.3961
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
-Files: src/errors.h, src/globals.h src/arglist.c, src/autocmd.c,
+Files: src/errors.h, src/globals.h, src/arglist.c, src/autocmd.c,
src/blob.c, src/bufwrite.c, src/channel.c, src/clipboard.c,
src/cmdexpand.c, src/debugger.c, src/dict.c, src/eval.c,
src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds.c,
@@ -24291,7 +24292,7 @@
Patch 8.2.4004
Problem: Old compiler complains about struct init with variable.
-Solution: Set the struct member later. (John Marriott)
+Solution: Set the struct member later. (John Marriott)
Files: src/evalfunc.c
Patch 8.2.4005
@@ -24494,7 +24495,7 @@
Patch 8.2.4036
Problem: Vim9: script test file is getting too long.
Solution: Split the import/export functionality to a separate file.
-Files: src/testdir/test_vim9_script.vim src/testdir/test_vim9_import.vim,
+Files: src/testdir/test_vim9_script.vim, src/testdir/test_vim9_import.vim,
src/testdir/Make_all.mak
Patch 8.2.4037
@@ -25457,7 +25458,7 @@
Problem: Vim9: cannot export function that exists globally.
Solution: When checking if a function already exists only check for
script-local functions. (closes #9615)
-Files: src/userfunc.c, src/proto/userfunc.pro, src/vim.h,
+Files: src/userfunc.c, src/proto/userfunc.pro, src/vim.h,
src/vim9compile.c, src/vim9instr.c,
src/testdir/test_vim9_import.vim
@@ -25853,7 +25854,7 @@
Problem: Autoload tests fails.
Solution: Use export instead of name with #.
Files: src/testdir/sautest/autoload/auto9.vim,
- src/testdir/test_autoload.vim src/testdir/test_ins_complete.vim
+ src/testdir/test_autoload.vim, src/testdir/test_ins_complete.vim
Patch 8.2.4266
Problem: Compiler warning for uninitialized variable.
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 54e02ae..f494880 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt* For Vim version 8.2. Last change: 2022 Mar 08
+*vim9.txt* For Vim version 8.2. Last change: 2022 Mar 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -995,6 +995,11 @@
if b == null_blob
# b argument was not given
+It is possible to compare `null` with any value, this will not give a type
+error. However, comparing `null` with a number, float or bool will always
+result in `false`. This is different from legacy script, where comparing
+`null` with zero or `false` would return `true`.
+
When converting a boolean to a string `false` and `true` are used, not
`v:false` and `v:true` like in legacy script. `v:none` has no `none`
replacement, it has no equivalent in other languages.
@@ -1234,6 +1239,11 @@
endfor
echo range(5)->map((i, _) => flist[i]())
# Result: [4, 4, 4, 4, 4]
+< *E1271*
+A closure must be compiled in the context that it is defined in, so that
+variables in that context can be found. This mostly happens correctly, except
+when a function is marked for debugging with `breakadd` after it was compiled.
+Make sure the define the breakpoint before compiling the outerh function.
The "inloop" variable will exist only once, all closures put in the list refer
to the same instance, which in the end will have the value 4. This is
@@ -1739,7 +1749,8 @@
prefix is obtained from the file name, as you would to manually in a
legacy autoload script. Thus the exported function can be found with
"for#search#Stuff", but you would normally use `import autoload` and not
- use the prefix.
+ use the prefix (which has the side effect of loading the autoload script
+ when compiling a function that encounters this name).
You can split up the functionality and import other scripts from the
autoload script as you like. This way you can share code between plugins.
@@ -1751,7 +1762,17 @@
When compiling a `:def` function and a function in an autoload script is
encountered, the script is not loaded until the `:def` function is called.
This also means you get any errors only at runtime, since the argument and
-return types are not known yet.
+return types are not known yet. If you would use the name with '#' characters
+then the autoload script IS loaded.
+
+Be careful to not refer to an item in an autoload script that does trigger
+loading it unintentionally. For example, when setting an option that takes a
+function name, make sure to use a string, not a function reference: >
+ import autoload 'qftf.vim'
+ &quickfixtextfunc = 'qftf.Func' # autoload script NOT loaded
+ &quickfixtextfunc = qftf.Func # autoload script IS loaded
+On the other hand, it can be useful to load the script early, at a time when
+any errors should be given.
For testing the |test_override()| function can be used to have the
`import autoload` load the script right away, so that the items and types can