summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-01-29 22:20:48 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-29 22:20:48 +0000
commitf10911e5db16f1fe6ab519c5d091ad0c1df0d063 (patch)
treee8718e5e667d36b3c206e1778fc630e42bcf757d
parent62aec93bfdb9e1b40d03a6d2e8e9511f8b1bdb2d (diff)
Update runtime files
-rw-r--r--.github/CODEOWNERS6
-rw-r--r--runtime/autoload/dist/ft.vim2
-rw-r--r--runtime/autoload/freebasic.vim41
-rw-r--r--runtime/doc/builtin.txt39
-rw-r--r--runtime/doc/change.txt11
-rw-r--r--runtime/doc/eval.txt39
-rw-r--r--runtime/doc/if_perl.txt4
-rw-r--r--runtime/doc/index.txt8
-rw-r--r--runtime/doc/message.txt12
-rw-r--r--runtime/doc/options.txt20
-rw-r--r--runtime/doc/print.txt6
-rw-r--r--runtime/doc/tags56
-rw-r--r--runtime/doc/testing.txt6
-rw-r--r--runtime/doc/todo.txt24
-rw-r--r--runtime/doc/usr_41.txt4
-rw-r--r--runtime/doc/vim9.txt65
-rw-r--r--runtime/filetype.vim2
-rw-r--r--runtime/ftplugin/basic.vim43
-rw-r--r--runtime/ftplugin/freebasic.vim60
-rw-r--r--runtime/ftplugin/qb64.vim26
-rw-r--r--runtime/indent/basic.vim11
-rw-r--r--runtime/indent/freebasic.vim11
-rw-r--r--runtime/indent/qb64.vim11
-rw-r--r--runtime/pack/dist/opt/matchit/autoload/matchit.vim4
-rw-r--r--runtime/syntax/basic.vim482
-rw-r--r--runtime/syntax/qb64.vim409
-rw-r--r--runtime/syntax/strace.vim3
-rw-r--r--src/testdir/README.txt2
28 files changed, 1156 insertions, 251 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index b07870054c..1b7961d281 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -9,6 +9,7 @@
# So if a pull request only touches javascript files, only these owners
# will be requested to review.
+runtime/autoload/freebasic.vim @dkearns
runtime/autoload/getscript.vim @cecamp
runtime/autoload/netrw.vim @cecamp
runtime/autoload/netrwFileHandlers.vim @cecamp
@@ -111,6 +112,7 @@ runtime/ftplugin/pbtxt.vim @lakshayg
runtime/ftplugin/pdf.vim @tpope
runtime/ftplugin/ps1.vim @heaths
runtime/ftplugin/ps1xml.vim @heaths
+runtime/ftplugin/qb64.vim @dkearns
runtime/ftplugin/routeros.vim @zainin
runtime/ftplugin/ruby.vim @tpope @dkearns
runtime/ftplugin/sass.vim @tpope
@@ -126,6 +128,7 @@ runtime/ftplugin/typescript.vim @dkearns
runtime/ftplugin/typescriptreact.vim @dkearns
runtime/ftplugin/xml.vim @chrisbra
runtime/ftplugin/zsh.vim @chrisbra
+runtime/indent/basic.vim @dkearns
runtime/indent/bst.vim @tpope
runtime/indent/cdl.vim @dkearns
runtime/indent/clojure.vim @axvr
@@ -140,6 +143,7 @@ runtime/indent/elm.vim @andys8
runtime/indent/eruby.vim @tpope @dkearns
runtime/indent/eterm.vim @dkearns
runtime/indent/framescript.vim @dkearns
+runtime/indent/freebasic.vim @dkearns
runtime/indent/gitconfig.vim @tpope
runtime/indent/haml.vim @tpope
runtime/indent/idlang.vim @dkearns
@@ -154,6 +158,7 @@ runtime/indent/occam.vim @dkearns
runtime/indent/postscr.vim @dkearns
runtime/indent/prolog.vim @dkearns
runtime/indent/ps1.vim @heaths
+runtime/indent/qb64.vim @dkearns
runtime/indent/readline.vim @dkearns
runtime/indent/ruby.vim @AndrewRadev @dkearns
runtime/indent/sass.vim @tpope
@@ -239,6 +244,7 @@ runtime/syntax/prolog.vim @XVilka
runtime/syntax/ps1.vim @heaths
runtime/syntax/ps1xml.vim @heaths
runtime/syntax/psl.vim @danielkho
+runtime/syntax/qb64.vim @dkearns
runtime/syntax/rc.vim @chrisbra
runtime/syntax/routeros.vim @zainin
runtime/syntax/rpcgen.vim @cecamp
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index 86c71fa52d..f6ef9be891 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -1,7 +1,7 @@
" Vim functions for file type detection
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2022 Jan 11
+" Last Change: 2022 Jan 28
" These functions are moved here from runtime/filetype.vim to make startup
" faster.
diff --git a/runtime/autoload/freebasic.vim b/runtime/autoload/freebasic.vim
new file mode 100644
index 0000000000..428cf1382b
--- /dev/null
+++ b/runtime/autoload/freebasic.vim
@@ -0,0 +1,41 @@
+" Vim filetype plugin file
+" Language: FreeBASIC
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Last Change: 2021 Mar 16
+
+" Dialects can be one of fb, qb, fblite, or deprecated
+" Precedence is forcelang > #lang > lang
+function! freebasic#GetDialect() abort
+ if exists("g:freebasic_forcelang")
+ return g:freebasic_forcelang
+ endif
+
+ if exists("g:freebasic_lang")
+ let dialect = g:freebasic_lang
+ else
+ let dialect = "fb"
+ endif
+
+ " override with #lang directive or metacommand
+
+ let skip = "has('syntax_items') && synIDattr(synID(line('.'), col('.'), 1), 'name') =~ 'Comment$'"
+ let pat = '\c^\s*\%(#\s*lang\s\+\|''\s*$lang\s*:\s*\)"\([^"]*\)"'
+
+ let save_cursor = getcurpos()
+ call cursor(1, 1)
+ let lnum = search(pat, 'n', '', '', skip)
+ call setpos('.', save_cursor)
+
+ if lnum
+ let word = matchlist(getline(lnum), pat)[1]
+ if word =~? '\%(fb\|deprecated\|fblite\|qb\)'
+ let dialect = word
+ else
+ echomsg "freebasic#GetDialect: Invalid lang, found '" .. word .. "' at line " .. lnum .. " " .. getline(lnum)
+ endif
+ endif
+
+ return dialect
+endfunction
+
+" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index f858440a9e..aaf4e3b5e4 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt* For Vim version 8.2. Last change: 2022 Jan 22
+*builtin.txt* For Vim version 8.2. Last change: 2022 Jan 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2086,6 +2086,22 @@ exists({expr}) The result is a Number, which is |TRUE| if {expr} is defined,
For checking if a file exists use |filereadable()|.
The {expr} argument is a string, which contains one of these:
+ varname internal variable (see
+ dict.key |internal-variables|). Also works
+ list[i] for |curly-braces-names|, |Dictionary|
+ import.Func entries, |List| items, imported
+ items,etc.
+ Does not work for local variables in a
+ compiled `:def` function.
+ Beware that evaluating an index may
+ cause an error message for an invalid
+ expression. E.g.: >
+ :let l = [1, 2, 3]
+ :echo exists("l[5]")
+< 0 >
+ :echo exists("l[xx]")
+< E121: Undefined variable: xx
+ 0
&option-name Vim option (only checks if it exists,
not if it really works)
+option-name Vim option that works.
@@ -2100,21 +2116,6 @@ exists({expr}) The result is a Number, which is |TRUE| if {expr} is defined,
?funcname built-in function that could be
implemented; to be used to check if
"funcname" is valid
- varname internal variable (see
- |internal-variables|). Also works
- for |curly-braces-names|, |Dictionary|
- entries, |List| items, etc.
- Does not work for local variables in a
- compiled `:def` function.
- Beware that evaluating an index may
- cause an error message for an invalid
- expression. E.g.: >
- :let l = [1, 2, 3]
- :echo exists("l[5]")
-< 0 >
- :echo exists("l[xx]")
-< E121: Undefined variable: xx
- 0
:cmdname Ex command: built-in command, user
command or command modifier |:command|.
Returns:
@@ -2539,7 +2540,7 @@ flatten({list} [, {maxdepth}]) *flatten()*
The {list} is changed in place, use |flattennew()| if you do
not want that.
In Vim9 script flatten() cannot be used, you must always use
- |flattennew()|.
+ |flattennew()|. *E1158*
*E900*
{maxdepth} means how deep in nested lists changes are made.
{list} is not modified when {maxdepth} is 0.
@@ -6540,7 +6541,7 @@ reduce({object}, {func} [, {initial}]) *reduce()* *E998*
{func} is called for every item in {object}, which can be a
|String|, |List| or a |Blob|. {func} is called with two
arguments: the result so far and current item. After
- processing all items the result is returned.
+ processing all items the result is returned. *E1132*
{initial} is the initial result. When omitted, the first item
in {object} is used and {func} is first called for the second
@@ -7399,7 +7400,7 @@ setcellwidths({list}) *setcellwidths()*
setcellwidths([[0xad, 0xad, 1],
\ [0x2194, 0x2199, 2]])
-< *E1109* *E1110* *E1111* *E1112* *E1113*
+< *E1109* *E1110* *E1111* *E1112* *E1113* *E1114*
The {list} argument is a list of lists with each three
numbers. These three numbers are [low, high, width]. "low"
and "high" can be the same, in which case this refers to one
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 2799dc9e6d..7e1030bb91 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt* For Vim version 8.2. Last change: 2021 Dec 29
+*change.txt* For Vim version 8.2. Last change: 2022 Jan 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1176,10 +1176,13 @@ register. With blockwise selection it also depends on the size of the block
and whether the corners are on an existing character. (Implementation detail:
it actually works by first putting the register after the selection and then
deleting the selection.)
-The previously selected text is put in the unnamed register. If you want to
-put the same text into a Visual selection several times you need to use
+With 'p' the previously selected text is put in the unnamed register. This is
+useful if you want to put that text somewhere else. But you cannot repeat the
+same change.
+With 'P' the unnamed register is not changed, you can repeat the same change.
+But the deleted text cannot be used. If you do need it you can use 'p' with
another register. E.g., yank the text to copy, Visually select the text to
-replace and use "0p . You can repeat this as many times as you like, the
+replace and use "0p . You can repeat this as many times as you like, and the
unnamed register will be changed each time.
When you use a blockwise Visual mode command and yank only a single line into
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index a204735ec0..258d0a11e5 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 8.2. Last change: 2022 Jan 21
+*eval.txt* For Vim version 8.2. Last change: 2022 Jan 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -44,7 +44,8 @@ Profiling is documented at |profiling|.
1. Variables *variables*
1.1 Variable types ~
- *E712* *E896* *E897* *E899*
+ *E712* *E896* *E897* *E899* *E1098*
+ *E1107* *E1135* *E1138*
There are ten types of variables:
*Number* *Integer*
@@ -180,7 +181,7 @@ You will not get an error if you try to change the type of a variable.
1.2 Function references ~
- *Funcref* *E695* *E718*
+ *Funcref* *E695* *E718* *E1086*
A Funcref variable is obtained with the |function()| function, the |funcref()|
function or created with the lambda expression |expr-lambda|. It can be used
in an expression in the place of a function name, before the parenthesis
@@ -835,7 +836,7 @@ In legacy script it is possible to form a variable name with curly braces, see
==============================================================================
2. Expression syntax *expression-syntax*
-
+ *E1143*
Expression syntax summary, from least to most significant:
|expr1| expr2
@@ -916,6 +917,9 @@ Example: >
All expressions within one level are parsed from left to right.
+Expression nesting is limited to 1000 levels deep (300 when build with MSVC)
+to avoid running out of stack and crashing. *E1169*
+
expr1 *expr1* *trinary* *falsy-operator* *??* *E109*
-----
@@ -1339,7 +1343,7 @@ Note that the dot is also used for String concatenation. To avoid confusion
always put spaces around the dot for String concatenation.
-expr9(expr1, ...) |Funcref| function call
+expr9(expr1, ...) |Funcref| function call *E1085*
When expr9 is a |Funcref| type variable, invoke the function it refers to.
@@ -1577,7 +1581,7 @@ The first one probably doesn't echo anything, the second echoes the $shell
variable (if your shell supports it).
-internal variable *expr-variable* *E1015*
+internal variable *expr-variable* *E1015* *E1089*
-----------------
variable internal variable
See below |internal-variables|.
@@ -2709,7 +2713,7 @@ See |:verbose-cmd| for more information.
command, use line breaks instead of |:bar|: >
:exe "func Foo()\necho 'foo'\nendfunc"
<
- *:delf* *:delfunction* *E131* *E933*
+ *:delf* *:delfunction* *E131* *E933* *E1084*
:delf[unction][!] {name}
Delete function {name}.
{name} can also be a |Dictionary| entry that is a
@@ -2726,8 +2730,11 @@ See |:verbose-cmd| for more information.
If "[expr]" is not given, the number 0 is returned.
When a function ends without an explicit ":return",
the number 0 is returned.
- Note that there is no check for unreachable lines,
- thus there is no warning if commands follow ":return".
+ In a :def function *E1095* is given if unreachable
+ code follows after the `:return`.
+ In legacy script there is no check for unreachable
+ lines, thus there is no warning if commands follow
+ `:return`.
If the ":return" is used after a |:try| but before the
matching |:finally| (if present), the commands
@@ -2746,7 +2753,7 @@ may optionally be following. In the function the extra arguments can be used
as "a:1", "a:2", etc. "a:0" is set to the number of extra arguments (which
can be 0). "a:000" is set to a |List| that contains these arguments. Note
that "a:1" is the same as "a:000[0]".
- *E742*
+ *E742* *E1090*
The a: scope and the variables in it cannot be changed, they are fixed.
However, if a composite type is used, such as |List| or |Dictionary| , you can
change their contents. Thus you can pass a |List| to a function and have the
@@ -3054,7 +3061,7 @@ declarations and assignments do not use a command. |vim9-declaration|
from the {expr}. If {var-name} didn't exist yet, it
is created.
-:let {var-name}[{idx}] = {expr1} *E689*
+:let {var-name}[{idx}] = {expr1} *E689* *E1141*
Set a list item to the result of the expression
{expr1}. {var-name} must refer to a list and {idx}
must be a valid index in that list. For nested list
@@ -3161,7 +3168,7 @@ declarations and assignments do not use a command. |vim9-declaration|
:let &g:{option-name} -= {expr1}
Like above, but only set the global value of an option
(if there is one). Works like |:setglobal|.
-
+ *E1093*
:let [{name1}, {name2}, ...] = {expr1} *:let-unpack* *E687* *E688*
{expr1} must evaluate to a |List|. The first item in
the list is assigned to {name1}, the second item to
@@ -3202,7 +3209,7 @@ declarations and assignments do not use a command. |vim9-declaration|
|List| item.
*:let=<<* *:let-heredoc*
- *E990* *E991* *E172* *E221*
+ *E990* *E991* *E172* *E221* *E1145*
:let {var-name} =<< [trim] {endmarker}
text...
text...
@@ -3355,7 +3362,7 @@ text...
:lockvar v
:let v = 'asdf' " fails!
:unlet v " works
-< *E741* *E940*
+< *E741* *E940* *E1118* *E1119* *E1120* *E1121* *E1122*
If you try to change a locked variable you get an
error message: "E741: Value is locked: {name}".
If you try to lock or unlock a built-in variable you
@@ -3498,7 +3505,7 @@ text...
|Blob| does not affect the iteration.
:for [{var1}, {var2}, ...] in {listlist}
-:endfo[r]
+:endfo[r] *E1140*
Like ":for" above, but each item in {listlist} must be
a list, of which each item is assigned to {var1},
{var2}, etc. Example: >
@@ -3601,7 +3608,7 @@ text...
|:break|, |:finish|, or |:return|, or by an error or
interrupt or exception (see |:throw|).
- *:th* *:throw* *E608*
+ *:th* *:throw* *E608* *E1129*
:th[row] {expr1} The {expr1} is evaluated and thrown as an exception.
If the ":throw" is used after a |:try| but before the
first corresponding |:catch|, commands are skipped
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index a85b680053..f1060e88dd 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 08
+*if_perl.txt* For Vim version 8.2. Last change: 2022 Jan 28
VIM REFERENCE MANUAL by Sven Verdoolaege
@@ -103,7 +103,7 @@ Here are some things you can try: >
:perldo $_ = reverse($_);1
:perl VIM::Msg("hello")
:perl $line = $curbuf->Get(42)
-<
+< *E299*
Executing Perl commands in the |sandbox| is limited. ":perldo" will not be
possible at all. ":perl" will be evaluated in the Safe environment, if
possible.
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index cbf363a77c..c4129ea22e 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt* For Vim version 8.2. Last change: 2021 Aug 31
+*index.txt* For Vim version 8.2. Last change: 2022 Jan 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -937,7 +937,9 @@ tag command note action in Visual mode ~
before the highlighted area
|v_J| J 2 join the highlighted lines
|v_K| K run 'keywordprg' on the highlighted area
-|v_O| O Move horizontally to other corner of area.
+|v_O| O move horizontally to other corner of area
+|v_P| P replace highlighted area with register
+ contents; unnamed register is unchanged
Q does not start Ex mode
|v_R| R 2 delete the highlighted lines and start
insert
@@ -1000,6 +1002,8 @@ tag command note action in Visual mode ~
|v_i{| i{ same as iB
|v_i}| i} same as iB
|v_o| o move cursor to other corner of area
+|v_p| p replace highlighted area with register
+ contents; deleted text in unnamed register
|v_r| r 2 replace highlighted area with a character
|v_s| s 2 delete highlighted area and start insert
|v_u| u 2 make highlighted area lowercase
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 44ad8bc2f2..760e9ca107 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt* For Vim version 8.2. Last change: 2022 Jan 19
+*message.txt* For Vim version 8.2. Last change: 2022 Jan 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -82,7 +82,6 @@ LIST OF MESSAGES
Add to read buffer ~
makemap: Illegal mode ~
Cannot create BalloonEval with both message and callback ~
- Hangul automata ERROR ~
block was not locked ~
Didn't get block nr {N}? ~
ml_upd_block0(): Didn't get block 0?? ~
@@ -92,12 +91,12 @@ LIST OF MESSAGES
u_undo: line numbers wrong ~
undo list corrupt ~
undo line missing ~
- ml_get: cannot find line {N} ~
- cannot find line {N} ~
+ ml_get: cannot find line {N} in buffer {nr} {name} ~
line number out of range: {N} past the end ~
line count wrong in block {N} ~
- Internal error ~
+ Internal error: lalloc(0, ) ~
Internal error: {function} ~
+ Internal error in regexp ~
fatal error in cs_manage_matches ~
Invalid count for del_bytes(): {N} ~
@@ -728,6 +727,7 @@ specified.
*E488*
Trailing characters ~
+ Trailing characters: {text} ~
An argument has been added to an Ex command that does not permit one.
Or the argument has invalid characters and has not been recognized.
@@ -798,7 +798,7 @@ This is an (incomplete) overview of various messages that Vim gives:
*hit-enter* *press-enter* *hit-return*
*press-return* *hit-enter-prompt*
- Press ENTER or type command to continue
+ Press ENTER or type command to continue ~
This message is given when there is something on the screen for you to read,
and the screen is about to be redrawn:
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 199c261761..8c9ff3d43f 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 Jan 22
+*options.txt* For Vim version 8.2. Last change: 2022 Jan 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1558,8 +1558,8 @@ A jump table for the options with a short description can be found at |Q_op|.
preferred, because it is much faster.
'charconvert' is not used when reading stdin |--|, because there is no
file to convert from. You will have to save the text in a file first.
- The expression must return zero or an empty string for success,
- non-zero for failure.
+ The expression must return zero, false or an empty string for success,
+ non-zero or true for failure.
The possible encoding names encountered are in 'encoding'.
Additionally, names given in 'fileencodings' and 'fileencoding' are
used.
@@ -1583,9 +1583,18 @@ A jump table for the options with a short description can be found at |Q_op|.
Note that v:fname_in and v:fname_out will never be the same.
Note that v:charconvert_from and v:charconvert_to may be different
from 'encoding'. Vim internally uses UTF-8 instead of UCS-2 or UCS-4.
+
Encryption is not done by Vim when using 'charconvert'. If you want
to encrypt the file after conversion, 'charconvert' should take care
of this.
+
+ If the 'charconvert' expression starts with s: or |<SID>|, then it is
+ replaced with the script ID (|local-function|). Example: >
+ set charconvert=s:MyConvert()
+ set charconvert=<SID>SomeConvert()
+< Otherwise the expression is evaluated in the context of the script
+ where the option was set, thus script-local items are available.
+
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -7777,10 +7786,11 @@ A jump table for the options with a short description can be found at |Q_op|.
'tabstop' 'ts' number (default 8)
local to buffer
Number of spaces that a <Tab> in the file counts for. Also see
- |:retab| command, and 'softtabstop' option.
+ the |:retab| command, and the 'softtabstop' option.
Note: Setting 'tabstop' to any other value than 8 can make your file
- appear wrong in many places (e.g., when printing it).
+ appear wrong in many places, e.g., when printing it.
+ The value must be more than 0 and less than 10000.
There are four main ways to use tabs in Vim:
1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index eebdf7ea02..771a58cec0 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -1,4 +1,4 @@
-*print.txt* For Vim version 8.2. Last change: 2021 Oct 04
+*print.txt* For Vim version 8.2. Last change: 2022 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -178,7 +178,9 @@ If the expression starts with s: or |<SID>|, then it is replaced with the
script ID (|local-function|). Example: >
set printexpr=s:MyPrintFile()
set printexpr=<SID>SomePrintFile()
-<
+Otherwise, the expression is evaluated in the context of the script where the
+option was set, thus script-local items are available.
+
This option cannot be set from a |modeline| or in the |sandbox|, for security
reasons.
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 835f7a7fb2..15f017dd5b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4033,25 +4033,77 @@ E1077 vim9.txt /*E1077*
E108 eval.txt /*E108*
E1081 eval.txt /*E1081*
E1083 editing.txt /*E1083*
+E1084 eval.txt /*E1084*
+E1085 eval.txt /*E1085*
+E1086 eval.txt /*E1086*
+E1087 vim9.txt /*E1087*
+E1089 eval.txt /*E1089*
E109 eval.txt /*E109*
+E1090 eval.txt /*E1090*
E1091 vim9.txt /*E1091*
+E1093 eval.txt /*E1093*
E1094 vim9.txt /*E1094*
+E1095 eval.txt /*E1095*
+E1096 vim9.txt /*E1096*
+E1097 vim9.txt /*E1097*
+E1098 eval.txt /*E1098*
+E1099 vim9.txt /*E1099*
E11 cmdline.txt /*E11*
E110 eval.txt /*E110*
+E1100 vim9.txt /*E1100*
+E1101 vim9.txt /*E1101*
+E1102 vim9.txt /*E1102*
+E1103 vim9.txt /*E1103*
+E1104 vim9.txt /*E1104*
+E1105 vim9.txt /*E1105*
+E1106 vim9.txt /*E1106*
+E1107 eval.txt /*E1107*
+E1108 vim9.txt /*E1108*
E1109 builtin.txt /*E1109*
E111 eval.txt /*E111*
E1110 builtin.txt /*E1110*
E1111 builtin.txt /*E1111*
E1112 builtin.txt /*E1112*
E1113 builtin.txt /*E1113*
+E1114 builtin.txt /*E1114*
+E1115 testing.txt /*E1115*
+E1116 testing.txt /*E1116*
+E1117 vim9.txt /*E1117*
+E1118 eval.txt /*E1118*
+E1119 eval.txt /*E1119*
E112 eval.txt /*E112*
+E1120 eval.txt /*E1120*
+E1121 eval.txt /*E1121*
+E1122 eval.txt /*E1122*
+E1123 vim9.txt /*E1123*
+E1124 vim9.txt /*E1124*
+E1125 vim9.txt /*E1125*
+E1126 vim9.txt /*E1126*
+E1127 vim9.txt /*E1127*
+E1128 vim9.txt /*E1128*
+E1129 eval.txt /*E1129*
E113 eval.txt /*E113*
+E1130 vim9.txt /*E1130*
+E1131 vim9.txt /*E1131*
+E1132 builtin.txt /*E1132*
+E1133 vim9.txt /*E1133*
+E1134 vim9.txt /*E1134*
+E1135 eval.txt /*E1135*
E1136 map.txt /*E1136*
E1137 map.txt /*E1137*
+E1138 eval.txt /*E1138*
+E1139 vim9.txt /*E1139*
E114 eval.txt /*E114*
+E1140 eval.txt /*E1140*
+E1141 eval.txt /*E1141*
+E1143 eval.txt /*E1143*
+E1144 vim9.txt /*E1144*
+E1145 eval.txt /*E1145*
E115 eval.txt /*E115*
E1155 autocmd.txt /*E1155*
+E1158 builtin.txt /*E1158*
E116 eval.txt /*E116*
+E1169 eval.txt /*E1169*
E117 eval.txt /*E117*
E118 eval.txt /*E118*
E1187 starting.txt /*E1187*
@@ -4269,6 +4321,7 @@ E295 message.txt /*E295*
E296 message.txt /*E296*
E297 message.txt /*E297*
E298 message.txt /*E298*
+E299 if_perl.txt /*E299*
E30 change.txt /*E30*
E300 message.txt /*E300*
E301 message.txt /*E301*
@@ -7726,6 +7779,7 @@ interactive-functions usr_41.txt /*interactive-functions*
interfaces-5.2 version5.txt /*interfaces-5.2*
internal-variables eval.txt /*internal-variables*
internal-wordlist spell.txt /*internal-wordlist*
+internal_get_nv_cmdchar() builtin.txt /*internal_get_nv_cmdchar()*
internet intro.txt /*internet*
interrupt() builtin.txt /*interrupt()*
intro intro.txt /*intro*
@@ -9867,6 +9921,8 @@ test_garbagecollect_soon() testing.txt /*test_garbagecollect_soon()*
test_getvalue() testing.txt /*test_getvalue()*
test_gui_drop_files() testing.txt /*test_gui_drop_files()*
test_gui_mouse_event() testing.txt /*test_gui_mouse_event()*
+test_gui_tabline_event() testing.txt /*test_gui_tabline_event()*
+test_gui_tabmenu_event() testing.txt /*test_gui_tabmenu_event()*
test_ignore_error() testing.txt /*test_ignore_error()*
test_null_blob() testing.txt /*test_null_blob()*
test_null_channel() testing.txt /*test_null_channel()*
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index e5b9134736..ed5f98a565 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt* For Vim version 8.2. Last change: 2022 Jan 20
+*testing.txt* For Vim version 8.2. Last change: 2022 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -390,12 +390,12 @@ assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
<
If {msg} is empty then it is not used. Do this to get the
default message when passing the {lnum} argument.
-
+ *E1115*
When {lnum} is present and not negative, and the {error}
argument is present and matches, then this is compared with
the line number at which the error was reported. That can be
the line number in a function or in a script.
-
+ *E1116*
When {context} is present it is used as a pattern and matched
against the context (script name or function name) where
{lnum} is located in.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index a0f17aa7a6..6743b64da9 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 Jan 22
+*todo.txt* For Vim version 8.2. Last change: 2022 Jan 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,13 +38,22 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Also set the script context for other "expr" options, like for 'foldexpr'?
- 'printexpr' eval_printexpr()
- "expr:" part of 'spellsuggest eval_spell_expr()
+Only find a global function from Vim9 script when using "g:" ? #9637
+
+Disallow defining a script#Func() in Vim9 script.
+
+Cannot use command modifier for "import 'name.vim' as vim9"
+
+When making a copy of a list or dict, do not keep the type? #9644
+ With deepcopy() all, with copy() this still fails:
+ var l: list<list<number>> = [[1], [2]]
+ l->copy()[0][0] = 'x'
+
+Remove EBCDIC support?
Once Vim9 is stable:
- Add all the error numbers in a good place in documentation.
- done until E1083
+ done until E1145
- Check code coverage, add more tests if needed.
- Use Vim9 for runtime files.
@@ -62,6 +71,8 @@ Further Vim9 improvements, possibly after launch:
evaluation.
Use the location where the option was set for deciding whether it's to be
evaluated in Vim9 script context.
+- Implement "import lazy" - like autoload but with a relative or absolute
+ path. #9595
- implement :type
- implement :enum
- implement :class and :interface: See |vim9-classes|
@@ -78,6 +89,7 @@ Further Vim9 improvements, possibly after launch:
Update list of features to vote on:
- multiple cursors
- built-in LSP support
+- start first line halfway
Popup windows:
- Preview popup not properly updated when it overlaps with completion menu.
@@ -235,6 +247,8 @@ Memory leak in test_alot with pyeval() (allocating partial)
Memory leak in test_alot with expand()
Memory leaks in test_channel? (or is it because of fork())
+PR to support %e and %k in 'errorformat'. #9624
+
Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.
":set &shellpipe" and ":set &shellredir" should use the logic from
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index ec6db500a6..623fd3b598 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 8.2. Last change: 2022 Jan 01
+*usr_41.txt* For Vim version 8.2. Last change: 2022 Jan 28
VIM USER MANUAL - by Bram Moolenaar
@@ -2505,7 +2505,7 @@ When the user does ":setfiletype xyz" the effect of the previous filetype
should be undone. Set the b:undo_ftplugin variable to the commands that will
undo the settings in your filetype plugin. Example: >
- b:undo_ftplugin = "setlocal fo< com< tw< commentstring