Update runtime files
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 5f1231c..5e1f61e 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 8.2. Last change: 2021 May 29
+*autocmd.txt* For Vim version 8.2. Last change: 2021 Jul 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -679,8 +679,10 @@
CursorMoved After the cursor was moved in Normal or Visual
mode. Also when the text of the cursor line
has been changed, e.g., with "x", "rx" or "p".
- Not triggered when there is typeahead or when
- an operator is pending.
+ Not triggered when there is typeahead, when
+ an operator is pending or when moving to
+ another window while remaining at the same
+ cursor position.
For an example see |match-parens|.
Note: This can not be skipped with
`:noautocmd`.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 401f055..e5f9b46 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 8.2. Last change: 2021 Jun 23
+*eval.txt* For Vim version 8.2. Last change: 2021 Jul 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1588,7 +1588,17 @@
Handler called
Handler called
-Note how execute() is used to execute an Ex command. That's ugly though.
+Note that it is possible to cause memory to be used and not freed if the
+closure is referenced by the context it depends on: >
+ function Function()
+ let x = 0
+ let F = {-> x}
+ endfunction
+The closure uses "x" from the function scope, and "F" in that same scope
+refers to the closure. This cycle results in the memory not being freed.
+Recommendation: don't do this.
+
+Notice how execute() is used to execute an Ex command. That's ugly though.
In Vim9 script you can use a command block, see |inline-function|.
Lambda expressions have internal names like '<lambda>42'. If you get an error
@@ -1963,7 +1973,8 @@
Vim behaves like it is empty, there is no warning message.
*v:fname* *fname-variable*
-v:fname The file name set by 'includeexpr'. Empty otherwise.
+v:fname When evaluating 'includeexpr': the file name that was
+ detected. Empty otherwise.
*v:fname_in* *fname_in-variable*
v:fname_in The name of the input file. Valid while evaluating:
@@ -5803,7 +5814,7 @@
are zero.
When the position is after the text then "column" is the
- length of the text in bytes.
+ length of the text in bytes plus one.
If the mouse is over a popup window then that window is used.
@@ -8921,6 +8932,10 @@
The "curscol" value is where the cursor would be placed. For
a Tab it would be the same as "endcol", while for a double
width character it would be the same as "col".
+ The |conceal| feature is ignored here, the column numbers are
+ as if 'conceallevel' is zero. You can set the cursor to the
+ right position and use |screencol()| to get the value with
+ |conceal| taken into account.
Can also be used as a |method|: >
GetWinid()->screenpos(lnum, col)
@@ -11892,6 +11907,7 @@
digraphs Compiled with support for digraphs.
directx Compiled with support for DirectX and 'renderoptions'.
dnd Compiled with support for the "~ register |quote_~|.
+drop_file Compiled with |drop_file| support.
ebcdic Compiled on a machine with ebcdic character set.
emacs_tags Compiled with support for Emacs tags.
eval Compiled with expression evaluation support. Always
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index c93a050..decc7bf 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt* For Vim version 8.2. Last change: 2021 May 01
+*gui.txt* For Vim version 8.2. Last change: 2021 Jun 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -411,7 +411,8 @@
3.7 Drag and drop *drag-n-drop*
You can drag and drop one or more files into the Vim window, where they will
-be opened as if a |:drop| command was used.
+be opened as if a |:drop| command was used. You can check if this is
+supported with the *drop_file* feature: `has('drop_file')`.
If you hold down Shift while doing this, Vim changes to the first dropped
file's directory. If you hold Ctrl Vim will always split a new window for the
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index d70b3e6..3e77ee7 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 8.2. Last change: 2020 Oct 16
+*insert.txt* For Vim version 8.2. Last change: 2021 Jul 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1073,7 +1073,8 @@
The function must return a List with the matching words. These matches
usually include the "a:base" text. When there are no matches return an empty
-List.
+List. Note that the cursor may have moved since the first invocation, the
+text may have been changed.
In order to return more information than the matching words, return a Dict
that contains the List. The Dict can have these items:
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 9e13bdb..e344ec7 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt* For Vim version 8.2. Last change: 2021 Jun 14
+*repeat.txt* For Vim version 8.2. Last change: 2021 Jun 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -846,7 +846,7 @@
":cont", ":next", ":finish" (or shorter).
*vim9-debug*
When debugging a compiled :def function, "step" will stop before every
-executed line, not every ingle nstruction. Thus it works mostly like a not
+executed line, not every single instruction. Thus it works mostly like a not
compiled function. Access to local variables is limited you can use: >
echo varname
But not much else.
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index bb8cc29..c0a8c51 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt* For Vim version 8.2. Last change: 2008 Jun 21
+*sponsor.txt* For Vim version 8.2. Last change: 2021 Jul 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -11,9 +11,8 @@
your appreciation for the work and motivate Bram and others to continue
working on Vim please send a donation.
-Since Bram is back to a paid job the money will now be used to help children
-in Uganda. See |uganda|. But at the same time donations increase Bram's
-motivation to keep working on Vim!
+Since Bram does not need the money it will be used to help children in Uganda,
+see |uganda|. Donations increase Bram's motivation to keep working on Vim!
For the most recent information about sponsoring look on the Vim web site:
@@ -74,19 +73,6 @@
amount you transferred if you want to vote for features and
show others you are a registered Vim user or sponsor.
-Cash Small amounts can be sent with ordinary mail. Put something
- around the money, so that it's not noticeable from the
- outside. Mention your e-mail address if you want to vote for
- features and show others you are a registered Vim user or
- sponsor.
-
-You can use this permanent address:
- Bram Moolenaar
- Finsterruetihof 1
- 8134 Adliswil
- Switzerland
-
-
QUESTIONS AND ANSWERS *sponsor-faq* *register-faq*
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index da4bf8e..e8ff255 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 8.2. Last change: 2021 Jun 22
+*syntax.txt* For Vim version 8.2. Last change: 2021 Jul 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1420,11 +1420,17 @@
auto-detecting the *.e and *.E file extensions as Euphoria file type,
add the following line to your startup file: >
- :let filetype_euphoria = "euphoria3"
+ :let g:filetype_euphoria = "euphoria3"
< or >
- :let filetype_euphoria = "euphoria4"
+ :let g:filetype_euphoria = "euphoria4"
+
+Elixir and Euphoria share the *.ex file extension. If the filetype is
+specifically set as Euphoria with the g:filetype_euphoria variable, or the
+file is determined to be Euphoria based on keywords in the file, then the
+filetype will be set as Euphoria. Otherwise, the filetype will default to
+Elixir.
ERLANG *erlang.vim* *ft-erlang-syntax*
@@ -1442,6 +1448,22 @@
:let g:erlang_highlight_special_atoms = 1
+ELIXIR *elixir.vim* *ft-elixir-syntax*
+
+Elixir is a dynamic, functional language for building scalable and maintainable
+applications.
+
+The following file extensions are auto-detected as Elixir file types:
+
+ *.ex, *.exs, *.eex, *.leex, *.lock
+
+Elixir and Euphoria share the *.ex file extension. If the filetype is
+specifically set as Euphoria with the g:filetype_euphoria variable, or the
+file is determined to be Euphoria based on keywords in the file, then the
+filetype will be set as Euphoria. Otherwise, the filetype will default to
+Elixir.
+
+
FLEXWIKI *flexwiki.vim* *ft-flexwiki-syntax*
FlexWiki is an ASP.NET-based wiki package available at http://www.flexwiki.com
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 2d3bb37..9c99429 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6190,6 +6190,8 @@
dos-colors os_dos.txt /*dos-colors*
dos-file-formats os_dos.txt /*dos-file-formats*
dos-locations os_dos.txt /*dos-locations*
+dos-powershell os_dos.txt /*dos-powershell*
+dos-pwsh os_dos.txt /*dos-pwsh*
dos-shell os_dos.txt /*dos-shell*
dos-standard-mappings os_dos.txt /*dos-standard-mappings*
dos-temp-files os_dos.txt /*dos-temp-files*
@@ -6202,6 +6204,7 @@
drag-n-drop gui.txt /*drag-n-drop*
drag-n-drop-win32 gui_w32.txt /*drag-n-drop-win32*
drag-status-line term.txt /*drag-status-line*
+drop_file gui.txt /*drop_file*
dtd.vim syntax.txt /*dtd.vim*
dtd2vim insert.txt /*dtd2vim*
dying-variable eval.txt /*dying-variable*
@@ -6222,6 +6225,7 @@
efm-entries quickfix.txt /*efm-entries*
efm-ignore quickfix.txt /*efm-ignore*
eiffel.vim syntax.txt /*eiffel.vim*
+elixir.vim syntax.txt /*elixir.vim*
emacs-keys tips.txt /*emacs-keys*
emacs-tags tagsrch.txt /*emacs-tags*
emacs_tags tagsrch.txt /*emacs_tags*
@@ -6571,6 +6575,7 @@
ft-dosbatch-syntax syntax.txt /*ft-dosbatch-syntax*
ft-dtd-syntax syntax.txt /*ft-dtd-syntax*
ft-eiffel-syntax syntax.txt /*ft-eiffel-syntax*
+ft-elixir-syntax syntax.txt /*ft-elixir-syntax*
ft-erlang-syntax syntax.txt /*ft-erlang-syntax*
ft-euphoria-syntax syntax.txt /*ft-euphoria-syntax*
ft-flexwiki-syntax syntax.txt /*ft-flexwiki-syntax*
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index 8dc6dc3..be2896e 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt* For Vim version 8.2. Last change: 2021 Jun 23
+*testing.txt* For Vim version 8.2. Last change: 2021 Jul 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -82,7 +82,8 @@
*test_gui_drop_files()*
test_gui_drop_files({list}, {row}, {col}, {mods})
Drop one or more files in {list} in the window at {row}, {col}.
- This function only works when the GUI is running.
+ This function only works when the GUI is running and the
+ |drag-n-drop| feature is present.
The supported values for {mods} are:
0x4 Shift
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 0735598..655b74a 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 8.2. Last change: 2021 Jun 26
+*todo.txt* For Vim version 8.2. Last change: 2021 Jul 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,11 +38,9 @@
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Memory eaten up by function returning a closure. #8439
-Circular reference. Should garbage collector find unused local variables?
-
Vim9 - Make everything work:
- possible leak in test_vim9_builtin ?
+- Make "for _ in range()" work, do not store the value in a var.
- use CheckLegacyAndVim9Success(lines) in many more places
- compile get_lambda_tv() in popup_add_timeout()
- For builtin functions using tv_get_string*() use check_for_string() to be
@@ -248,6 +246,10 @@
Mapping with partial match not executed properly in GTK. (Ingo Karkat, #7082)
+Problem that a previous silent ":throw" causes a following try/catch not to
+work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
+Also see #8487 for an example.
+
Patch for Template string: #4634
Have another look at the implementation.
@@ -1420,9 +1422,6 @@
interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build
result: https://ci.appveyor.com/project/k-takata/vim/history
-Problem that a previous silent ":throw" causes a following try/catch not to
-work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
-
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10)
diff --git a/runtime/doc/version6.txt b/runtime/doc/version6.txt
index abf1544..22a57aa 100644
--- a/runtime/doc/version6.txt
+++ b/runtime/doc/version6.txt
@@ -2696,7 +2696,7 @@
double-wide character.
- Overstrike mode for the cmdline replaced only the first byte of a multibyte
character.
-- The cursor in Replace mode (also in the cmdline) was to small on a
+- The cursor in Replace mode (also in the cmdline) was too small on a
double-wide character.
- When a multibyte character contained a 0x80 byte, it didn't work (was using
a CSI byte instead). (Muraoka Taro)
@@ -3546,7 +3546,7 @@
Added Russian keymap for yawerty keyboard.
Added an explanation of using the vimrc file in the tutor.
-Changed tutor.vim to get the right encoding for the Taiwainese tutor.
+Changed tutor.vim to get the right encoding for the Taiwanese tutor.
Added Russian tutor. (Andrey Kiselev)
Added Polish tutor. (Mikolaj Machowski)
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index 313c388..9ed74cc 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -35504,7 +35504,7 @@
src/testdir/test_xxd.vim
Patch 8.1.1545
-Problem: When the screen is to small there is no message about that.
+Problem: When the screen is too small there is no message about that.
(Daniel Hahler)
Solution: Do not use :cquit. (closes #4534)
Files: src/testdir/runtest.vim
@@ -41104,7 +41104,7 @@
Patch 8.1.2419
Problem: With a long file name the hit-enter prompt appears. (J. Lewis
Muir)
-Solution: When checking for text to wrap don't do this when outputing a CR.
+Solution: When checking for text to wrap don't do this when outputting a CR.
Files: src/message.c, src/testdir/test_display.vim,
src/testdir/dumps/Test_long_file_name_1.dump
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index e8d97a9..8b91cdd 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt* For Vim version 8.2. Last change: 2021 Jun 25
+*vim9.txt* For Vim version 8.2. Last change: 2021 Jul 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -442,7 +442,8 @@
var Funcref = MyFunction
When using `function()` the resulting type is "func", a function with any
-number of arguments and any return type. The function can be defined later.
+number of arguments and any return type (including void). The function can be
+defined later.
Lambda using => instead of -> ~
@@ -579,13 +580,18 @@
restored after the :enddef.
In places where line continuation with a backslash is still needed, such as
-splitting up a long Ex command, comments can start with #\ instead of "\: >
- syn region Text
+splitting up a long Ex command, comments can start with '#\ ': >
+ syn region Text
\ start='foo'
#\ comment
\ end='bar'
-
-< *E1050*
+Like with legacy script '"\ ' is used. This is also needed when line
+continuation is used without a backslash and a line starts with a bar: >
+ au CursorHold * echom 'BEFORE bar'
+ #\ some comment
+ | echom 'AFTER bar'
+<
+ *E1050*
To make it possible for the operator at the start of the line to be
recognized, it is required to put a colon before a range. This example will
add "start" and print: >
@@ -1084,10 +1090,8 @@
Not supported yet:
tuple<a: {type}, b: {type}, ...>
-These types can be used in declarations, but no value will have this type:
- {type}|{type} {not implemented yet}
- void
- any
+These types can be used in declarations, but no simple value will actually
+have the "void" type.
There is no array type, use list<{type}> instead. For a list constant an
efficient implementation is used that avoids allocating lot of small pieces of
@@ -1096,8 +1100,16 @@
A partial and function can be declared in more or less specific ways:
func any kind of function reference, no type
checking for arguments or return value
+func: void any number and type of arguments, no return
+ value
func: {type} any number and type of arguments with specific
return type
+
+func() function with no argument, does not return a
+ value
+func(): void same
+func(): {type} function with no argument and return type
+
func({type}) function with argument type, does not return
a value
func({type}): {type} function with argument type and return type
@@ -1186,6 +1198,18 @@
['a', 'b', 'c'] list<string>
[1, 'x', 3] list<any>
+The common type of function references, if they do not all have the same
+number of arguments, uses "(...)" to indicate the number of arguments is not
+specified. For example: >
+ def Foo(x: bool)
+ enddef
+ def Bar(x: bool, y: bool)
+ enddef
+ var funclist = [Foo, Bar]
+ echo funclist->typename()
+Results in:
+ list<func(...)>
+
For script-local variables in Vim9 script the type is checked, also when the
variable was declared in a legacy function.
@@ -1202,16 +1226,24 @@
before, if the value used matches the expected type. There will sometimes be
an error, thus breaking backwards compatibility. For example:
- Using a number other than 0 or 1 where a boolean is expected. *E1023*
-- Using a string value when setting a number options.
+- Using a string value when setting a number option.
- Using a number where a string is expected. *E1024*
One consequence is that the item type of a list or dict given to map() must
not change. This will give an error in Vim9 script: >
- map([1, 2, 3], (i, v) => 'item ' .. i)
+ vim9 echo map([1, 2, 3], (i, v) => 'item ' .. i)
E1012: Type mismatch; expected number but got string
-Instead use |mapnew()|. If the item type was determined to be "any" it can
-change to a more specific type. E.g. when a list of mixed types gets changed
-to a list of numbers.
+Instead use |mapnew(): >
+ vim9 echo mapnew([1, 2, 3], (i, v) => 'item ' .. i)
+ ['item 0', 'item 1', 'item 2']
+
+If the item type was determined to be "any" it can change to a more specific
+type. E.g. when a list of mixed types gets changed to a list of numbers: >
+ var mylist = [1, 2.0, '3']
+ # typename(mylist) == "list<any>"
+ map(mylist, (i, v) => 'item ' .. i)
+ # typename(mylist) == "list<string>", no error
+
Same for |extend()|, use |extendnew()| instead, and for |flatten()|, use
|flattennew()| instead.