Update runtime files.

This commit is contained in:
Bram Moolenaar
2022-05-21 13:08:16 +01:00
parent 0d534d9cf2
commit 2d8ed0203a
23 changed files with 8836 additions and 4734 deletions

View File

@ -1,4 +1,4 @@
*usr_52.txt* For Vim version 8.2. Last change: 2022 May 13
*usr_52.txt* For Vim version 8.2. Last change: 2022 May 16
VIM USER MANUAL - by Bram Moolenaar
@ -110,10 +110,10 @@ Although it's shorter to do: >
==============================================================================
*52.3* Functions and types
Legacy Vim script does have type checking, but this happens at runtime, when
the code is executed. And it's permissive, often a computation gives an
unexpected value instead of reporting an error. Thus you can define a
function and think it's fine, but see a problem only later when it is called: >
Legacy Vim script only checks types at runtime, when the code is executed.
And it's permissive, often a computation gives an unexpected value instead of
reporting an error. Thus you can define a function and think it's fine, but
see a problem only later when it is called: >
let s:collected = ''
func ExtendAndReturn(add)
let s:collected += a:add
@ -133,12 +133,16 @@ the argument is used without the "a:" prefix: >
s:collected += add
return s:collected
enddef
defcompile
disassemble ExtendAndReturn
Here we use `:defcompile` to do the compilation right away, without it the
Here we use `:disassemble` to do the compilation right away, without it the
compilation would happen when the function is called. Vim will tell you what
you did wrong: >
E1013: type mismatch, expected number but got string
E1051: Wrong argument type for +
Side note: here the context is legacy script, when using Vim9 script you would
put `:defcompile` at the end of the script to check for errors in the
functions defined in it.
Vim9 script is strict, it uses the "+" operator only for numbers and floats.
For string concatenation ".." must be used. This avoids mistakes and avoids