1
0
forked from aniani/vim

Update runtime files

This commit is contained in:
Bram Moolenaar 2022-03-08 21:35:07 +00:00
parent ed0c62e7b1
commit 1588bc8ebe
48 changed files with 633 additions and 327 deletions

View File

@ -3,7 +3,7 @@ vim9script
# Vim functions for file type detection # Vim functions for file type detection
# #
# Maintainer: Bram Moolenaar <Bram@vim.org> # Maintainer: Bram Moolenaar <Bram@vim.org>
# Last Change: 2022 Feb 22 # Last Change: 2022 Mar 05
# These functions are moved here from runtime/filetype.vim to make startup # These functions are moved here from runtime/filetype.vim to make startup
# faster. # faster.

View File

@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Compiler: Jest " Compiler: Jest
" Maintainer: Doug Kearns <dougkearns@gmail.com> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2018 May 15 " Last Change: 2021 Nov 20
if exists("current_compiler") if exists("current_compiler")
finish finish
@ -15,12 +15,14 @@ endif
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo&vim set cpo&vim
" CompilerSet makeprg=npx\ jest\ --no-colors " CompilerSet makeprg=npx\ --no-install\ jest\ --no-colors
CompilerSet makeprg=jest\ --no-colors CompilerSet makeprg=jest\ --no-colors
CompilerSet errorformat=%E\ \ ●\ %m, CompilerSet errorformat=%-A\ \ ●\ Console,
\%E\ \ ●\ %m,
\%Z\ %\\{4}%.%#Error:\ %f:\ %m\ (%l:%c):%\\=, \%Z\ %\\{4}%.%#Error:\ %f:\ %m\ (%l:%c):%\\=,
\%Z\ %\\{6}at\ %\\S%#\ (%f:%l:%c), \%Z\ %\\{6}at\ %\\S%#\ (%f:%l:%c),
\%Z\ %\\{6}at\ %\\S%#\ %f:%l:%c,
\%+C\ %\\{4}%\\w%.%#, \%+C\ %\\{4}%\\w%.%#,
\%+C\ %\\{4}%[-+]%.%#, \%+C\ %\\{4}%[-+]%.%#,
\%-C%.%#, \%-C%.%#,

View File

@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Compiler: SML/NJ Compiler " Compiler: SML/NJ Compiler
" Maintainer: Doug Kearns <dougkearns@gmail.com> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2020 Feb 10 " Last Change: 2022 Feb 09
if exists("current_compiler") if exists("current_compiler")
finish finish
@ -16,10 +16,10 @@ let s:cpo_save = &cpo
set cpo&vim set cpo&vim
CompilerSet makeprg=sml CompilerSet makeprg=sml
CompilerSet errorformat=%f:%l.%c-%\\d%\\+.%\\d%\\+\ %trror:\ %m, CompilerSet errorformat=%f:%l.%c-%e.%k\ %trror:\ %m,
\%f:%l.%c\ %trror:\ %m, \%f:%l.%c\ %trror:\ %m,
\%trror:\ %m \%trror:\ %m,
\%f:%l.%c-%\\d%\\+.%\\d%\\+\ %tarning:\ %m, \%f:%l.%c-%e.%k\ %tarning:\ %m,
\%f:%l.%c\ %tarning:\ %m, \%f:%l.%c\ %tarning:\ %m,
\%tarning:\ %m, \%tarning:\ %m,
\%-G%.%# \%-G%.%#

View File

@ -1,7 +1,7 @@
" The default vimrc file. " The default vimrc file.
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2021 Nov 17 " Last change: 2022 Mar 03
" "
" This is loaded if no vimrc file was found. " This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C". " Except when Vim is run with "-u NONE" or "-C".
@ -64,9 +64,10 @@ if has('win32')
set guioptions-=t set guioptions-=t
endif endif
" Don't use Ex mode, use Q for formatting. " Don't use Q for Ex mode, use it for formatting. Except for Select mode.
" Revert with ":unmap Q". " Revert with ":unmap Q".
map Q gq map Q gq
sunmap Q
" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, " CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break. " so that you can undo CTRL-U after inserting a line break.

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.2. Last change: 2022 Feb 09 *autocmd.txt* For Vim version 8.2. Last change: 2022 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -63,7 +63,7 @@ effects. Be careful not to destroy your text.
they were given. they were given.
See |autocmd-nested| for [++nested]. "nested" See |autocmd-nested| for [++nested]. "nested"
(without the ++) can also be used, for backwards (without the ++) can also be used, for backwards
compatibility. compatibility, but not in |Vim9| script. *E1078*
*autocmd-once* *autocmd-once*
If [++once] is supplied the command is executed once, If [++once] is supplied the command is executed once,
then removed ("one shot"). then removed ("one shot").
@ -365,6 +365,7 @@ Name triggered by ~
|InsertEnter| starting Insert mode |InsertEnter| starting Insert mode
|InsertChange| when typing <Insert> while in Insert or Replace mode |InsertChange| when typing <Insert> while in Insert or Replace mode
|InsertLeave| when leaving Insert mode |InsertLeave| when leaving Insert mode
|InsertLeavePre| just before leaving Insert mode
|InsertCharPre| when a character was typed in Insert mode, before |InsertCharPre| when a character was typed in Insert mode, before
inserting it inserting it

View File

@ -1,4 +1,4 @@
*builtin.txt* For Vim version 8.2. Last change: 2022 Feb 23 *builtin.txt* For Vim version 8.2. Last change: 2022 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -5572,7 +5572,7 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
empty list is returned. If length of {str} is greater than empty list is returned. If length of {str} is greater than
256, then returns an empty list. 256, then returns an empty list.
Refer to |fuzzy-match| for more information about fuzzy Refer to |fuzzy-matching| for more information about fuzzy
matching strings. matching strings.
Example: > Example: >
@ -8160,8 +8160,7 @@ sound_playfile({path} [, {callback}])
< Can also be used as a |method|: > < Can also be used as a |method|: >
GetSoundPath()->sound_playfile() GetSoundPath()->sound_playfile()
< There is no error *E538* , but can listen to 538.nl. < {only available when compiled with the |+sound| feature}
{only available when compiled with the |+sound| feature}
sound_stop({id}) *sound_stop()* sound_stop({id}) *sound_stop()*

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 8.2. Last change: 2022 Feb 04 *change.txt* For Vim version 8.2. Last change: 2022 Mar 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -778,8 +778,8 @@ matched pattern is deleted. The separator after {pattern} can also be left
out then. Example: > out then. Example: >
:%s/TESTING :%s/TESTING
This deletes "TESTING" from all lines, but only one per line. This deletes "TESTING" from all lines, but only one per line.
*E1270*
For compatibility with Vi these two exceptions are allowed: For compatibility with Vi these two exceptions are allowed in legacy script:
"\/{string}/" and "\?{string}?" do the same as "//{string}/r". "\/{string}/" and "\?{string}?" do the same as "//{string}/r".
"\&{string}&" does the same as "//{string}/". "\&{string}&" does the same as "//{string}/".
*pattern-delimiter* *E146* *E1241* *E1242* *pattern-delimiter* *E146* *E1241* *E1242*

View File

@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.2. Last change: 2021 Nov 28 *channel.txt* For Vim version 8.2. Last change: 2022 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1288,18 +1288,18 @@ prompt. >
" Create a channel log so we can see what happens. " Create a channel log so we can see what happens.
call ch_logfile('logfile', 'w') call ch_logfile('logfile', 'w')
" Function handling a line of text has been typed. " Function handling a line of text that has been typed.
func TextEntered(text) func TextEntered(text)
" Send the text to a shell with Enter appended. " Send the text to a shell with Enter appended.
call ch_sendraw(g:shell_job, a:text .. "\n") call ch_sendraw(g:shell_job, a:text .. "\n")
endfunc endfunc
" Function handling output from the shell: Added above the prompt. " Function handling output from the shell: Add it above the prompt.
func GotOutput(channel, msg) func GotOutput(channel, msg)
call append(line("$") - 1, "- " .. a:msg) call append(line("$") - 1, "- " .. a:msg)
endfunc endfunc
" Function handling the shell exist: close the window. " Function handling the shell exits: close the window.
func JobExit(job, status) func JobExit(job, status)
quit! quit!
endfunc endfunc
@ -1310,7 +1310,6 @@ prompt. >
\ err_cb: function('GotOutput'), \ err_cb: function('GotOutput'),
\ exit_cb: function('JobExit'), \ exit_cb: function('JobExit'),
\ }) \ })
let shell_ch = job_getchannel(shell_job)
new new
set buftype=prompt set buftype=prompt
@ -1321,6 +1320,46 @@ prompt. >
" start accepting shell commands " start accepting shell commands
startinsert startinsert
< <
The same in |Vim9| script: >
vim9script
# Create a channel log so we can see what happens.
ch_logfile('logfile', 'w')
var shell_job: job
# Function handling a line of text that has been typed.
def TextEntered(text: string)
# Send the text to a shell with Enter appended.
ch_sendraw(shell_job, text .. "\n")
enddef
# Function handling output from the shell: Add it above the prompt.
def GotOutput(channel: channel, msg: string)
append(line("$") - 1, "- " .. msg)
enddef
# Function handling the shell exits: close the window.
def JobExit(job: job, status: number)
quit!
enddef
# Start a shell in the background.
shell_job = job_start(["/bin/sh"], {
out_cb: GotOutput,
err_cb: GotOutput,
exit_cb: JobExit,
})
new
set buftype=prompt
var buf = bufnr('')
prompt_setcallback(buf, TextEntered)
prompt_setprompt(buf, "shell command: ")
# start accepting shell commands
startinsert
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.2. Last change: 2022 Feb 21 *eval.txt* For Vim version 8.2. Last change: 2022 Mar 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1834,6 +1834,7 @@ Some variables can be set by the user, but the type cannot be changed.
*v:argv* *argv-variable* *v:argv* *argv-variable*
v:argv The command line arguments Vim was invoked with. This is a v:argv The command line arguments Vim was invoked with. This is a
list of strings. The first item is the Vim command. list of strings. The first item is the Vim command.
See |v:progpath| for the command with full path.
*v:beval_col* *beval_col-variable* *v:beval_col* *beval_col-variable*
v:beval_col The number of the column, over which the mouse pointer is. v:beval_col The number of the column, over which the mouse pointer is.
@ -2215,6 +2216,8 @@ v:none An empty String. Used to put an empty item in JSON. See
< v:none ~ < v:none ~
That is so that eval() can parse the string back to the same That is so that eval() can parse the string back to the same
value. Read-only. value. Read-only.
Note that using `== v:none` and `!= v:none` will often give
an error. Instead, use `is v:none` and `isnot v:none` .
*v:null* *null-variable* *v:null* *null-variable*
v:null An empty String. Used to put "null" in JSON. See v:null An empty String. Used to put "null" in JSON. See
@ -2225,7 +2228,10 @@ v:null An empty String. Used to put "null" in JSON. See
< v:null ~ < v:null ~
That is so that eval() can parse the string back to the same That is so that eval() can parse the string back to the same
value. Read-only. value. Read-only.
In |Vim9| script "null" can be used without "v:". In |Vim9| script `null` can be used without "v:".
In some places `v:null` and `null` can be used for a List,
Dict, Job, etc. that is not set. That is slightly different
than an empty List, Dict, etc.
*v:numbermax* *numbermax-variable* *v:numbermax* *numbermax-variable*
v:numbermax Maximum value of a number. v:numbermax Maximum value of a number.
@ -3423,16 +3429,17 @@ text...
opposite of |:lockvar|. opposite of |:lockvar|.
:if {expr1} *:if* *:end* *:endif* *:en* *E171* *E579* *E580* :if {expr1} *:if* *:end* *:endif* *:en* *E171* *E579* *E580*
:en[dif] Execute the commands until the next matching ":else" :en[dif] Execute the commands until the next matching `:else`
or ":endif" if {expr1} evaluates to non-zero. or `:endif` if {expr1} evaluates to non-zero.
Although the short forms work, it is recommended to Although the short forms work, it is recommended to
always use `:endif` to avoid confusion. always use `:endif` to avoid confusion and to make
auto-indenting work properly.
From Vim version 4.5 until 5.0, every Ex command in From Vim version 4.5 until 5.0, every Ex command in
between the ":if" and ":endif" is ignored. These two between the `:if` and `:endif` is ignored. These two
commands were just to allow for future expansions in a commands were just to allow for future expansions in a
backward compatible way. Nesting was allowed. Note backward compatible way. Nesting was allowed. Note
that any ":else" or ":elseif" was ignored, the "else" that any `:else` or `:elseif` was ignored, the `else`
part was not executed either. part was not executed either.
You can use this to remain compatible with older You can use this to remain compatible with older
@ -3441,32 +3448,38 @@ text...
: version-5-specific-commands : version-5-specific-commands
:endif :endif
< The commands still need to be parsed to find the < The commands still need to be parsed to find the
"endif". Sometimes an older Vim has a problem with a `endif`. Sometimes an older Vim has a problem with a
new command. For example, ":silent" is recognized as new command. For example, `:silent` is recognized as
a ":substitute" command. In that case ":execute" can a `:substitute` command. In that case `:execute` can
avoid problems: > avoid problems: >
:if version >= 600 :if version >= 600
: execute "silent 1,$delete" : execute "silent 1,$delete"
:endif :endif
< <
NOTE: The ":append" and ":insert" commands don't work In |Vim9| script `:endif` cannot be shortened, to
properly in between ":if" and ":endif". improve script readability.
NOTE: The `:append` and `:insert` commands don't work
properly in between `:if` and `:endif`.
*:else* *:el* *E581* *E583* *:else* *:el* *E581* *E583*
:el[se] Execute the commands until the next matching ":else" :el[se] Execute the commands until the next matching `:else`
or ":endif" if they previously were not being or `:endif` if they previously were not being
executed. executed.
In |Vim9| script `:else` cannot be shortened, to
improve script readability.
*:elseif* *:elsei* *E582* *E584* *:elseif* *:elsei* *E582* *E584*
:elsei[f] {expr1} Short for ":else" ":if", with the addition that there :elsei[f] {expr1} Short for `:else` `:if`, with the addition that there
is no extra ":endif". is no extra `:endif`.
In |Vim9| script `:elseif` cannot be shortened, to
improve script readability.
:wh[ile] {expr1} *:while* *:endwhile* *:wh* *:endw* :wh[ile] {expr1} *:while* *:endwhile* *:wh* *:endw*
*E170* *E585* *E588* *E733* *E170* *E585* *E588* *E733*
:endw[hile] Repeat the commands between ":while" and ":endwhile", :endw[hile] Repeat the commands between `:while` and `:endwhile`,
as long as {expr1} evaluates to non-zero. as long as {expr1} evaluates to non-zero.
When an error is detected from a command inside the When an error is detected from a command inside the
loop, execution continues after the "endwhile". loop, execution continues after the `endwhile`.
Example: > Example: >
:let lnum = 1 :let lnum = 1
:while lnum <= line("$") :while lnum <= line("$")
@ -3474,12 +3487,14 @@ text...
:let lnum = lnum + 1 :let lnum = lnum + 1
:endwhile :endwhile
< <
NOTE: The ":append" and ":insert" commands don't work In |Vim9| script `:while` and `:endwhile` cannot be
properly inside a ":while" and ":for" loop. shortened, to improve script readability.
NOTE: The `:append` and `:insert` commands don't work
properly inside a `:while` and `:for` loop.
:for {var} in {object} *:for* *E690* *E732* :for {var} in {object} *:for* *E690* *E732*
:endfo[r] *:endfo* *:endfor* :endfo[r] *:endfo* *:endfor*
Repeat the commands between ":for" and ":endfor" for Repeat the commands between `:for` and `:endfor` for
each item in {object}. {object} can be a |List| or each item in {object}. {object} can be a |List| or
a |Blob|. *E1177* a |Blob|. *E1177*
@ -3489,7 +3504,7 @@ text...
global/window/tab/buffer variable. global/window/tab/buffer variable.
When an error is detected for a command inside the When an error is detected for a command inside the
loop, execution continues after the "endfor". loop, execution continues after the `endfor`.
Changing {object} inside the loop affects what items Changing {object} inside the loop affects what items
are used. Make a copy if this is unwanted: > are used. Make a copy if this is unwanted: >
:for item in copy(mylist) :for item in copy(mylist)
@ -3514,9 +3529,12 @@ text...
iterate over. Unlike with |List|, modifying the iterate over. Unlike with |List|, modifying the
|Blob| does not affect the iteration. |Blob| does not affect the iteration.
In |Vim9| script `:endfor` cannot be shortened, to
improve script readability.
:for [{var1}, {var2}, ...] in {listlist} :for [{var1}, {var2}, ...] in {listlist}
:endfo[r] *E1140* :endfo[r] *E1140*
Like ":for" above, but each item in {listlist} must be Like `:for` above, but each item in {listlist} must be
a list, of which each item is assigned to {var1}, a list, of which each item is assigned to {var1},
{var2}, etc. Example: > {var2}, etc. Example: >
:for [lnum, col] in [[1, 3], [2, 5], [3, 8]] :for [lnum, col] in [[1, 3], [2, 5], [3, 8]]
@ -3524,39 +3542,44 @@ text...
:endfor :endfor
< <
*:continue* *:con* *E586* *:continue* *:con* *E586*
:con[tinue] When used inside a ":while" or ":for" loop, jumps back :con[tinue] When used inside a `:while` or `:for` loop, jumps back
to the start of the loop. to the start of the loop.
If it is used after a |:try| inside the loop but If it is used after a `:try` inside the loop but
before the matching |:finally| (if present), the before the matching `:finally` (if present), the
commands following the ":finally" up to the matching commands following the `:finally` up to the matching
|:endtry| are executed first. This process applies to `:endtry` are executed first. This process applies to
all nested ":try"s inside the loop. The outermost all nested `:try`s inside the loop. The outermost
":endtry" then jumps back to the start of the loop. `:endtry` then jumps back to the start of the loop.
In |Vim9| script `:cont` is the shortest form, to
improve script readability.
*:break* *:brea* *E587* *:break* *:brea* *E587*
:brea[k] When used inside a ":while" or ":for" loop, skips to :brea[k] When used inside a `:while` or `:for` loop, skips to
the command after the matching ":endwhile" or the command after the matching `:endwhile` or
":endfor". `:endfor`.
If it is used after a |:try| inside the loop but If it is used after a `:try` inside the loop but
before the matching |:finally| (if present), the before the matching `:finally` (if present), the
commands following the ":finally" up to the matching commands following the `:finally` up to the matching
|:endtry| are executed first. This process applies to `:endtry` are executed first. This process applies to
all nested ":try"s inside the loop. The outermost all nested `:try`s inside the loop. The outermost
":endtry" then jumps to the command after the loop. `:endtry` then jumps to the command after the loop.
In |Vim9| script `:break` cannot be shortened, to
improve script readability.
:try *:try* *:endt* *:endtry* :try *:try* *:endt* *:endtry*
*E600* *E601* *E602* *E1032* *E600* *E601* *E602* *E1032*
:endt[ry] Change the error handling for the commands between :endt[ry] Change the error handling for the commands between
":try" and ":endtry" including everything being `:try` and `:endtry` including everything being
executed across ":source" commands, function calls, executed across `:source` commands, function calls,
or autocommand invocations. or autocommand invocations.
When an error or interrupt is detected and there is When an error or interrupt is detected and there is
a |:finally| command following, execution continues a `:finally` command following, execution continues
after the ":finally". Otherwise, or when the after the `:finally`. Otherwise, or when the
":endtry" is reached thereafter, the next `:endtry` is reached thereafter, the next
(dynamically) surrounding ":try" is checked for (dynamically) surrounding `:try` is checked for
a corresponding ":finally" etc. Then the script a corresponding `:finally` etc. Then the script
processing is terminated. Whether a function processing is terminated. Whether a function
definition has an "abort" argument does not matter. definition has an "abort" argument does not matter.
Example: > Example: >
@ -3564,9 +3587,9 @@ text...
echomsg "not reached" echomsg "not reached"
< <
Moreover, an error or interrupt (dynamically) inside Moreover, an error or interrupt (dynamically) inside
":try" and ":endtry" is converted to an exception. It `:try` and `:endtry` is converted to an exception. It
can be caught as if it were thrown by a |:throw| can be caught as if it were thrown by a `:throw`
command (see |:catch|). In this case, the script command (see `:catch`). In this case, the script
processing is not terminated. processing is not terminated.
The value "Vim:Interrupt" is used for an interrupt The value "Vim:Interrupt" is used for an interrupt
@ -3581,13 +3604,16 @@ text...
try | sleep 100 | catch /^Vim:Interrupt$/ | endtry try | sleep 100 | catch /^Vim:Interrupt$/ | endtry
try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
< <
In |Vim9| script `:endtry` cannot be shortened, to
improve script readability.
*:cat* *:catch* *:cat* *:catch*
*E603* *E604* *E605* *E654* *E1033* *E603* *E604* *E605* *E654* *E1033*
:cat[ch] /{pattern}/ The following commands until the next |:catch|, :cat[ch] /{pattern}/ The following commands until the next `:catch`,
|:finally|, or |:endtry| that belongs to the same `:finally`, or `:endtry` that belongs to the same
|:try| as the ":catch" are executed when an exception `:try` as the `:catch` are executed when an exception
matching {pattern} is being thrown and has not yet matching {pattern} is being thrown and has not yet
been caught by a previous ":catch". Otherwise, these been caught by a previous `:catch`. Otherwise, these
commands are skipped. commands are skipped.
When {pattern} is omitted all errors are caught. When {pattern} is omitted all errors are caught.
Examples: > Examples: >
@ -3609,29 +3635,35 @@ text...
NOTE: It is not reliable to ":catch" the TEXT of NOTE: It is not reliable to ":catch" the TEXT of
an error message because it may vary in different an error message because it may vary in different
locales. locales.
In |Vim9| script `:catch` cannot be shortened, to
improve script readability.
*:fina* *:finally* *E606* *E607* *:fina* *:finally* *E606* *E607*
:fina[lly] The following commands until the matching |:endtry| :fina[lly] The following commands until the matching `:endtry`
are executed whenever the part between the matching are executed whenever the part between the matching
|:try| and the ":finally" is left: either by falling `:try` and the `:finally` is left: either by falling
through to the ":finally" or by a |:continue|, through to the `:finally` or by a `:continue`,
|:break|, |:finish|, or |:return|, or by an error or `:break`, `:finish`, or `:return`, or by an error or
interrupt or exception (see |:throw|). interrupt or exception (see `:throw`).
In |Vim9| script `:finally` cannot be shortened, to
improve script readability and avoid confusion with
`:final`.
*:th* *:throw* *E608* *E1129* *:th* *:throw* *E608* *E1129*
:th[row] {expr1} The {expr1} is evaluated and thrown as an exception. :th[row] {expr1} The {expr1} is evaluated and thrown as an exception.
If the ":throw" is used after a |:try| but before the If the ":throw" is used after a `:try` but before the
first corresponding |:catch|, commands are skipped first corresponding `:catch`, commands are skipped
until the first ":catch" matching {expr1} is reached. until the first `:catch` matching {expr1} is reached.
If there is no such ":catch" or if the ":throw" is If there is no such `:catch` or if the ":throw" is
used after a ":catch" but before the |:finally|, the used after a `:catch` but before the `:finally`, the
commands following the ":finally" (if present) up to commands following the `:finally` (if present) up to
the matching |:endtry| are executed. If the ":throw" the matching `:endtry` are executed. If the `:throw`
is after the ":finally", commands up to the ":endtry" is after the `:finally`, commands up to the `:endtry`
are skipped. At the ":endtry", this process applies are skipped. At the ":endtry", this process applies
again for the next dynamically surrounding ":try" again for the next dynamically surrounding `:try`
(which may be found in a calling function or sourcing (which may be found in a calling function or sourcing
script), until a matching ":catch" has been found. script), until a matching `:catch` has been found.
If the exception is not caught, the command processing If the exception is not caught, the command processing
is terminated. is terminated.
Example: > Example: >
@ -3640,13 +3672,16 @@ text...
for when an error causes the parsing to skip the whole for when an error causes the parsing to skip the whole
line and not see the "|" that separates the commands. line and not see the "|" that separates the commands.
In |Vim9| script `:throw` cannot be shortened, to
improve script readability.
*:ec* *:echo* *:ec* *:echo*
:ec[ho] {expr1} .. Echoes each {expr1}, with a space in between. The :ec[ho] {expr1} .. Echoes each {expr1}, with a space in between. The
first {expr1} starts on a new line. first {expr1} starts on a new line.
Also see |:comment|. Also see |:comment|.
Use "\n" to start a new line. Use "\r" to move the Use "\n" to start a new line. Use "\r" to move the
cursor to the first column. cursor to the first column.
Uses the highlighting set by the |:echohl| command. Uses the highlighting set by the `:echohl` command.
Cannot be followed by a comment. Cannot be followed by a comment.
Example: > Example: >
:echo "the value of 'shell' is" &shell :echo "the value of 'shell' is" &shell
@ -3655,21 +3690,21 @@ text...
And since Vim mostly postpones redrawing until it's And since Vim mostly postpones redrawing until it's
finished with a sequence of commands this happens finished with a sequence of commands this happens
quite often. To avoid that a command from before the quite often. To avoid that a command from before the
":echo" causes a redraw afterwards (redraws are often `:echo` causes a redraw afterwards (redraws are often
postponed until you type something), force a redraw postponed until you type something), force a redraw
with the |:redraw| command. Example: > with the `:redraw` command. Example: >
:new | redraw | echo "there is a new window" :new | redraw | echo "there is a new window"
< <
*:echon* *:echon*
:echon {expr1} .. Echoes each {expr1}, without anything added. Also see :echon {expr1} .. Echoes each {expr1}, without anything added. Also see
|:comment|. |:comment|.
Uses the highlighting set by the |:echohl| command. Uses the highlighting set by the `:echohl` command.
Cannot be followed by a comment. Cannot be followed by a comment.
Example: > Example: >
:echon "the value of 'shell' is " &shell :echon "the value of 'shell' is " &shell
< <
Note the difference between using ":echo", which is a Note the difference between using `:echo`, which is a
Vim command, and ":!echo", which is an external shell Vim command, and `:!echo`, which is an external shell
command: > command: >
:!echo % --> filename :!echo % --> filename
< The arguments of ":!" are expanded, see |:_%|. > < The arguments of ":!" are expanded, see |:_%|. >
@ -3685,8 +3720,8 @@ text...
*:echoh* *:echohl* *:echoh* *:echohl*
:echoh[l] {name} Use the highlight group {name} for the following :echoh[l] {name} Use the highlight group {name} for the following
|:echo|, |:echon| and |:echomsg| commands. Also used `:echo`, `:echon` and `:echomsg` commands. Also used
for the |input()| prompt. Example: > for the `input()` prompt. Example: >
:echohl WarningMsg | echo "Don't panic!" | echohl None :echohl WarningMsg | echo "Don't panic!" | echohl None
< Don't forget to set the group back to "None", < Don't forget to set the group back to "None",
otherwise all following echo's will be highlighted. otherwise all following echo's will be highlighted.
@ -3695,14 +3730,14 @@ text...
:echom[sg] {expr1} .. Echo the expression(s) as a true message, saving the :echom[sg] {expr1} .. Echo the expression(s) as a true message, saving the
message in the |message-history|. message in the |message-history|.
Spaces are placed between the arguments as with the Spaces are placed between the arguments as with the
|:echo| command. But unprintable characters are `:echo` command. But unprintable characters are
displayed, not interpreted. displayed, not interpreted.
The parsing works slightly different from |:echo|, The parsing works slightly different from `:echo`,
more like |:execute|. All the expressions are first more like `:execute`. All the expressions are first
evaluated and concatenated before echoing anything. evaluated and concatenated before echoing anything.
If expressions does not evaluate to a Number or If expressions does not evaluate to a Number or
String, string() is used to turn it into a string. String, string() is used to turn it into a string.
Uses the highlighting set by the |:echohl| command. Uses the highlighting set by the `:echohl` command.
Example: > Example: >
:echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see." :echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see."
< See |:echo-redraw| to avoid the message disappearing < See |:echo-redraw| to avoid the message disappearing
@ -3712,12 +3747,12 @@ text...
message in the |message-history|. When used in a message in the |message-history|. When used in a
script or function the line number will be added. script or function the line number will be added.
Spaces are placed between the arguments as with the Spaces are placed between the arguments as with the
|:echomsg| command. When used inside a try conditional, `:echomsg` command. When used inside a try conditional,
the message is raised as an error exception instead the message is raised as an error exception instead
(see |try-echoerr|). (see |try-echoerr|).
Example: > Example: >
:echoerr "This script just failed!" :echoerr "This script just failed!"
< If you just want a highlighted message use |:echohl|. < If you just want a highlighted message use `:echohl`.
And to get a beep: > And to get a beep: >
:exe "normal \<Esc>" :exe "normal \<Esc>"

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 8.2. Last change: 2021 Jun 27 *gui.txt* For Vim version 8.2. Last change: 2022 Mar 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -147,7 +147,8 @@ task bar with the 'guiheadroom' option.
*:win* *:winsize* *E465* *:win* *:winsize* *E465*
:win[size] {width} {height} :win[size] {width} {height}
Set the window height to {width} by {height} characters. Set the window height to {width} by {height} characters.
Obsolete, use ":set lines=11 columns=22". It is recommended to use `:set lines=11 columns=22` instead,
since it's easy to see what the numbers mean.
If you get less lines than expected, check the 'guiheadroom' If you get less lines than expected, check the 'guiheadroom'
option. option.

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 8.2. Last change: 2022 Feb 09 *index.txt* For Vim version 8.2. Last change: 2022 Mar 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1170,7 +1170,7 @@ tag command action ~
be remapped be remapped
|:args| :ar[gs] print the argument list |:args| :ar[gs] print the argument list
|:argadd| :arga[dd] add items to the argument list |:argadd| :arga[dd] add items to the argument list
:argdedupe :argdedupe remove duplicates from the argument list |:argdedupe| :argded[upe] remove duplicates from the argument list
|:argdelete| :argd[elete] delete items from the argument list |:argdelete| :argd[elete] delete items from the argument list
|:argedit| :arge[dit] add item to the argument list and edit it |:argedit| :arge[dit] add item to the argument list and edit it
|:argdo| :argdo do a command on all items in the argument list |:argdo| :argdo do a command on all items in the argument list

View File

@ -1,4 +1,4 @@
*insert.txt* For Vim version 8.2. Last change: 2021 Dec 29 *insert.txt* For Vim version 8.2. Last change: 2022 Mar 06
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -283,8 +283,8 @@ start allow backspacing over the start position of insert; CTRL-W and
When 'backspace' is empty, Vi compatible backspacing is used. You cannot When 'backspace' is empty, Vi compatible backspacing is used. You cannot
backspace over autoindent, before column 1 or before where insert started. backspace over autoindent, before column 1 or before where insert started.
For backwards compatibility the values "0", "1" and "2" are also allowed, see For backwards compatibility the values "0", "1", "2" and "3" are also allowed,
|'backspace'|. see |'backspace'|.
If the 'backspace' option does contain "eol" and the cursor is in column 1 If the 'backspace' option does contain "eol" and the cursor is in column 1
when one of the three keys is used, the current line is joined with the when one of the three keys is used, the current line is joined with the
@ -818,6 +818,7 @@ CTRL-X CTRL-K Search the files given with the 'dictionary' option
the 'dictionary' option is empty. the 'dictionary' option is empty.
For suggestions where to find a list of words, see the For suggestions where to find a list of words, see the
'dictionary' option. 'dictionary' option.
'ignorecase', 'smartcase' and 'infercase' apply.
CTRL-K or CTRL-K or
CTRL-N Search forward for next matching keyword. This CTRL-N Search forward for next matching keyword. This

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.2. Last change: 2021 Sep 29 *intro.txt* For Vim version 8.2. Last change: 2022 Mar 03
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -701,7 +701,8 @@ Q Switch to "Ex" mode. This is a bit like typing ":"
Use the ":vi" command |:visual| to exit "Ex" mode. Use the ":vi" command |:visual| to exit "Ex" mode.
Note: In older versions of Vim "Q" formatted text, Note: In older versions of Vim "Q" formatted text,
that is now done with |gq|. But if you use the that is now done with |gq|. But if you use the
|vimrc_example.vim| script "Q" works like "gq". |vimrc_example.vim| script or |defaults.vim|, "Q"
works like "gq". Except for Select mode.
*gQ* *gQ*
gQ Switch to "Ex" mode like with "Q", but really behave gQ Switch to "Ex" mode like with "Q", but really behave

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 8.2. Last change: 2022 Jan 23 *map.txt* For Vim version 8.2. Last change: 2022 Mar 03
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -389,7 +389,7 @@ contain special characters like function keys.
1.3 MAPPING AND MODES *:map-modes* 1.3 MAPPING AND MODES *:map-modes*
*mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o* *mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o*
There are six sets of mappings There are seven sets of mappings
- For Normal mode: When typing commands. - For Normal mode: When typing commands.
- For Visual mode: When typing commands while the Visual area is highlighted. - For Visual mode: When typing commands while the Visual area is highlighted.
- For Select mode: like Visual mode but typing text replaces the selection. - For Select mode: like Visual mode but typing text replaces the selection.
@ -397,6 +397,7 @@ There are six sets of mappings
etc.). See below: |omap-info|. etc.). See below: |omap-info|.
- For Insert mode. These are also used in Replace mode. - For Insert mode. These are also used in Replace mode.
- For Command-line mode: When entering a ":" or "/" command. - For Command-line mode: When entering a ":" or "/" command.
- For Terminal mode: When typing in a |:terminal| buffer.
Special case: While typing a count for a command in Normal mode, mapping zero Special case: While typing a count for a command in Normal mode, mapping zero
is disabled. This makes it possible to map zero without making it impossible is disabled. This makes it possible to map zero without making it impossible
@ -1446,7 +1447,7 @@ See |:verbose-cmd| for more information.
Command attributes ~ Command attributes ~
*command-attributes*
User-defined commands are treated by Vim just like any other Ex commands. They User-defined commands are treated by Vim just like any other Ex commands. They
can have arguments, or have a range specified. Arguments are subject to can have arguments, or have a range specified. Arguments are subject to
completion as filenames, buffers, etc. Exactly how this works depends upon the completion as filenames, buffers, etc. Exactly how this works depends upon the
@ -1563,9 +1564,11 @@ The function arguments are:
The function may use these for determining context. For the "custom" The function may use these for determining context. For the "custom"
argument, it is not necessary to filter candidates against the (implicit argument, it is not necessary to filter candidates against the (implicit
pattern in) ArgLead. Vim will filter the candidates with its regexp engine pattern in) ArgLead. Vim will filter the candidates with its regexp engine
after function return, and this is probably more efficient in most cases. For after function return, and this is probably more efficient in most cases. If
the "customlist" argument, Vim will not filter the returned completion 'wildoptions' contains "fuzzy", then the candidates will be filtered using
candidates and the user supplied function should filter the candidates. |fuzzy-matching|. For the "customlist" argument, Vim will not
filter the returned completion candidates and the user supplied function
should filter the candidates.
The following example lists user names to a Finger command > The following example lists user names to a Finger command >
:com -complete=custom,ListUsers -nargs=1 Finger !finger <args> :com -complete=custom,ListUsers -nargs=1 Finger !finger <args>

View File

@ -9087,7 +9087,7 @@ A jump table for the options with a short description can be found at |Q_op|.
feature} feature}
A list of words that change how |cmdline-completion| is done. A list of words that change how |cmdline-completion| is done.
The following values are supported: The following values are supported:
fuzzy Use fuzzy matching to find completion matches. When fuzzy Use |fuzzy-matching| to find completion matches. When
this value is specified, wildcard expansion will not this value is specified, wildcard expansion will not
be used for completion. The matches will be sorted by be used for completion. The matches will be sorted by
the "best match" rather than alphabetically sorted. the "best match" rather than alphabetically sorted.

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 8.2. Last change: 2022 Feb 04 *pattern.txt* For Vim version 8.2. Last change: 2022 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -19,7 +19,7 @@ explanations are in chapter 27 |usr_27.txt|.
8. Composing characters |patterns-composing| 8. Composing characters |patterns-composing|
9. Compare with Perl patterns |perl-patterns| 9. Compare with Perl patterns |perl-patterns|
10. Highlighting matches |match-highlight| 10. Highlighting matches |match-highlight|
11. Fuzzy matching |fuzzy-match| 11. Fuzzy matching |fuzzy-matching|
============================================================================== ==============================================================================
1. Search commands *search-commands* 1. Search commands *search-commands*
@ -164,9 +164,12 @@ index, on which the cursor is. This can look like this: >
Note: the count does not take offset into account. Note: the count does not take offset into account.
When no match is found you get the error: *E486* Pattern not found When no match is found you get the error: *E486* Pattern not found
Note that for the |:global| command this behaves like a normal message, for Vi Note that for the `:global` command, when used in legacy script, you get a
compatibility. For the |:s| command the "e" flag can be used to avoid the normal message "Pattern not found", for Vi compatibility.
error message |:s_flags|. In |Vim9| script you get E486 for "pattern not found" or *E538* when the pattern
matches in every line with `:vglobal`.
For the |:s| command the "e" flag can be used to avoid the error message
|:s_flags|.
*search-offset* *{offset}* *search-offset* *{offset}*
These commands search for the specified pattern. With "/" and "?" an These commands search for the specified pattern. With "/" and "?" an
@ -1457,7 +1460,7 @@ Finally, these constructs are unique to Perl:
":2match" for another plugin. ":2match" for another plugin.
============================================================================== ==============================================================================
11. Fuzzy matching *fuzzy-match* 11. Fuzzy matching *fuzzy-matching*
Fuzzy matching refers to matching strings using a non-exact search string. Fuzzy matching refers to matching strings using a non-exact search string.
Fuzzy matching will match a string, if all the characters in the search string Fuzzy matching will match a string, if all the characters in the search string

View File

@ -655,22 +655,25 @@ instead. If the buffer in the used window has changed, and the error is in
another file, jumping to the error will fail. You will first have to make another file, jumping to the error will fail. You will first have to make
sure the window contains a buffer which can be abandoned. sure the window contains a buffer which can be abandoned.
The following steps are used to find a window to open the file selected from When you select a file from the quickfix window, the following steps are used
the quickfix window: to find a window to edit the file:
1. If 'switchbuf' contains "usetab", then find a window in any tabpage
(starting with the first tabpage) that has the selected file and jump to 1. If a window displaying the selected file is present in the current tabpage
it. (starting with the window before the quickfix window), then that window is
2. Otherwise find a window displaying the selected file in the current tab used.
page (starting with the window before the quickfix window) and use it. 2. If the above step fails and if 'switchbuf' contains "usetab" and a window
3. Otherwise find a window displaying a normal buffer ('buftype' is empty) displaying the selected file is present in any one of the tabpages
starting with the window before the quickfix window. If a window is found, (starting with the first tabpage) then that window is used.
open the file in that window. 3. If the above step fails then a window in the current tabpage displaying a
4. If a usable window is not found and 'switchbuf' contains "uselast", then buffer with 'buftype' not set (starting with the window before the quickfix
open the file in the last used window. window) is used.
5. Otherwise open the file in the window before the quickfix window. If there 4. If the above step fails and if 'switchbuf' contains "uselast", then the
is no previous window, then open the file in the next window. previously accessed window is used.
6. If a usable window is not found in the above steps, then create a new 5. If the above step fails then the window before the quickfix window is used.
horizontally split window above the quickfix window and open the file. If there is no previous window, then the window after the quickfix window
is used.
6. If the above step fails, then a new horizontally split window above the
quickfix window is used.
*CTRL-W_<Enter>* *CTRL-W_<CR>* *CTRL-W_<Enter>* *CTRL-W_<CR>*
You can use CTRL-W <Enter> to open a new window and jump to the error there. You can use CTRL-W <Enter> to open a new window and jump to the error there.
@ -710,13 +713,15 @@ this window, the displayed location list is used.
When you select a file from the location list window, the following steps are When you select a file from the location list window, the following steps are
used to find a window to edit the file: used to find a window to edit the file:
1. If a window with the location list displayed in the location list window is 1. If a non-quickfix window associated with the location list is present in
present, then the file is opened in that window. the current tabpage, then that window is used.
2. If the above step fails and if the file is already opened in another 2. If the above step fails and if the file is already opened in another window
window, then that window is used. in the current tabpage, then that window is used.
3. If the above step fails then an existing window showing a buffer with 3. If the above step fails and 'switchbuf' contains "usetab" and if the file
'buftype' not set is used. is opened in a window in any one of the tabpages, then that window is used.
4. If the above step fails, then the file is edited in a new window. 4. If the above step fails then a window in the current tabpage showing a
buffer with 'buftype' not set is used.
5. If the above step fails, then the file is edited in a new window.
In all of the above cases, if the location list for the selected window is not In all of the above cases, if the location list for the selected window is not
yet set, then it is set to the location list displayed in the location list yet set, then it is set to the location list displayed in the location list
@ -1055,7 +1060,7 @@ commands can be combined to create a NewGrep command: >
matching is used to find matching lines. In this matching is used to find matching lines. In this
case, {pattern} is treated as a literal string case, {pattern} is treated as a literal string
instead of a regular expression. See instead of a regular expression. See
|fuzzy-match| for more information about fuzzy |fuzzy-matching| for more information about fuzzy
matching strings. matching strings.
|QuickFixCmdPre| and |QuickFixCmdPost| are triggered. |QuickFixCmdPre| and |QuickFixCmdPost| are triggered.

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.2. Last change: 2022 Feb 06 *syntax.txt* For Vim version 8.2. Last change: 2022 Mar 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -4452,7 +4452,7 @@ Leading context *:syn-lc* *:syn-leading* *:syn-context*
Note: This is an obsolete feature, only included for backwards compatibility Note: This is an obsolete feature, only included for backwards compatibility
with previous Vim versions. It's now recommended to use the |/\@<=| construct with previous Vim versions. It's now recommended to use the |/\@<=| construct
in the pattern. in the pattern. You can also often use |/\zs|.
The "lc" offset specifies leading context -- a part of the pattern that must The "lc" offset specifies leading context -- a part of the pattern that must
be present, but is not considered part of the match. An offset of "lc=n" will be present, but is not considered part of the match. An offset of "lc=n" will

View File

@ -2113,6 +2113,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:abclear map.txt /*:abclear* :abclear map.txt /*:abclear*
:abo windows.txt /*:abo* :abo windows.txt /*:abo*
:aboveleft windows.txt /*:aboveleft* :aboveleft windows.txt /*:aboveleft*
:abstract vim9.txt /*:abstract*
:addd quickfix.txt /*:addd* :addd quickfix.txt /*:addd*
:al windows.txt /*:al* :al windows.txt /*:al*
:all windows.txt /*:all* :all windows.txt /*:all*
@ -2272,6 +2273,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:chistory quickfix.txt /*:chistory* :chistory quickfix.txt /*:chistory*
:cl quickfix.txt /*:cl* :cl quickfix.txt /*:cl*
:cla quickfix.txt /*:cla* :cla quickfix.txt /*:cla*
:class vim9.txt /*:class*
:clast quickfix.txt /*:clast* :clast quickfix.txt /*:clast*
:cle motion.txt /*:cle* :cle motion.txt /*:cle*
:clearjumps motion.txt /*:clearjumps* :clearjumps motion.txt /*:clearjumps*
@ -2444,12 +2446,15 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:emenu gui.txt /*:emenu* :emenu gui.txt /*:emenu*
:en eval.txt /*:en* :en eval.txt /*:en*
:end eval.txt /*:end* :end eval.txt /*:end*
:endclass vim9.txt /*:endclass*
:enddef vim9.txt /*:enddef* :enddef vim9.txt /*:enddef*
:endenum vim9.txt /*:endenum*
:endf eval.txt /*:endf* :endf eval.txt /*:endf*
:endfo eval.txt /*:endfo* :endfo eval.txt /*:endfo*
:endfor eval.txt /*:endfor* :endfor eval.txt /*:endfor*
:endfunction eval.txt /*:endfunction* :endfunction eval.txt /*:endfunction*
:endif eval.txt /*:endif* :endif eval.txt /*:endif*
:endinterface vim9.txt /*:endinterface*
:endt eval.txt /*:endt* :endt eval.txt /*:endt*
:endtry eval.txt /*:endtry* :endtry eval.txt /*:endtry*
:endw eval.txt /*:endw* :endw eval.txt /*:endw*
@ -2458,6 +2463,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:ene! editing.txt /*:ene!* :ene! editing.txt /*:ene!*
:enew editing.txt /*:enew* :enew editing.txt /*:enew*
:enew! editing.txt /*:enew!* :enew! editing.txt /*:enew!*
:enum vim9.txt /*:enum*
:eval eval.txt /*:eval* :eval eval.txt /*:eval*
:ex editing.txt /*:ex* :ex editing.txt /*:ex*
:exe eval.txt /*:exe* :exe eval.txt /*:exe*
@ -2584,6 +2590,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:inoreme gui.txt /*:inoreme* :inoreme gui.txt /*:inoreme*
:inoremenu gui.txt /*:inoremenu* :inoremenu gui.txt /*:inoremenu*
:insert insert.txt /*:insert* :insert insert.txt /*:insert*
:interface vim9.txt /*:interface*
:intro starting.txt /*:intro* :intro starting.txt /*:intro*
:is tagsrch.txt /*:is* :is tagsrch.txt /*:is*
:isearch tagsrch.txt /*:isearch* :isearch tagsrch.txt /*:isearch*
@ -3216,6 +3223,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:startgreplace insert.txt /*:startgreplace* :startgreplace insert.txt /*:startgreplace*
:startinsert insert.txt /*:startinsert* :startinsert insert.txt /*:startinsert*
:startreplace insert.txt /*:startreplace* :startreplace insert.txt /*:startreplace*
:static vim9.txt /*:static*
:stj tagsrch.txt /*:stj* :stj tagsrch.txt /*:stj*
:stjump tagsrch.txt /*:stjump* :stjump tagsrch.txt /*:stjump*
:stop starting.txt /*:stop* :stop starting.txt /*:stop*
@ -3393,6 +3401,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:tunma map.txt /*:tunma* :tunma map.txt /*:tunma*
:tunmap map.txt /*:tunmap* :tunmap map.txt /*:tunmap*
:tunmenu gui.txt /*:tunmenu* :tunmenu gui.txt /*:tunmenu*
:type vim9.txt /*:type*
:u undo.txt /*:u* :u undo.txt /*:u*
:un undo.txt /*:un* :un undo.txt /*:un*
:una map.txt /*:una* :una map.txt /*:una*
@ -4022,6 +4031,7 @@ E1061 vim9.txt /*E1061*
E1062 eval.txt /*E1062* E1062 eval.txt /*E1062*
E1063 eval.txt /*E1063* E1063 eval.txt /*E1063*
E1064 autocmd.txt /*E1064* E1064 autocmd.txt /*E1064*
E1065 vim9.txt /*E1065*
E1066 vim9.txt /*E1066* E1066 vim9.txt /*E1066*
E1067 eval.txt /*E1067* E1067 eval.txt /*E1067*
E1068 vim9.txt /*E1068* E1068 vim9.txt /*E1068*
@ -4034,6 +4044,8 @@ E1074 vim9.txt /*E1074*
E1075 vim9.txt /*E1075* E1075 vim9.txt /*E1075*
E1076 eval.txt /*E1076* E1076 eval.txt /*E1076*
E1077 vim9.txt /*E1077* E1077 vim9.txt /*E1077*
E1078 autocmd.txt /*E1078*
E1079 vim9.txt /*E1079*
E108 eval.txt /*E108* E108 eval.txt /*E108*
E1080 vim9.txt /*E1080* E1080 vim9.txt /*E1080*
E1081 eval.txt /*E1081* E1081 eval.txt /*E1081*
@ -4241,6 +4253,7 @@ E1264 vim9.txt /*E1264*
E1265 eval.txt /*E1265* E1265 eval.txt /*E1265*
E1266 if_pyth.txt /*E1266* E1266 if_pyth.txt /*E1266*
E127 eval.txt /*E127* E127 eval.txt /*E127*
E1270 change.txt /*E1270*
E128 eval.txt /*E128* E128 eval.txt /*E128*
E129 eval.txt /*E129* E129 eval.txt /*E129*
E13 message.txt /*E13* E13 message.txt /*E13*
@ -4682,7 +4695,7 @@ E534 options.txt /*E534*
E535 options.txt /*E535* E535 options.txt /*E535*
E536 options.txt /*E536* E536 options.txt /*E536*
E537 options.txt /*E537* E537 options.txt /*E537*
E538 builtin.txt /*E538* E538 pattern.txt /*E538*
E539 options.txt /*E539* E539 options.txt /*E539*
E54 pattern.txt /*E54* E54 pattern.txt /*E54*
E540 options.txt /*E540* E540 options.txt /*E540*
@ -5005,6 +5018,7 @@ E835 options.txt /*E835*
E836 if_pyth.txt /*E836* E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837* E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838* E838 netbeans.txt /*E838*
E839 vim9.txt /*E839*
E84 windows.txt /*E84* E84 windows.txt /*E84*
E840 insert.txt /*E840* E840 insert.txt /*E840*
E841 map.txt /*E841* E841 map.txt /*E841*
@ -6164,6 +6178,7 @@ collate-variable eval.txt /*collate-variable*
color-xterm syntax.txt /*color-xterm* color-xterm syntax.txt /*color-xterm*
coloring syntax.txt /*coloring* coloring syntax.txt /*coloring*
colortest.vim syntax.txt /*colortest.vim* colortest.vim syntax.txt /*colortest.vim*
command-attributes map.txt /*command-attributes*
command-block vim9.txt /*command-block* command-block vim9.txt /*command-block*
command-line-functions usr_41.txt /*command-line-functions* command-line-functions usr_41.txt /*command-line-functions*
command-line-window cmdline.txt /*command-line-window* command-line-window cmdline.txt /*command-line-window*
@ -7012,7 +7027,7 @@ function-range-example eval.txt /*function-range-example*
function-search-undo eval.txt /*function-search-undo* function-search-undo eval.txt /*function-search-undo*
function_key intro.txt /*function_key* function_key intro.txt /*function_key*
functions eval.txt /*functions* functions eval.txt /*functions*
fuzzy-match pattern.txt /*fuzzy-match* fuzzy-matching pattern.txt /*fuzzy-matching*
fvwm.vim syntax.txt /*fvwm.vim* fvwm.vim syntax.txt /*fvwm.vim*
fvwm2rc syntax.txt /*fvwm2rc* fvwm2rc syntax.txt /*fvwm2rc*
fvwmrc syntax.txt /*fvwmrc* fvwmrc syntax.txt /*fvwmrc*

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 8.2. Last change: 2021 Dec 21 *term.txt* For Vim version 8.2. Last change: 2022 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -725,12 +725,12 @@ size is wrong you can use the 'lines' and 'columns' options to set the
correct values. correct values.
One command can be used to set the screen size: One command can be used to set the screen size:
*:mod* *:mode* *E359* *:mod* *:mode* *E359*
:mod[e] [mode] :mod[e] [mode]
Without argument this only detects the screen size and redraws the screen. Without argument this only detects the screen size and redraws the screen.
[mode] was used on MS-DOS, but it doesn't work anymore. [mode] was used on MS-DOS, but it doesn't work anymore. In |Vim9| this
command is not supported.
============================================================================== ==============================================================================
4. Slow and fast terminals *slow-fast-terminal* 4. Slow and fast terminals *slow-fast-terminal*

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2022 Feb 16 *todo.txt* For Vim version 8.2. Last change: 2022 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -38,10 +38,29 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- 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?
Once Vim9 is stable: Once Vim9 is stable:
- Use Vim9 for runtime files. - Use Vim9 for runtime files.
- Check code coverage, add more tests if needed. - Check code coverage, add more tests if needed.
vim9execute.c vim9execute.c line 1900
vim9expr.c vim9expr.c
vim9instr.c vim9instr.c
vim9script.c vim9script.c
@ -209,6 +228,13 @@ Use CTRL-R to specify the register to use. (#9531)
Some prompts are not translated: #9495 Some prompts are not translated: #9495
Improvement in terminal configuration mess: Request the terminfo entry from
the terminal itself. The $TERM value then is only relevant for whether this
feature is supported or not. Replaces the xterm mechanism to request each
entry separately. #6609
Multiplexers (screen, tmux) can request it to the underlaying terminal, and
pass it on with modifications.
Test_communicate_ipv6(): is flaky on many systems Test_communicate_ipv6(): is flaky on many systems
Fails in line 64 of Ch_communicate, no exception is thrown. Fails in line 64 of Ch_communicate, no exception is thrown.
@ -286,6 +312,9 @@ Probably because it's using MAXCOL. #8238
Make "g>" and "g<" in Visual mode move the text right or left. Make "g>" and "g<" in Visual mode move the text right or left.
Also for a block selection. #8558 Also for a block selection. #8558
When using dictionary insert completion with 'ignorecase', the leading capital
in a word should be preserved.
Add optional argument to virtcol() that specifies "start", "cursor" or "end" Add optional argument to virtcol() that specifies "start", "cursor" or "end"
to tell which value from getvvcol() should be used. (#7964) to tell which value from getvvcol() should be used. (#7964)
Value returned by virtcol() changes depending on how lines wrap. This is Value returned by virtcol() changes depending on how lines wrap. This is

View File

@ -1,4 +1,4 @@
*uganda.txt* For Vim version 8.2. Last change: 2022 Feb 05 *uganda.txt* For Vim version 8.2. Last change: 2022 Mar 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -133,11 +133,12 @@ Kibaale Children's Centre *kcc* *Kibaale* *charity*
Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the
south of Uganda, near Tanzania, in East Africa. The area is known as Rakai south of Uganda, near Tanzania, in East Africa. The area is known as Rakai
District. The population is mostly farmers. Although people are poor, there District. The population is mostly farmers. Although people are poor, there
is enough food. But this district is suffering from AIDS more than any other usually is enough food. But this district is suffering from AIDS more than
part of the world. Some say that it started there. Estimations are that 10 any other part of the world. Some say that it started there. Estimations are
to 30% of the Ugandans are infected with HIV. Because parents die, there are that in the past 10 to 30% of the Ugandans are infected with HIV. Because
many orphans. In this district about 60,000 children have lost one or both parents die, there are many orphans. In this district about 60,000 children
parents, out of a population of 350,000. And this is still continuing. have lost one or both parents, out of a population of 350,000. Although AIDS
is now mostly under control, the problems are still continuing.
The children need a lot of help. The KCC is working hard to provide the needy The children need a lot of help. The KCC is working hard to provide the needy
with food, medical care and education. Food and medical care to keep them with food, medical care and education. Food and medical care to keep them

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 8.2. Last change: 2022 Feb 03 *various.txt* For Vim version 8.2. Last change: 2022 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -114,6 +114,7 @@ g8 Print the hex values of the bytes used in the
:[range]P[rint] [count] [flags] :[range]P[rint] [count] [flags]
Just as ":print". Was apparently added to Vi for Just as ":print". Was apparently added to Vi for
people that keep the shift key pressed too long... people that keep the shift key pressed too long...
This command is not supported in |Vim9| script.
Note: A user command can overrule this command. Note: A user command can overrule this command.
See |ex-flags| for [flags]. See |ex-flags| for [flags].

View File

@ -14965,7 +14965,7 @@ Solution: Adjust autoconf. (lilydjwg)
Files: src/configure.in, src/auto/configure Files: src/configure.in, src/auto/configure
Patch 7.3.806 Patch 7.3.806
Problem: Compiler warnings in Perl code when building with Visual studio Problem: Compiler warnings in Perl code when building with Visual Studio
2012. (skeept) 2012. (skeept)
Solution: Add type casts. (Christian Brabandt, 2013 Jan 30) Solution: Add type casts. (Christian Brabandt, 2013 Jan 30)
Files: src/if_perl.xs Files: src/if_perl.xs

View File

@ -7916,7 +7916,7 @@ Solution: Put remainder of message back in the queue.
Files: src/channel.c Files: src/channel.c
Patch 7.4.1240 Patch 7.4.1240
Problem: Visual studio tools are noisy. Problem: Visual Studio tools are noisy.
Solution: Suppress startup info. (Mike Williams) Solution: Suppress startup info. (Mike Williams)
Files: src/GvimExt/Makefile, src/Make_mvc.mak, src/tee/Make_mvc.mak Files: src/GvimExt/Makefile, src/Make_mvc.mak, src/tee/Make_mvc.mak
@ -20476,7 +20476,7 @@ Files: src/normal.c, src/misc2.c, src/Makefile,
src/testdir/test_virtualedit.vim, src/testdir/test_alot.vim src/testdir/test_virtualedit.vim, src/testdir/test_alot.vim
Patch 8.0.0963 Patch 8.0.0963
Problem: Terminal test fails on MacOS. (chdiza) Problem: Terminal test fails on macOS. (chdiza)
Solution: Wait for the shell to echo the characters. (closes #1991) Solution: Wait for the shell to echo the characters. (closes #1991)
Files: src/testdir/test_terminal.vim Files: src/testdir/test_terminal.vim
@ -31038,7 +31038,7 @@ Files: src/ui.c, src/testdir/test_timers.vim, src/gui_gtk_x11.c,
src/gui_w32.c, src/gui_photon.c, src/gui_x11.c src/gui_w32.c, src/gui_photon.c, src/gui_x11.c
Patch 8.1.0841 Patch 8.1.0841
Problem: Travis config to get Lua on MacOS is too complicated. Problem: Travis config to get Lua on macOS is too complicated.
Solution: Use an addons entry. (Ozaki Kiichi, closes #3876) Solution: Use an addons entry. (Ozaki Kiichi, closes #3876)
Files: .travis.yml Files: .travis.yml
@ -39471,7 +39471,7 @@ Solution: Add to the list of flaky tests.
Files: src/testdir/runtest.vim Files: src/testdir/runtest.vim
Patch 8.1.2152 Patch 8.1.2152
Problem: Problems navigating tags file on MacOS Catalina. Problem: Problems navigating tags file on macOS Catalina.
Solution: Use fseek instead of lseek. (John Lamb, fixes #5061) Solution: Use fseek instead of lseek. (John Lamb, fixes #5061)
Files: src/tag.c Files: src/tag.c
@ -40648,7 +40648,7 @@ Solution: Allow key codes when fetching argument for CTRL-R. (closes #5266)
Files: src/edit.c, src/ex_getln.c, src/testdir/test_termcodes.vim Files: src/edit.c, src/ex_getln.c, src/testdir/test_termcodes.vim
Patch 8.1.2347 (after 8.1.2344) Patch 8.1.2347 (after 8.1.2344)
Problem: MacOS: build fails. Problem: macOS: build fails.
Solution: Don't define _XOPEN_SOURCE for Mac. Solution: Don't define _XOPEN_SOURCE for Mac.
Files: src/vim.h Files: src/vim.h

View File

@ -1,4 +1,4 @@
*version9.txt* For Vim version 8.2. Last change: 2022 Feb 26 *version9.txt* For Vim version 8.2. Last change: 2022 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -68,7 +68,133 @@ All the information about Vim9 script can be found in the |Vim9| help file.
Various new items *new-items-9* Various new items *new-items-9*
----------------- -----------------
TODO TODO: Visual/Insert/Cmdline mode commands?
Options: ~
'autoshelldir' change directory to the shell's current directory
'cdhome' change directory to the home directory by ":cd"
'guiligatures' GTK GUI: ASCII characters that can form shapes
'quickfixtextfunc' function for the text in the quickfix window
'spelloptions' options for spell checking
'thesaurusfunc' function to be used for thesaurus completion
'xtermcodes' request terminal codes from an xterm
Ex commands: ~
|:abstract|
|:argdedupe| remove duplicates from the argument list
|:balt| like ":badd" but also set the alternate file
|:class| reserved for future use
|:def| define a Vim9 user function
|:defcompile| compile Vim9 user functions in current script
|:disassemble| disassemble Vim9 user function
|:echoconsole| like :echomsg but write to stdout
|:endinterface| reserved for future use
|:endclass| reserved for future use
|:enddef| end of a user function started with :def
|:endenum| reserved for future use
|:enum| reserved for future use
|:export| Vim9: export an item from a script
|:final| declare an immutable variable in Vim9
|:import| Vim9: import an item from another script
|:interface| reserved for future use
|:static| reserved for future use
|:type| reserved for future use
|:var| variable declaration in Vim9
|:vim9script| indicates Vim9 script file
Ex command modifiers: ~
|:legacy| make following command use legacy script syntax
|:vim9cmd| make following command use Vim9 script syntax
New and extended functions: ~
|assert_nobeep()| assert that a command does not cause a beep
|blob2list()| get a list of numbers from a blob
|charclass()| class of a character
|charcol()| character number of the cursor or a mark
|charidx()| character index of a byte in a string
|digraph_get()| get digraph
|digraph_getlist()| get all digraphs
|digraph_set()| register digraph
|digraph_setlist()| register multiple digraphs
|echoraw()| output characters as-is
|exists_compiled()| like exists() but check at compile time
|extendnew()| make a new Dictionary and append items
|flatten()| flatten a List
|flattennew()| flatten a copy of a List
|fullcommand()| get full command name
|getcharpos()| get character position of cursor, mark, etc.
|getcharstr()| get a character from the user as a string
|getcursorcharpos()| get character position of the cursor
|getmarklist()| list of global/local marks
|getreginfo()| get information about a register
|gettext()| lookup message translation
|hlget()| get highlight group attributes
|hlset()| set highlight group attributes
|list2blob()| get a blob from a list of numbers
|mapnew()| make a new List with changed items
|mapset()| restore a mapping
|matchfuzzy()| fuzzy matches a string in a list of strings
|matchfuzzypos()| fuzzy matches a string in a list of strings
|menu_info()| get information about a menu item
|popup_list()| get list of all popup window IDs
|prompt_getprompt()| get the effective prompt text for a buffer
|prop_add_list()| attach a property at multiple positions
|prop_find()| search for a property
|readblob()| read a file into a Blob
|readdirex()| get a List of file information in a directory
|reduce()| reduce a List to a value
|searchcount()| get number of matches before/after the cursor
|setcellwidths()| set character cell width overrides
|setcharpos()| set character position of cursor, mark, etc.
|setcursorcharpos()| set character position of the cursor
|slice()| take a slice of a List
|strcharlen()| length of a string in characters
|terminalprops()| properties of the terminal
|test_gui_event()| generate a GUI event for testing
|test_null_function()| return a null Funcref
|test_srand_seed()| set the seed value for srand()
|test_unknown()| return a value with unknown type
|test_void()| return a value with void type
|typename()| type of a variable as text
|win_gettype()| get type of window
|win_move_separator()| move window vertical separator
|win_move_statusline()| move window status line
|windowsversion()| get MS-Windows version
New Vim variables: ~
|v:numbermax| maximum value of a number
|v:numbermin| minimum value of a number (negative)
|v:numbersize| number of bits in a Number
|v:collate| current locale setting for collation order
|v:exiting| vim exit code
|v:colornames| dictionary that maps color names to hex color strings
|v:sizeofint| number of bytes in an int
|v:sizeoflong| number of bytes in a long
|v:sizeofpointer| number of bytes in a pointer
|v:maxcol| maximum line length
New autocommand events: ~
|CompleteDonePre| after Insert mode completion is done, before clearing
info
|DirChangedPre| before the working directory will change
|InsertLeavePre| just before leaving Insert mode
|ModeChanged| after changing the mode
|SigUSR1| after the SIGUSR1 signal has been detected
|WinClosed| after closing a window
|VimSuspend| when suspending Vim
|VimResume| when Vim is resumed after being suspended
New runtime files: ~ New runtime files: ~
@ -86,6 +212,9 @@ TODO
============================================================================== ==============================================================================
IMPROVEMENTS *improvements-9* IMPROVEMENTS *improvements-9*
Many memory leaks, invalid memory accesses and crashes have been fixed.
See the list of patches below.
TODO TODO
============================================================================== ==============================================================================
@ -227,7 +356,7 @@ Solution: Add tests. (Dominique Pellé, closes #5366)
Files: src/testdir/test_termcodes.vim Files: src/testdir/test_termcodes.vim
Patch 8.2.0021 Patch 8.2.0021
Problem: Timer test fails too often on Travis with MacOS. Problem: Timer test fails too often on Travis with macOS.
Solution: Be less strict with the time. Solution: Be less strict with the time.
Files: src/testdir/test_timers.vim Files: src/testdir/test_timers.vim
@ -8651,7 +8780,7 @@ Files: runtime/doc/vim9.txt, src/vim9compile.c,
src/testdir/test_vim9_disassemble.vim src/testdir/test_vim9_disassemble.vim
Patch 8.2.1409 Patch 8.2.1409
Problem: Nmpmrc and php.ini filetypes not recognized. Problem: Npmrc and php.ini filetypes not recognized.
Solution: Add filetype detection. (Doug Kearns) Solution: Add filetype detection. (Doug Kearns)
Files: runtime/filetype.vim, src/testdir/test_filetype.vim Files: runtime/filetype.vim, src/testdir/test_filetype.vim
@ -9053,7 +9182,7 @@ Solution: Recognize .gawk files. (Doug Kearns)
Files: runtime/filetype.vim, src/testdir/test_filetype.vim Files: runtime/filetype.vim, src/testdir/test_filetype.vim
Patch 8.2.1459 Patch 8.2.1459
Problem: Vim9: declaring ascript variable at the script level does not Problem: Vim9: declaring a script variable at the script level does not
infer the type. infer the type.
Solution: Get the type from the value. (closes #6716) Solution: Get the type from the value. (closes #6716)
Files: src/evalvars.c, src/testdir/test_vim9_script.vim Files: src/evalvars.c, src/testdir/test_vim9_script.vim
@ -9522,7 +9651,7 @@ Files: Filelist, runtime/doc/eval.txt, runtime/doc/usr_41.txt,
src/testdir/emoji_list.vim, src/testdir/test_functions.vim src/testdir/emoji_list.vim, src/testdir/test_functions.vim
Patch 8.2.1537 Patch 8.2.1537
Problem: Memory acccess error when using setcellwidths(). Problem: Memory access error when using setcellwidths().
Solution: Use array and pointers correctly. Solution: Use array and pointers correctly.
Files: src/mbyte.c, src/errors.h, src/testdir/test_utf8.vim Files: src/mbyte.c, src/errors.h, src/testdir/test_utf8.vim
@ -9841,7 +9970,7 @@ Solution: Use tv_get_bool_chk(). (closes #6865)
Files: src/evalfunc.c, src/testdir/test_vim9_func.vim Files: src/evalfunc.c, src/testdir/test_vim9_func.vim
Patch 8.2.1593 Patch 8.2.1593
Problem: Tests do not check the error number properly.0 Problem: Tests do not check the error number properly.
Solution: Add a colon after the error number. (closes #6869) Solution: Add a colon after the error number. (closes #6869)
Files: src/testdir/test_assert.vim, src/testdir/test_autocmd.vim, Files: src/testdir/test_assert.vim, src/testdir/test_autocmd.vim,
src/testdir/test_backspace_opt.vim, src/testdir/test_channel.vim, src/testdir/test_backspace_opt.vim, src/testdir/test_channel.vim,
@ -10198,7 +10327,7 @@ Files: runtime/optwin.vim
Patch 8.2.1653 Patch 8.2.1653
Problem: Expand('<stack>') does not include the final line number. Problem: Expand('<stack>') does not include the final line number.
Solution: Add the line nuber. (closes #6927) Solution: Add the line number. (closes #6927)
Files: src/vim.h, src/scriptfile.c, src/proto/scriptfile.pro, Files: src/vim.h, src/scriptfile.c, src/proto/scriptfile.pro,
src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/message.c, src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/message.c,
src/testing.c, src/testdir/test_expand_func.vim src/testing.c, src/testdir/test_expand_func.vim
@ -10299,7 +10428,7 @@ Files: src/memline.c, src/option.c
Patch 8.2.1671 Patch 8.2.1671
Problem: Vim9: stray error for missing white space. Problem: Vim9: stray error for missing white space.
Solution: Do not skip over white space after member. (closes #6817) Solution: Do not skip over white space after member. (closes #6917)
Files: src/eval.c, src/testdir/test_vim9_expr.vim Files: src/eval.c, src/testdir/test_vim9_expr.vim
Patch 8.2.1672 Patch 8.2.1672
@ -10341,7 +10470,7 @@ Files: src/syntax.c, src/testdir/test_syntax.vim
Patch 8.2.1679 Patch 8.2.1679
Problem: Vim9: ":*" is not recognized as a range. Problem: Vim9: ":*" is not recognized as a range.
Solution: Move recognizing "*" into skip_range(). (closes #6838) Solution: Move recognizing "*" into skip_range(). (closes #6938)
Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/cmdexpand.c, Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/cmdexpand.c,
src/ex_getln.c, src/userfunc.c, src/vim9compile.c, src/ex_getln.c, src/userfunc.c, src/vim9compile.c,
src/testdir/test_vim9_cmd.vim src/testdir/test_vim9_cmd.vim
@ -10352,7 +10481,7 @@ Solution: Set SOURCING_LNUM. (closes #6936)
Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim
Patch 8.2.1681 Patch 8.2.1681
Problem: Vim9: unnessary :call commands in tests. Problem: Vim9: unnecessary :call commands in tests.
Solution: Remove the commands. (issue #6936) Solution: Remove the commands. (issue #6936)
Files: src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim Files: src/testdir/test_vim9_func.vim, src/testdir/test_vim9_script.vim
@ -10503,12 +10632,12 @@ Solution: When a function fails still update any closures. (closes #6973)
Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Files: src/vim9execute.c, src/testdir/test_vim9_func.vim
Patch 8.2.1707 Patch 8.2.1707
Problem: Small inconsitency in highlight test. Problem: Small inconsistency in highlight test.
Solution: Use one argument for :execute. (Antony Scriven, #6975) Solution: Use one argument for :execute. (Antony Scriven, #6975)
Files: src/testdir/test_highlight.vim Files: src/testdir/test_highlight.vim
Patch 8.2.1708 Patch 8.2.1708
Problem: Vim9: error message for function has unpritable characters. Problem: Vim9: error message for function has unprintable characters.
Solution: use printable_func_name(). (closes #6965) Solution: use printable_func_name(). (closes #6965)
Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Files: src/vim9compile.c, src/testdir/test_vim9_func.vim
@ -10581,7 +10710,7 @@ Files: src/vim9compile.c, src/testdir/test_vim9_script.vim
Patch 8.2.1721 Patch 8.2.1721
Problem: MS-Windows installer doesn't work. Problem: MS-Windows installer doesn't work.
Solution: Write "Russian" in ASCII. (closes #6995, see #). Solution: Write "Russian" in ASCII. (closes #6995, see #6985).
Files: nsis/lang/russian.nsi Files: nsis/lang/russian.nsi
Patch 8.2.1722 Patch 8.2.1722
@ -10638,7 +10767,7 @@ Files: src/globals.h, src/getchar.c, src/evalfunc.c, src/ex_docmd.c,
Patch 8.2.1730 Patch 8.2.1730
Problem: Vim9: cannot use member of unknown type. Problem: Vim9: cannot use member of unknown type.
Solution: When type is unknown us "any". (closes #6997) Solution: When type is unknown use "any". (closes #6997)
Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim
Patch 8.2.1731 Patch 8.2.1731
@ -10959,7 +11088,7 @@ Files: src/map.c, src/testdir/test_vim9_func.vim
Patch 8.2.1783 (after 8.2.1781) Patch 8.2.1783 (after 8.2.1781)
Problem: Try-catch test fails. Problem: Try-catch test fails.
Solution: Don't call win_enter(), only call enterering_window(). Solution: Don't call win_enter(), only call entering_window().
Files: src/autocmd.c, src/window.c, src/proto/window.pro, Files: src/autocmd.c, src/window.c, src/proto/window.pro,
src/testdir/runtest.vim src/testdir/runtest.vim
@ -11130,7 +11259,7 @@ Solution: Do not skip a local variable with a partial. (closes #7065)
Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Files: src/vim9execute.c, src/testdir/test_vim9_func.vim
Patch 8.2.1813 Patch 8.2.1813
Problem: Vim9: can assign wrong type to script dict. (Christian J. Robinson) Problem: Vim9: can assign wrong type to script dict. (Christian J. Robinson)
Solution: Check the type if known. Solution: Check the type if known.
Files: src/structs.h, src/eval.c, src/vim9script.c, Files: src/structs.h, src/eval.c, src/vim9script.c,
src/proto/vim9script.pro, src/proto/evalvars.pro, src/proto/vim9script.pro, src/proto/evalvars.pro,
@ -11163,7 +11292,7 @@ Files: src/os_unix.c
Patch 8.2.1819 Patch 8.2.1819
Problem: Vim9: Memory leak when using a closure. Problem: Vim9: Memory leak when using a closure.
Solution: Compute the mininal refcount in the funcstack. Reenable disabled Solution: Compute the minimal refcount in the funcstack. Reenable disabled
tests. tests.
Files: src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h, Files: src/vim9execute.c, src/proto/vim9execute.pro, src/structs.h,
src/eval.c, src/testdir/test_vim9_disassemble.vim, src/eval.c, src/testdir/test_vim9_disassemble.vim,
@ -11214,7 +11343,7 @@ Files: runtime/filetype.vim, src/testdir/test_filetype.vim
Patch 8.2.1828 Patch 8.2.1828
Problem: Build failure without the +eval feature. Problem: Build failure without the +eval feature.
Solution: Add dummys for ex_block and ex_endblock. Solution: Add dummies for ex_block and ex_endblock.
Files: src/ex_docmd.c Files: src/ex_docmd.c
Patch 8.2.1829 Patch 8.2.1829
@ -11349,14 +11478,14 @@ Solution: Skip over trailing spaces. (closes #7131)
Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim Files: src/eval.c, src/vim9compile.c, src/testdir/test_vim9_expr.vim
Patch 8.2.1852 Patch 8.2.1852
Problem: map() returing zero for NULL list is unexpected. Problem: map() returning zero for NULL list is unexpected.
Solution: Return the empty list. (closes #7133) Solution: Return the empty list. (closes #7133)
Files: src/list.c, src/testdir/test_filter_map.vim, Files: src/list.c, src/testdir/test_filter_map.vim,
src/testdir/test_blob.vim src/testdir/test_blob.vim
Patch 8.2.1853 Patch 8.2.1853
Problem: "to_f" is recognized at "topleft" modifier. Problem: "to_f" is recognized at "topleft" modifier.
Solution: Do not recognize modifer when "_" follows. (closes #7019) Solution: Do not recognize modifier when "_" follows. (closes #7019)
Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim Files: src/ex_docmd.c, src/testdir/test_vim9_assign.vim
Patch 8.2.1854 Patch 8.2.1854
@ -11534,7 +11663,7 @@ Solution: Initialize with NULL.
Files: src/vim9compile.c, src/evalfunc.c Files: src/vim9compile.c, src/evalfunc.c
Patch 8.2.1885 Patch 8.2.1885
Problem: Filetype tests unnessarily creates swap files. Problem: Filetype tests unnecessarily creates swap files.
Solution: Disable 'swapfile'. (Ken Takata, closes #7183) Solution: Disable 'swapfile'. (Ken Takata, closes #7183)
Files: src/testdir/test_filetype.vim Files: src/testdir/test_filetype.vim
@ -11555,7 +11684,7 @@ Solution: Return an empty list. (closes #7180)
Files: src/evalbuffer.c, src/testdir/test_vim9_builtin.vim Files: src/evalbuffer.c, src/testdir/test_vim9_builtin.vim
Patch 8.2.1889 Patch 8.2.1889
Problem: Vim9: errornous error for missing white space after {}. Problem: Vim9: erroneous error for missing white space after {}.
Solution: Don't skip over white space after {}. (issue #7167) Solution: Don't skip over white space after {}. (issue #7167)
Files: src/dict.c, src/testdir/test_vim9_expr.vim Files: src/dict.c, src/testdir/test_vim9_expr.vim
@ -12004,7 +12133,7 @@ Files: runtime/filetype.vim, src/testdir/test_filetype.vim
Patch 8.2.1965 Patch 8.2.1965
Problem: Vim9: tests fail without the channel feature. Problem: Vim9: tests fail without the channel feature.
Solution: Check if the channel feature is present. (Dominique Pellé, Solution: Check if the channel feature is present. (Dominique Pellé,
closes 7270) closes #7270)
Files: src/testdir/test_vim9_expr.vim Files: src/testdir/test_vim9_expr.vim
Patch 8.2.1966 Patch 8.2.1966
@ -12331,7 +12460,7 @@ Files: src/globals.h, src/ex_docmd.c, src/vim9execute.c,
src/testdir/test_vim9_func.vim src/testdir/test_vim9_func.vim
Patch 8.2.2022 Patch 8.2.2022
Problem: Vim9: star command recognized errornously. Problem: Vim9: star command recognized erroneously.
Solution: Give an error for missing colon. (issue #7335) Solution: Give an error for missing colon. (issue #7335)
Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim Files: src/ex_docmd.c, src/testdir/test_vim9_cmd.vim
@ -12504,7 +12633,7 @@ Files: src/testdir/test_search.vim
Patch 8.2.2051 Patch 8.2.2051
Problem: Vim9: crash when aborting a user function call. Problem: Vim9: crash when aborting a user function call.
Solution: Do not use the return value when aboring. (closes #7372) Solution: Do not use the return value when aborting. (closes #7372)
Files: src/vim9execute.c, src/testdir/test_vim9_func.vim Files: src/vim9execute.c, src/testdir/test_vim9_func.vim
Patch 8.2.2052 Patch 8.2.2052
@ -12514,7 +12643,7 @@ Files: src/ex_docmd.c, src/proto/ex_docmd.pro, src/vim.h, src/ex_cmds.c,
src/testdir/test_vim9_cmd.vim src/testdir/test_vim9_cmd.vim
Patch 8.2.2053 Patch 8.2.2053
Problem: Vim9: lamba doesn't accept argument types. Problem: Vim9: lambda doesn't accept argument types.
Solution: Optionally accept argument types at the script level. Solution: Optionally accept argument types at the script level.
Files: src/eval.c, src/testdir/test_vim9_expr.vim Files: src/eval.c, src/testdir/test_vim9_expr.vim
@ -12675,7 +12804,7 @@ Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim,
src/testdir/test_vim9_expr.vim src/testdir/test_vim9_expr.vim
Patch 8.2.2082 Patch 8.2.2082
Problem: Vim9: can still use the depricated #{} dict syntax. Problem: Vim9: can still use the deprecated #{} dict syntax.
Solution: Remove support for #{} in Vim9 script. (closes #7406, closes #7405) Solution: Remove support for #{} in Vim9 script. (closes #7406, closes #7405)
Files: src/dict.c, src/proto/dict.pro, src/eval.c, src/vim9compile.c, Files: src/dict.c, src/proto/dict.pro, src/eval.c, src/vim9compile.c,
src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_assign.vim,
@ -12766,8 +12895,8 @@ Files: src/vim9compile.c, src/vim9execute.c,
src/testdir/test_vim9_func.vim src/testdir/test_vim9_func.vim
Patch 8.2.2097 Patch 8.2.2097
Problem: Vim9: using :silent! when calling a function prevents abortng that Problem: Vim9: using :silent! when calling a function prevents aborting
function. that function.
Solution: Add emsg_silent_def and did_emsg_def. Solution: Add emsg_silent_def and did_emsg_def.
Files: src/globals.h, src/message.c, src/vim9execute.c, Files: src/globals.h, src/message.c, src/vim9execute.c,
src/testdir/test_vim9_func.vim src/testdir/test_vim9_func.vim
@ -12845,14 +12974,14 @@ Files: src/main.c
Patch 8.2.2111 Patch 8.2.2111
Problem: GTK: Menu background is the same color as the main window. Problem: GTK: Menu background is the same color as the main window.
Solution: Fix white space around the test in another way. (closes #7437, Solution: Fix white space around the text in another way. (closes #7437,
closes #7427) closes #7427)
Files: src/gui_gtk_x11.c Files: src/gui_gtk_x11.c
Patch 8.2.2112 Patch 8.2.2112
Problem: Running tests may leave some files behind. Problem: Running tests may leave some files behind.
Solution: Delete the right files. Fix a few typos. (Dominique Pellé, Solution: Delete the right files. Fix a few typos. (Dominique Pellé,
closes #7436 closes #7436)
Files: src/testdir/test_filetype.vim, src/testdir/test_messages.vim, Files: src/testdir/test_filetype.vim, src/testdir/test_messages.vim,
src/testdir/test_mksession.vim src/testdir/test_mksession.vim
@ -12950,7 +13079,7 @@ Files: src/os_mswin.c
Patch 8.2.2130 Patch 8.2.2130
Problem: Insert mode completion messages end up in message history. Problem: Insert mode completion messages end up in message history.
Solution: Set msg_hist_off. (closes #7452 Solution: Set msg_hist_off. (closes #7452)
Files: src/insexpand.c, src/testdir/test_ins_complete.vim Files: src/insexpand.c, src/testdir/test_ins_complete.vim
Patch 8.2.2131 Patch 8.2.2131
@ -13096,7 +13225,7 @@ Solution: Remove the "git checkout HEAD^2" block.
Files: .github/workflows/codeql-analysis.yml Files: .github/workflows/codeql-analysis.yml
Patch 8.2.2156 Patch 8.2.2156
Problem: Github actions run on pusing a tag. Problem: Github actions run on pushing a tag.
Solution: Don't run CI on tag push. Omit coveralls on pull-request. Solution: Don't run CI on tag push. Omit coveralls on pull-request.
(Ozaki Kiichi, closes #7489) (Ozaki Kiichi, closes #7489)
Files: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml Files: .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml
@ -13138,7 +13267,7 @@ Files: src/bufwrite.c, src/cindent.c, src/cmdexpand.c, src/eval.c,
Patch 8.2.2161 Patch 8.2.2161
Problem: Arguments -T and -x not tested yet. Problem: Arguments -T and -x not tested yet.
Solution: Add a test. (Dominique Pellé, closes #7490 Solution: Add a test. (Dominique Pellé, closes #7490)
Files: src/testdir/test_startup.vim Files: src/testdir/test_startup.vim
Patch 8.2.2162 Patch 8.2.2162
@ -13151,7 +13280,7 @@ Files: src/vim9compile.c, src/vim9.h, src/vim9execute.c, src/dict.c,
Patch 8.2.2163 Patch 8.2.2163
Problem: Crash when discarded exception is the current exception. Problem: Crash when discarded exception is the current exception.
Solution: Compare the execption with current_exception. (closes #7499) Solution: Compare the exception with current_exception. (closes #7499)
Files: src/ex_eval.c Files: src/ex_eval.c
Patch 8.2.2164 Patch 8.2.2164
@ -13279,7 +13408,7 @@ Files: src/typval.c, src/evalfunc.c, src/testdir/test_vim9_builtin.vim,
Patch 8.2.2185 Patch 8.2.2185
Problem: BufUnload is not triggered for the quickfix dummy buffer. Problem: BufUnload is not triggered for the quickfix dummy buffer.
Solution: Do trigger BufUnload. (Pontus Leitzler,closes #7518, closes #7517) Solution: Do trigger BufUnload. (Pontus Leitzler, closes #7518, closes #7517)
Fix white space around "=". Fix white space around "=".
Files: src/quickfix.c, src/testdir/test_autocmd.vim Files: src/quickfix.c, src/testdir/test_autocmd.vim
@ -13365,7 +13494,7 @@ Files: src/bufwrite.c, src/testdir/test_writefile.vim
Patch 8.2.2200 Patch 8.2.2200
Problem: Vim9: lambda without white space around -> is confusing. Problem: Vim9: lambda without white space around -> is confusing.
Solution: Require white space in a :def funtion. (issue #7503) Solution: Require white space in a :def function. (issue #7503)
Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim, Files: src/vim9compile.c, src/testdir/test_vim9_expr.vim,
src/testdir/test_vim9_disassemble.vim src/testdir/test_vim9_disassemble.vim
@ -13602,7 +13731,7 @@ Files: src/testdir/test_clientserver.vim
Patch 8.2.2241 Patch 8.2.2241
Problem: Build with Ruby and clang may fail. Problem: Build with Ruby and clang may fail.
Solution: Adjust congigure and sed script. (Ozaki Kiichi, closes #7566) Solution: Adjust configure and sed script. (Ozaki Kiichi, closes #7566)
Files: ci/config.mk.clang.sed, src/auto/configure, src/configure.ac Files: ci/config.mk.clang.sed, src/auto/configure, src/configure.ac
Patch 8.2.2242 Patch 8.2.2242
@ -13631,7 +13760,7 @@ Patch 8.2.2246
Problem: Cursor keys not recognized at the hit-Enter prompt after executing Problem: Cursor keys not recognized at the hit-Enter prompt after executing
an external command. an external command.
Solution: Change the codes for the extra cursor keys. (closes #7562) Solution: Change the codes for the extra cursor keys. (closes #7562)
Tune the delays to avoid test flakyness. Tune the delays to avoid test flakiness.
Files: runtime/doc/term.txt, src/term.c, src/testdir/test_terminal3.vim Files: runtime/doc/term.txt, src/term.c, src/testdir/test_terminal3.vim
Patch 8.2.2247 Patch 8.2.2247
@ -14033,7 +14162,7 @@ Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c,
src/testdir/test_vim9_disassemble.vim src/testdir/test_vim9_disassemble.vim
Patch 8.2.2315 Patch 8.2.2315
Problem: Vim9: "enddef" as dict key misintepreted as function end. Problem: Vim9: "enddef" as dict key misinterpreted as function end.
Solution: Check for following colon. (closes #7640) Solution: Check for following colon. (closes #7640)
Files: src/userfunc.c, src/testdir/test_vim9_func.vim Files: src/userfunc.c, src/testdir/test_vim9_func.vim
@ -14155,7 +14284,7 @@ Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim,
Patch 8.2.2335 Patch 8.2.2335
Problem: Vim9: "silent return" does not restore command modifiers. Problem: Vim9: "silent return" does not restore command modifiers.
Solution: Resture command modifiers before returning. (closes #7649) Solution: Restore command modifiers before returning. (closes #7649)
Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim Files: src/vim9compile.c, src/testdir/test_vim9_disassemble.vim
Patch 8.2.2336 Patch 8.2.2336
@ -14197,7 +14326,7 @@ Files: src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro,
src/testdir/test_cmdline.vim src/testdir/test_cmdline.vim
Patch 8.2.2342 Patch 8.2.2342
Problem: "char" functions return the wront column in Insert mode when the Problem: "char" functions return the wrong column in Insert mode when the
cursor is beyond the end of the line. cursor is beyond the end of the line.
Solution: Compute the column correctly. (Yegappan Lakshmanan, closes #7669) Solution: Compute the column correctly. (Yegappan Lakshmanan, closes #7669)
Files: src/eval.c, src/evalfunc.c, src/testdir/test_cursor_func.vim Files: src/eval.c, src/evalfunc.c, src/testdir/test_cursor_func.vim
@ -14266,7 +14395,7 @@ Solution: Adjust the logic to ignore the escape code.
Files: src/term.c Files: src/term.c
Patch 8.2.2353 Patch 8.2.2353
Problem: Spartql files are not detected. Problem: Sparql files are not detected.
Solution: Add the sparql filetype. (closes #7679) Solution: Add the sparql filetype. (closes #7679)
Files: runtime/filetype.vim, src/testdir/test_filetype.vim Files: runtime/filetype.vim, src/testdir/test_filetype.vim
@ -14322,7 +14451,7 @@ Files: src/vim9compile.c, src/proto/vim9compile.pro, src/evalfunc.c,
Patch 8.2.2363 Patch 8.2.2363
Problem: curpos() does not accept a string argument as before. Problem: curpos() does not accept a string argument as before.
solution: Make a string argument work again. (Yegappan Lakshmanan, solution: Make a string argument work again. (Yegappan Lakshmanan,
closes #7690 closes #7690)
Files: src/evalfunc.c, src/testdir/test_cursor_func.vim Files: src/evalfunc.c, src/testdir/test_cursor_func.vim
Patch 8.2.2364 Patch 8.2.2364
@ -14463,7 +14592,7 @@ Files: src/vim9.h, src/vim9compile.c, src/vim9execute.c,
src/testdir/test_vim9_func.vim src/testdir/test_vim9_func.vim
Patch 8.2.2388 Patch 8.2.2388
Problem: No easy way to get the maximum or mininum number value. Problem: No easy way to get the maximum or minimum number value.
Solution: Add v:numbermax and v:numbermin. Solution: Add v:numbermax and v:numbermin.
Files: src/evalvars.c, src/vim.h, src/testdir/test_eval_stuff.vim, Files: src/evalvars.c, src/vim.h, src/testdir/test_eval_stuff.vim,
runtime/doc/eval.txt runtime/doc/eval.txt
@ -14558,7 +14687,7 @@ Files: src/vim9compile.c, src/testdir/test_profile.vim,
Patch 8.2.2404 Patch 8.2.2404
Problem: Vim9: profiling try/catch not correct. Problem: Vim9: profiling try/catch not correct.
Solution: Add profile instructions. Fix that "entry" did not rethrow an Solution: Add profile instructions. Fix that "entry" did not rethrow an
excpetion. exception.
Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_profile.vim Files: src/vim9compile.c, src/vim9execute.c, src/testdir/test_profile.vim
Patch 8.2.2405 Patch 8.2.2405
@ -14846,7 +14975,7 @@ Files: src/optionstr.c, src/testdir/test_options.vim
Patch 8.2.2447 Patch 8.2.2447
Problem: 'foldlevel' not applied to folds restored from session. Problem: 'foldlevel' not applied to folds restored from session.
Solution: Set 'foldlevel' after creaiting the folds. (closes #7767) Solution: Set 'foldlevel' after creating the folds. (closes #7767)
Files: src/fold.c, src/testdir/test_mksession.vim Files: src/fold.c, src/testdir/test_mksession.vim
Patch 8.2.2448 Patch 8.2.2448
@ -15044,7 +15173,7 @@ Solution: Add new error message.
Files: src/errors.h Files: src/errors.h
Patch 8.2.2483 Patch 8.2.2483
Problem: Vim9: type error for misformed expression. Problem: Vim9: type error for malformed expression.
Solution: Check for end of command before checking type. (closes #7795) Solution: Check for end of command before checking type. (closes #7795)
Files: src/vim9compile.c, src/testdir/test_vim9_script.vim Files: src/vim9compile.c, src/testdir/test_vim9_script.vim
@ -15125,7 +15254,7 @@ Solution: Adjust the computation of w_skipcol. (partly by Ghjuvan Lacambre,
Files: src/move.c, src/testdir/test_breakindent.vim Files: src/move.c, src/testdir/test_breakindent.vim
Patch 8.2.2496 (after 8.2.2495) Patch 8.2.2496 (after 8.2.2495)
Problem: Insufficien testing for text jumping fix. Problem: Insufficient testing for text jumping fix.
Solution: Add another test case. Solution: Add another test case.
Files: src/testdir/test_breakindent.vim Files: src/testdir/test_breakindent.vim
@ -15513,7 +15642,7 @@ Solution: Add a few more test cases. (Dominique Pellé, closes #7908)
Files: src/testdir/test_textprop.vim Files: src/testdir/test_textprop.vim
Patch 8.2.2562 Patch 8.2.2562
Problem: GUI: star register changed when 'clipboard is "unnamedplus". (Ingo Problem: GUI: star register changed when 'clipboard' is "unnamedplus". (Ingo
Karkat) Karkat)
Solution: Do not change the star register when 'clipboard' contains Solution: Do not change the star register when 'clipboard' contains
"unnamedplus" and not "unnamed". (closes #1516) "unnamedplus" and not "unnamed". (closes #1516)
@ -16946,7 +17075,7 @@ Files: src/vim9compile.c, src/testdir/test_vim9_func.vim
Patch 8.2.2810 Patch 8.2.2810
Problem: Vim9: crash when calling a function in a substitute expression. Problem: Vim9: crash when calling a function in a substitute expression.
Solution: Set the instructions back to the substitute expression Solution: Set the instructions back to the substitute expression
instrunctions. (closes #8148) instructions. (closes #8148)
Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim Files: src/vim9execute.c, src/testdir/test_vim9_cmd.vim
Patch 8.2.2811 Patch 8.2.2811
@ -17002,16 +17131,16 @@ Files: src/map.c, src/testdir/test_mapping.vim
Patch 8.2.2820 Patch 8.2.2820
Problem: Session file may divide by zero. Problem: Session file may divide by zero.
Solution: Avoid writing difide by zero. (closes #8162) Solution: Avoid writing divide by zero. (closes #8162)
Files: src/session.c, src/testdir/test_mksession.vim Files: src/session.c, src/testdir/test_mksession.vim
Patch 8.2.2821 Patch 8.2.2821
Problem: MS-Windows: unnessarily loading libraries when registering OLE. Problem: MS-Windows: unnecessarily loading libraries when registering OLE.
Solution: Skip loading libraries when invoked with "-register". Solution: Skip loading libraries when invoked with "-register".
Files: src/main.c, src/globals.h, src/os_win32.c Files: src/main.c, src/globals.h, src/os_win32.c
Patch 8.2.2822 (after 8.2.2821) Patch 8.2.2822 (after 8.2.2821)
Problem: MS-Windows: unnessarily loading libraries when unregistering OLE. Problem: MS-Windows: unnecessarily loading libraries when unregistering OLE.
Solution: Also skip loading libraries when invoked with "-unregister". Run Solution: Also skip loading libraries when invoked with "-unregister". Run
Vim for README.txt with user privileges. Vim for README.txt with user privileges.
Files: src/main.c, nsis/gvim.nsi, nsis/README.txt Files: src/main.c, nsis/gvim.nsi, nsis/README.txt
@ -17229,7 +17358,7 @@ Solution: Adjust the expected error message.
Files: src/testdir/test_tcl.vim Files: src/testdir/test_tcl.vim
Patch 8.2.2860 Patch 8.2.2860
Problem: Adding a text property causes the whole window to be redawn. Problem: Adding a text property causes the whole window to be redrawn.
Solution: Use changed_lines_buf() to only redraw the affected lines. Solution: Use changed_lines_buf() to only redraw the affected lines.
Files: src/change.c, src/proto/change.pro, src/textprop.c Files: src/change.c, src/proto/change.pro, src/textprop.c
@ -17240,7 +17369,7 @@ Files: src/vim9compile.c, src/vim9execute.c, src/vim9.h,
src/testdir/test_vim9_expr.vim src/testdir/test_vim9_expr.vim
Patch 8.2.2862 Patch 8.2.2862
Problem: Removing a text property causes the whole window to be redawn. Problem: Removing a text property causes the whole window to be redrawn.
Solution: Use changed_lines_buf() to only redraw the affected lines. Solution: Use changed_lines_buf() to only redraw the affected lines.
Files: src/textprop.c Files: src/textprop.c
@ -17288,7 +17417,7 @@ Solution: Return CMDLINE_NOT_CHANGED from cmdline_insert_reg().
Files: src/ex_getln.c, src/testdir/test_cmdline.vim Files: src/ex_getln.c, src/testdir/test_cmdline.vim
Patch 8.2.2871 Patch 8.2.2871
Problem: Unnessary VIM_ISDIGIT() calls, badly indented code. Problem: Unnecessary VIM_ISDIGIT() calls, badly indented code.
Solution: Call skipdigits() on the next character. Improve indenting. Solution: Call skipdigits() on the next character. Improve indenting.
(Dominique Pellé, closes #8227) (Dominique Pellé, closes #8227)
Files: src/charset.c, src/evalfunc.c, src/ex_docmd.c, src/json.c, Files: src/charset.c, src/evalfunc.c, src/ex_docmd.c, src/json.c,
@ -17826,7 +17955,7 @@ Files: src/testdir/test_recover.vim
Patch 8.2.2961 Patch 8.2.2961
Problem: Keys typed during a :normal command are discarded. Problem: Keys typed during a :normal command are discarded.
Solution: Concatenate saved typeahead and typed kesy. (closes #8340) Solution: Concatenate saved typeahead and typed keys. (closes #8340)
Files: src/getchar.c, src/proto/getchar.pro, src/ex_docmd.c, Files: src/getchar.c, src/proto/getchar.pro, src/ex_docmd.c,
src/evalfunc.c, src/debugger.c, src/ui.c, src/proto/ui.pro src/evalfunc.c, src/debugger.c, src/ui.c, src/proto/ui.pro
@ -18074,7 +18203,7 @@ Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim
Patch 8.2.3005 Patch 8.2.3005
Problem: Vim9: using a void value does not give a proper error message. Problem: Vim9: using a void value does not give a proper error message.
Solution: Give a clear error message. (clodes #8387) Solution: Give a clear error message. (closes #8387)
Files: src/typval.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c, Files: src/typval.c, src/vim9compile.c, src/vim9.h, src/vim9execute.c,
src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_expr.vim,
src/testdir/test_vim9_disassemble.vim src/testdir/test_vim9_disassemble.vim
@ -18155,14 +18284,13 @@ Files: src/vim9execute.c, src/testdir/test_debugger.vim
Patch 8.2.3018 Patch 8.2.3018
Problem: Formatting using quickfixtextfunc is lost when updating location Problem: Formatting using quickfixtextfunc is lost when updating location
lists for different buffers. (Yorick Peterse) lists for different buffers. (Yorick Peterse)
Solution: Use the right window for the locaiton list. (Yegappan Lakshmanan, Solution: Use the right window for the location list. (Yegappan Lakshmanan,
closes #8400, closes #8403) closes #8400, closes #8403)
Files: src/quickfix.c, src/testdir/test_quickfix.vim Files: src/quickfix.c, src/testdir/test_quickfix.vim
Patch 8.2.3019 Patch 8.2.3019
Problem: Location list only has the start position. Problem: Location list only has the start position.
Solution: Make it possible to add an end position. (Shane-XB-Qian, Solution: Make it possible to add an end position. (thinca, closes #8393)
closes #8393)
Files: runtime/doc/eval.txt, src/quickfix.c, Files: runtime/doc/eval.txt, src/quickfix.c,
src/testdir/dumps/Test_quickfix_cwindow_1.dump, src/testdir/dumps/Test_quickfix_cwindow_1.dump,
src/testdir/dumps/Test_quickfix_cwindow_2.dump, src/testdir/dumps/Test_quickfix_cwindow_2.dump,
@ -18182,7 +18310,7 @@ Files: src/option.c, src/testdir/test_vim9_script.vim
Patch 8.2.3022 Patch 8.2.3022
Problem: Available encryption methods are not strong enough. Problem: Available encryption methods are not strong enough.
Solution: Add initial support for xchaha20. (Christian Brabandt, Solution: Add initial support for xchacha20. (Christian Brabandt,
closes #8394) closes #8394)
Files: .github/workflows/ci.yml, runtime/doc/eval.txt, Files: .github/workflows/ci.yml, runtime/doc/eval.txt,
runtime/doc/options.txt, runtime/doc/various.txt, runtime/doc/options.txt, runtime/doc/various.txt,
@ -18342,7 +18470,7 @@ Files: src/VisVim/README_VisVim.txt, src/evalfunc.c, src/testdir/vim9.vim
Patch 8.2.3046 Patch 8.2.3046
Problem: Amiga MorphOS: Term mode is set using DOS packets. Problem: Amiga MorphOS: Term mode is set using DOS packets.
Solution: Use the same way of setting term mdoe on all next gen Amiga-like Solution: Use the same way of setting term mode on all next gen Amiga-like
systems. (Ola Söder, closes #8445) systems. (Ola Söder, closes #8445)
Files: src/os_amiga.c Files: src/os_amiga.c
@ -18408,7 +18536,7 @@ Solution: Adjust the INSTRUCTIONS macro. (closes #8460)
Files: src/vim9.h Files: src/vim9.h
Patch 8.2.3058 (after 8.2.3056) Patch 8.2.3058 (after 8.2.3056)
Problem: Vim9: cannot use ternary operator in parenthesis. Problem: Vim9: cannot use ternary operator in parentheses.
Solution: Do not use "==" for a default argument value. (closes #8462) Solution: Do not use "==" for a default argument value. (closes #8462)
Files: src/userfunc.c, src/testdir/test_vim9_func.vim Files: src/userfunc.c, src/testdir/test_vim9_func.vim
@ -18418,7 +18546,7 @@ Solution: Do not store the default value strings when skipping.
Files: src/userfunc.c Files: src/userfunc.c
Patch 8.2.3060 (after 8.2.3056) Patch 8.2.3060 (after 8.2.3056)
Problem: Vim9: cannot use ternary operator in parenthesis. Problem: Vim9: cannot use ternary operator in parentheses.
Solution: Do not use "=~" for a default argument value. (closes #8462) Solution: Do not use "=~" for a default argument value. (closes #8462)
Files: src/userfunc.c, src/testdir/test_vim9_func.vim Files: src/userfunc.c, src/testdir/test_vim9_func.vim
@ -18795,7 +18923,7 @@ Files: src/drawline.c, src/testdir/test_listchars.vim,
src/testdir/dumps/Test_listchars_05.dump src/testdir/dumps/Test_listchars_05.dump
Patch 8.2.3122 Patch 8.2.3122
Problem: With 'nowrap' cursor position is unexected in narrow window. Problem: With 'nowrap' cursor position is unexpected in narrow window.
(Leonid V. Fedorenchik) (Leonid V. Fedorenchik)
Solution: Put cursor on the last non-empty line. (closes #8525) Solution: Put cursor on the last non-empty line. (closes #8525)
Files: src/move.c, src/testdir/test_listchars.vim, Files: src/move.c, src/testdir/test_listchars.vim,
@ -18831,7 +18959,7 @@ Solution: Check the value type. (closes #8529)
Files: src/list.c, src/testdir/test_vim9_builtin.vim Files: src/list.c, src/testdir/test_vim9_builtin.vim
Patch 8.2.3128 Patch 8.2.3128
Problem: Vim9: uninitialzed list does not get type checked. Problem: Vim9: uninitialized list does not get type checked.
Solution: Set the type when initializing the variable. (closes #8529) Solution: Set the type when initializing the variable. (closes #8529)
Files: src/eval.c, src/evalvars.c, src/vim9script.c, Files: src/eval.c, src/evalvars.c, src/vim9script.c,
src/userfunc.c, src/proto/vim9script.pro, src/userfunc.c, src/proto/vim9script.pro,
@ -19369,7 +19497,7 @@ Files: src/testdir/test_spellfile.vim
Patch 8.2.3214 Patch 8.2.3214
Problem: MS-Windows: passing /D does not set the install location. Problem: MS-Windows: passing /D does not set the install location.
Solution: Adjust how the installer uses $VIM. Update the documentation. Solution: Adjust how the installer uses $VIM. Update the documentation.
(Christian Brabandt, closes #8605) (Christian Brabandt, Ken Takata, closes #8605)
Files: nsis/gvim.nsi, runtime/doc/os_win32.txt Files: nsis/gvim.nsi, runtime/doc/os_win32.txt
Patch 8.2.3215 Patch 8.2.3215
@ -19420,13 +19548,13 @@ Files: src/evalfunc.c, src/popupwin.c, src/proto/typval.pro,
src/testdir/test_vim9_script.vim, src/testing.c, src/typval.c src/testdir/test_vim9_script.vim, src/testing.c, src/typval.c
Patch 8.2.3222 Patch 8.2.3222
Problem: Vim9: cannot used loop variable later as lambda argument. Problem: Vim9: cannot use loop variable later as lambda argument.
Solution: When not in function context check the current block ID. Solution: When not in function context check the current block ID.
(closes #8637) (closes #8637)
Files: src/vim9compile.c, src/testdir/test_vim9_func.vim Files: src/vim9compile.c, src/testdir/test_vim9_func.vim
Patch 8.2.3223 Patch 8.2.3223
Problem: Vim: using {} block in autoloade omnifunc fails. Problem: Vim: using {} block in autoloaded omnifunc fails.
Solution: Allow using {} block when text is locked. (closes #8631) Solution: Allow using {} block when text is locked. (closes #8631)
Files: src/ex_cmds.h, src/testdir/test_ins_complete.vim Files: src/ex_cmds.h, src/testdir/test_ins_complete.vim
@ -19444,7 +19572,7 @@ Files: src/ex_getln.c
Patch 8.2.3226 Patch 8.2.3226
Problem: New digraph functions use old naming scheme. Problem: New digraph functions use old naming scheme.
Solution: Use the digraph_ prefix. (Hirohito Higashi, closes #8580) Solution: Use the digraph_ prefix. (Hirohito Higashi, closes #8642)
Files: runtime/doc/digraph.txt, runtime/doc/eval.txt, Files: runtime/doc/digraph.txt, runtime/doc/eval.txt,
runtime/doc/usr_41.txt, src/digraph.c, src/edit.c, src/errors.h, runtime/doc/usr_41.txt, src/digraph.c, src/edit.c, src/errors.h,
src/evalfunc.c, src/proto/digraph.pro, src/evalfunc.c, src/proto/digraph.pro,
@ -19574,7 +19702,7 @@ Files: src/if_lua.c, src/misc2.c, src/proto/misc2.pro
Patch 8.2.3245 Patch 8.2.3245
Problem: The crypt key may appear in a swap partition. Problem: The crypt key may appear in a swap partition.
Solution: When using xchaha20 use sodium_mlock(). (Christian Brabandt, Solution: When using xchacha20 use sodium_mlock(). (Christian Brabandt,
closes #8657) closes #8657)
Files: src/buffer.c, src/crypt.c, src/errors.h, src/fileio.c, Files: src/buffer.c, src/crypt.c, src/errors.h, src/fileio.c,
src/memline.c, src/vim.h src/memline.c, src/vim.h
@ -19642,7 +19770,7 @@ Solution: Consider /usr/bin/cat and /bin/cat the same.
Files: src/testdir/test_functions.vim Files: src/testdir/test_functions.vim
Patch 8.2.3257 Patch 8.2.3257
Problem: Calling prop_find() with -1 for ID gives errornous error. (Naohiro Problem: Calling prop_find() with -1 for ID gives erroneous error. (Naohiro
Ono) Ono)
Solution: When passing -1 use -2. (closes #8674) Solution: When passing -1 use -2. (closes #8674)
Files: src/textprop.c, src/testdir/test_textprop.vim Files: src/textprop.c, src/testdir/test_textprop.vim
@ -19693,7 +19821,7 @@ Files: src/search.c, src/testdir/test_search.vim
Patch 8.2.3266 Patch 8.2.3266
Problem: Vim9: assignment with two indexes may check next line. Problem: Vim9: assignment with two indexes may check next line.
Solution: Limit the number of lines to avoid checking the next line when Solution: Limit the number of lines to avoid checking the next line when
assiging to a LHS subscript. (closes #8660) assigning to a LHS subscript. (closes #8660)
Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim Files: src/vim9compile.c, src/testdir/test_vim9_assign.vim
Patch 8.2.3267 Patch 8.2.3267
@ -20114,7 +20242,7 @@ Files: src/evalfunc.c, src/vim9compile.c, src/testdir/test_listdict.vim
Patch 8.2.3335 Patch 8.2.3335
Problem: Vim9: not enough tests run with Vim9. Problem: Vim9: not enough tests run with Vim9.
Solution: Run a few more tests in Vim9 script and :def function. Fix that Solution: Run a few more tests in Vim9 script and :def function. Fix that
items(), keys() and values9) return zero for a NULL dict. items(), keys() and values() return zero for a NULL dict.
Make join() return an empty string for a NULL list. Make sort() Make join() return an empty string for a NULL list. Make sort()
return an empty list for a NULL list. return an empty list for a NULL list.
Files: src/dict.c, src/list.c, src/testdir/test_listdict.vim, Files: src/dict.c, src/list.c, src/testdir/test_listdict.vim,
@ -20898,7 +21026,7 @@ Files: src/testdir/test_search.vim
Patch 8.2.3473 Patch 8.2.3473
Problem: Some files with tcl syntax are not recognized. Problem: Some files with tcl syntax are not recognized.
Solution: Add a few file patterns. (Doug Kearns Solution: Add a few file patterns. (Doug Kearns)
Files: runtime/filetype.vim, src/testdir/test_filetype.vim Files: runtime/filetype.vim, src/testdir/test_filetype.vim
Patch 8.2.3474 Patch 8.2.3474
@ -20997,7 +21125,7 @@ Files: src/buffer.c, src/getchar.c, src/memline.c, src/move.c,
src/option.c src/option.c
Patch 8.2.3491 Patch 8.2.3491
Problem: xpm2 filetype dection is not so good. Problem: xpm2 filetype detection is not so good.
Solution: Adjust the check for xpm2. (closes #8914) Solution: Adjust the check for xpm2. (closes #8914)
Files: runtime/filetype.vim, src/testdir/test_filetype.vim Files: runtime/filetype.vim, src/testdir/test_filetype.vim
@ -21050,7 +21178,7 @@ Solution: Install llvm-11 explicitly. (Christian Brabandt, closes #8993)
Files: .github/workflows/ci.yml Files: .github/workflows/ci.yml
Patch 8.2.3501 Patch 8.2.3501
Problem: tmux filetype dection is incomplete Problem: tmux filetype detection is incomplete
Solution: Also use tmux for files having text after .conf. (Eric Pruitt, Solution: Also use tmux for files having text after .conf. (Eric Pruitt,
closes #8971) closes #8971)
Files: runtime/filetype.vim, src/testdir/test_filetype.vim Files: runtime/filetype.vim, src/testdir/test_filetype.vim
@ -21125,7 +21253,7 @@ Solution: Allocated mr_pattern.
Files: src/search.c Files: src/search.c
Patch 8.2.3514 Patch 8.2.3514
Problem: Autoread test with nano second time sometimes fails. Problem: Autoread test with nanosecond time sometimes fails.
Solution: Mark the test as being flaky. Solution: Mark the test as being flaky.
Files: src/testdir/test_stat.vim Files: src/testdir/test_stat.vim
@ -21151,7 +21279,7 @@ Files: src/buffer.c, src/bufwrite.c, src/edit.c, src/structs.h,
Patch 8.2.3518 Patch 8.2.3518
Problem: Test_xrestore sometimes fails. Problem: Test_xrestore sometimes fails.
Solution: Mark the test as flayky. Move marking test as flaky to the test Solution: Mark the test as flaky. Move marking test as flaky to the test
instead of listing them in runtest. instead of listing them in runtest.
Files: src/testdir/test_paste.vim, src/testdir/runtest.vim, Files: src/testdir/test_paste.vim, src/testdir/runtest.vim,
src/testdir/test_autocmd.vim, src/testdir/test_channel.vim, src/testdir/test_autocmd.vim, src/testdir/test_channel.vim,
@ -21330,7 +21458,7 @@ Files: src/ex_cmds.c, src/vim.h, src/quickfix.c, src/buffer.c,
src/testdir/test_quickfix.vim src/testdir/test_quickfix.vim
Patch 8.2.3548 Patch 8.2.3548
Problem: GTK GUI crashen when reading from stdin. Problem: GTK GUI crashes when reading from stdin.
Solution: Do not overwrite the NUL after the string. (closes #9028) Solution: Do not overwrite the NUL after the string. (closes #9028)
Files: src/gui_gtk_x11.c, src/testdir/test_gui.vim Files: src/gui_gtk_x11.c, src/testdir/test_gui.vim
@ -21636,7 +21764,7 @@ Files: runtime/filetype.vim, src/testdir/test_filetype.vim
Patch 8.2.3600 (after 8.2.3598) Patch 8.2.3600 (after 8.2.3598)
Problem: Filetype test fails. Problem: Filetype test fails.
Solution: Add missint change. Solution: Add missing change.
Files: runtime/scripts.vim Files: runtime/scripts.vim
Patch 8.2.3601 Patch 8.2.3601
@ -22004,7 +22132,7 @@ Solution: Add a type cast. (Mike Williams, closes #9199)
Files: src/vim9compile.c Files: src/vim9compile.c
Patch 8.2.3656 Patch 8.2.3656
Problem: Vim9: no error for an evironment variable by itself. Problem: Vim9: no error for an environment variable by itself.
Solution: Give a "without effect" error. (closes #9166) Solution: Give a "without effect" error. (closes #9166)
Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim Files: src/ex_eval.c, src/testdir/test_vim9_cmd.vim
@ -22173,7 +22301,7 @@ Solution: Adjust text column for indent. (closes #9229)
Files: src/ops.c, src/testdir/test_blockedit.vim Files: src/ops.c, src/testdir/test_blockedit.vim
Patch 8.2.3685 Patch 8.2.3685
Problem: Visual studio project files are not recognized. Problem: Visual Studio project files are not recognized.
Solution: Use the xml file type. (Doug Kearns) Solution: Use the xml file type. (Doug Kearns)
Files: runtime/filetype.vim, src/testdir/test_filetype.vim Files: runtime/filetype.vim, src/testdir/test_filetype.vim
@ -22231,7 +22359,7 @@ Files: src/ex_docmd.c, src/charset.c, src/proto/charset.pro,
Patch 8.2.3695 Patch 8.2.3695
Problem: Confusing error for missing key. Problem: Confusing error for missing key.
Solution: Use the actualy key for the error. (closes #9241) Solution: Use the actual key for the error. (closes #9241)
Files: src/eval.c, src/testdir/test_listdict.vim Files: src/eval.c, src/testdir/test_listdict.vim
Patch 8.2.3696 Patch 8.2.3696
@ -22772,7 +22900,7 @@ Solution: Include all the recent changes.
Files: runtime/doc/options.txt Files: runtime/doc/options.txt
Patch 8.2.3785 Patch 8.2.3785
Problem: Running CI on MacOS with gcc is not useful. Problem: Running CI on macOS with gcc is not useful.
Solution: Only use clang. (Ozaki Kiichi, closes #9326) Also build with Solution: Only use clang. (Ozaki Kiichi, closes #9326) Also build with
normal features. normal features.
Files: .github/workflows/ci.yml Files: .github/workflows/ci.yml
@ -22821,7 +22949,7 @@ Files: src/change.c
Patch 8.2.3792 Patch 8.2.3792
Problem: Setting *func options insufficiently tested. Problem: Setting *func options insufficiently tested.
Solution: Impove tests. (Yegappan Lakshmanan, closes #9337) Solution: Improve tests. (Yegappan Lakshmanan, closes #9337)
Files: src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim, Files: src/testdir/test_iminsert.vim, src/testdir/test_ins_complete.vim,
src/testdir/test_normal.vim, src/testdir/test_quickfix.vim, src/testdir/test_normal.vim, src/testdir/test_quickfix.vim,
src/testdir/test_tagfunc.vim src/testdir/test_tagfunc.vim
@ -22830,7 +22958,7 @@ Patch 8.2.3793
Problem: Using "g:Func" as a funcref does not work in script context Problem: Using "g:Func" as a funcref does not work in script context
because "g:" is dropped. because "g:" is dropped.
Solution: Keep "g:" in the name. Also add parenthesis to avoid confusing Solution: Keep "g:" in the name. Also add parenthesis to avoid confusing
operator prececence. (closes #9336) operator precedence. (closes #9336)
Files: src/evalvars.c, src/testdir/test_vim9_func.vim Files: src/evalvars.c, src/testdir/test_vim9_func.vim
Patch 8.2.3794 Patch 8.2.3794
@ -22962,7 +23090,7 @@ Files: src/ex_docmd.c, src/charset.c, src/proto/charset.pro,
src/eval.c, src/testdir/test_vim9_expr.vim src/eval.c, src/testdir/test_vim9_expr.vim
Patch 8.2.3816 Patch 8.2.3816
Problem: Compiler warning for posible loss of data on MS-Windows. Problem: Compiler warning for possible loss of data on MS-Windows.
Solution: Add type cast. (Mike Williams, closes #9349) Solution: Add type cast. (Mike Williams, closes #9349)
Files: src/userfunc.c Files: src/userfunc.c
@ -23011,7 +23139,7 @@ Files: src/testdir/test_visual.vim
Patch 8.2.3824 Patch 8.2.3824
Problem: No ASAN support for MSVC. Problem: No ASAN support for MSVC.
Solution: Add ASAN support and fix a coupld of uncovered problems. (Yegappan Solution: Add ASAN support and fix a couple of uncovered problems. (Yegappan
Lakshmanan, closes #9357) Lakshmanan, closes #9357)
Files: src/Make_mvc.mak, src/findfile.c, src/os_mswin.c, Files: src/Make_mvc.mak, src/findfile.c, src/os_mswin.c,
src/testdir/test_fnamemodify.vim src/testdir/test_fnamemodify.vim
@ -23178,7 +23306,7 @@ Files: src/eval.c, src/testdir/test_messages.vim
Patch 8.2.3851 Patch 8.2.3851
Problem: Vim9: overhead when comparing string, dict or function. Problem: Vim9: overhead when comparing string, dict or function.
Solution: Call the intented compare function directly. Refactor to avoid Solution: Call the intended compare function directly. Refactor to avoid
duplicated code. duplicated code.
Files: src/vim9execute.c, src/typval.c, src/proto/typval.pro Files: src/vim9execute.c, src/typval.c, src/proto/typval.pro
@ -23662,7 +23790,7 @@ Solution: Correct order of function arguments.
Files: src/userfunc.c Files: src/userfunc.c
Patch 8.2.3929 Patch 8.2.3929
Problem: Using unititialized variable. Problem: Using uninitialized variable.
Solution: Set the option flags to zero for a terminal option. Solution: Set the option flags to zero for a terminal option.
Files: src/option.c Files: src/option.c
@ -23985,7 +24113,7 @@ Files: src/errors.h, src/change.c, src/clientserver.c, src/eval.c,
src/terminal.c, src/textprop.c, src/userfunc.c src/terminal.c, src/textprop.c, src/userfunc.c
Patch 8.2.3978 Patch 8.2.3978
Problem: Build error when using dynamycally loaded Python 3. Problem: Build error when using dynamically loaded Python 3.
Solution: Adjust #ifdef. Solution: Adjust #ifdef.
Files: src/errors.h Files: src/errors.h
@ -24403,7 +24531,7 @@ Files: src/alloc.c, src/proto/alloc.pro, src/vim9compile.c,
src/usercmd.c, src/viminfo.c, src/testdir/test_vim9_func.vim src/usercmd.c, src/viminfo.c, src/testdir/test_vim9_func.vim
Patch 8.2.4041 Patch 8.2.4041
Problem: Using unitialized pointer. Problem: Using uninitialized pointer.
Solution: Store "ht" when variable is in another script. Solution: Store "ht" when variable is in another script.
Files: src/evalvars.c Files: src/evalvars.c
@ -24414,7 +24542,7 @@ Files: src/vim9execute.c
Patch 8.2.4043 Patch 8.2.4043
Problem: Using int for second argument of ga_init2(). Problem: Using int for second argument of ga_init2().
Solution: Remove unnessary type cast (int) when using sizeof(). Solution: Remove unnecessary type cast (int) when using sizeof().
Files: src/arglist.c, src/channel.c, src/cmdexpand.c, src/dict.c, Files: src/arglist.c, src/channel.c, src/cmdexpand.c, src/dict.c,
src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c, src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c,
src/evalwindow.c, src/ex_docmd.c, src/fileio.c, src/filepath.c, src/evalwindow.c, src/ex_docmd.c, src/fileio.c, src/filepath.c,
@ -24662,7 +24790,7 @@ Solution: Only lower case the prefix on systems where the file name is not
Files: src/scriptfile.c, src/testdir/test_vim9_import.vim Files: src/scriptfile.c, src/testdir/test_vim9_import.vim
Patch 8.2.4083 Patch 8.2.4083
Problem: Vim9: no test for "vim9script autoload' and using script variable Problem: Vim9: no test for "vim9script autoload" and using script variable
in the same script. in the same script.
Solution: Add a simple test. Fix uncovered problem. Solution: Add a simple test. Fix uncovered problem.
Files: src/evalvars.c, src/testdir/test_vim9_import.vim Files: src/evalvars.c, src/testdir/test_vim9_import.vim
@ -24714,7 +24842,7 @@ Solution: Just use "w_virtcol". (closes #9523)
Files: src/buffer.c, src/testdir/test_statusline.vim Files: src/buffer.c, src/testdir/test_statusline.vim
Patch 8.2.4092 Patch 8.2.4092
Problem: MacOS CI: unnecessarily doing "Install packages". Problem: macOS CI: unnecessarily doing "Install packages".
Solution: Only do "Install packages" for huge build. (Ozaki Kiichi, Solution: Only do "Install packages" for huge build. (Ozaki Kiichi,
closes #9521) closes #9521)
Files: .github/workflows/ci.yml Files: .github/workflows/ci.yml
@ -24778,8 +24906,8 @@ Solution: Recognize an imported function name. (closes #9496)
Files: src/eval.c, src/testdir/test_vim9_import.vim Files: src/eval.c, src/testdir/test_vim9_import.vim
Patch 8.2.4103 Patch 8.2.4103
Problem: Vim9: variable declared in for loop not initialzed. Problem: Vim9: variable declared in for loop not initialized.
Solution: Always initialze the variable. (closes #9535) Solution: Always initialize the variable. (closes #9535)
Files: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c, Files: src/vim9instr.c, src/proto/vim9instr.pro, src/vim9compile.c,
src/testdir/test_vim9_assign.vim src/testdir/test_vim9_assign.vim
@ -24812,8 +24940,8 @@ Files: src/drawscreen.c
Patch 8.2.4109 Patch 8.2.4109
Problem: MS-Windows: high dpi support is outdated. Problem: MS-Windows: high dpi support is outdated.
Solution: Improve High DPI support by using PerMonitorV2. (closes #9525, Solution: Improve High DPI support by using PerMonitorV2. (Ken Takata
closes #3102) closes #9525, closes #3102)
Files: src/gui.c, src/gui.h, src/gui_w32.c, src/vim.manifest Files: src/gui.c, src/gui.h, src/gui_w32.c, src/vim.manifest
Patch 8.2.4110 Patch 8.2.4110
@ -24822,7 +24950,7 @@ Solution: Check "evalarg" is not NULL. Skip errors when "verbose" is false.
Files: src/eval.c Files: src/eval.c
Patch 8.2.4111 Patch 8.2.4111
Problem: Potential proglem when map is deleted while executing. Problem: Potential problem when map is deleted while executing.
Solution: Reset last used map pointer when deleting a mapping. Solution: Reset last used map pointer when deleting a mapping.
Files: src/map.c Files: src/map.c
@ -24940,7 +25068,7 @@ Files: src/vim9script.c, src/testdir/test_vim9_import.vim
Patch 8.2.4133 Patch 8.2.4133
Problem: output of ":scriptnames" goes into the message history, while this Problem: output of ":scriptnames" goes into the message history, while this
des not happen for other commands, such as ":ls". does not happen for other commands, such as ":ls".
Solution: Use msg_outtrans() instead of smsg(). (closes #9551) Solution: Use msg_outtrans() instead of smsg(). (closes #9551)
Files: src/scriptfile.c, src/testdir/test_scriptnames.vim Files: src/scriptfile.c, src/testdir/test_scriptnames.vim
@ -24963,7 +25091,7 @@ Files: runtime/doc/vim9.txt, runtime/doc/repeat.txt, src/vim9script.c,
Patch 8.2.4137 Patch 8.2.4137
Problem: Vim9: calling import with and without method is inconsistent. Problem: Vim9: calling import with and without method is inconsistent.
Solution: Set a flag that a parenthsis follows to compile_load_scriptvar(). Solution: Set a flag that a parenthesis follows to compile_load_scriptvar().
Add some more tests. Improve error message. Add some more tests. Improve error message.
Files: src/vim9expr.c, src/vim9execute.c, src/vim9script.c, Files: src/vim9expr.c, src/vim9execute.c, src/vim9script.c,
src/testdir/test_vim9_import.vim src/testdir/test_vim9_import.vim
@ -25142,7 +25270,7 @@ Files: src/userfunc.c, src/testdir/test_autoload.vim,
src/testdir/sautest/autoload/foo.vim src/testdir/sautest/autoload/foo.vim
Patch 8.2.4169 Patch 8.2.4169
Problem: MS-Windows: unnessary casts and other minor things. Problem: MS-Windows: unnecessary casts and other minor things.
Solution: Clean up the MS-Windows code. (Ken Takata, closes #9583) Solution: Clean up the MS-Windows code. (Ken Takata, closes #9583)
Files: src/gui_w32.c Files: src/gui_w32.c
@ -25571,7 +25699,7 @@ Files: src/testdir/test_lua.vim
Patch 8.2.4244 Patch 8.2.4244
Problem: MS-Windows: warning from MSVC on debug build. Problem: MS-Windows: warning from MSVC on debug build.
Solution: Adjust "/opt"o options. Remove unused variables. Make variables Solution: Adjust "/opt" options. Remove unused variables. Make variables
uppercase for consistency. (Ken Takata, closes #9647) uppercase for consistency. (Ken Takata, closes #9647)
Files: src/Make_mvc.mak Files: src/Make_mvc.mak
@ -25894,7 +26022,7 @@ Files: src/gui_w32.c
Patch 8.2.4291 Patch 8.2.4291
Problem: Error number used twice. Problem: Error number used twice.
Solution: Renumber of of the errors. Solution: Renumber the errors.
Files: src/errors.h Files: src/errors.h
Patch 8.2.4292 (after 8.2.4291) Patch 8.2.4292 (after 8.2.4291)
@ -26129,7 +26257,7 @@ Solution: When deleting the current buffer to not pick a quickfix buffer as
Files: src/buffer.c, src/testdir/test_quickfix.vim Files: src/buffer.c, src/testdir/test_quickfix.vim
Patch 8.2.4328 Patch 8.2.4328
Problem: Command line complete matches cleard when typing character. Problem: Command line complete matches cleared when typing character.
(Dominique Pellé) (Dominique Pellé)
Solution: Only remove a popup menu if there is one. Solution: Only remove a popup menu if there is one.
Files: src/ex_getln.c, src/testdir/test_cmdline.vim, Files: src/ex_getln.c, src/testdir/test_cmdline.vim,
@ -26160,7 +26288,7 @@ Files: src/userfunc.c, src/vim9compile.c, src/proto/vim9compile.pro,
Patch 8.2.4333 Patch 8.2.4333
Problem: cstack not always passed to where it is needed. Problem: cstack not always passed to where it is needed.
Solution: Pass ctack through functions. Solution: Pass cstack through functions.
Files: src/eval.c, src/vim9expr.c, src/vim9script.c, Files: src/eval.c, src/vim9expr.c, src/vim9script.c,
src/proto/vim9script.pro, src/vim9compile.c, src/proto/vim9script.pro, src/vim9compile.c,
src/proto/vim9compile.pro src/proto/vim9compile.pro
@ -26746,7 +26874,7 @@ Files: src/Makefile, src/installman.sh
Patch 8.2.4422 Patch 8.2.4422
Problem: Autochdir test fails on MS-Windows. Problem: Autochdir test fails on MS-Windows.
Solution: Expecta nother error on MS-Windows. Solution: Expect another error on MS-Windows.
Files: src/testdir/test_autochdir.vim Files: src/testdir/test_autochdir.vim
Patch 8.2.4423 Patch 8.2.4423

View File

@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2022 Feb 23 *vim9.txt* For Vim version 8.2. Last change: 2022 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1803,6 +1803,17 @@ threaded, connecting asynchronous operations is a natural way of allowing
plugins to do their work without blocking the user. It's a uniform way to plugins to do their work without blocking the user. It's a uniform way to
invoke callbacks and handle timeouts and errors. invoke callbacks and handle timeouts and errors.
Some commands have already been reserved:
*:class*
*:endclass*
*:abstract*
*:enum*
*:endenum*
*:interface*
*:endinterface*
*:static*
*:type*
Some examples: > Some examples: >
abstract class Person abstract class Person

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: ant " Language: ant
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: aspvbs " Language: aspvbs
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: config " Language: config
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: csc " Language: csc
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: csh " Language: csh
" Maintainer: Doug Kearns <dougkearns@gmail.com> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> " Previous Maintainer: Dan Sharp
" Contributor: Johannes Zellner <johannes@zellner.org> " Contributor: Johannes Zellner <johannes@zellner.org>
" Last Change: 2021 Oct 15 " Last Change: 2021 Oct 15

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: dtd " Language: dtd
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: html " Language: html
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: Java " Language: Java
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Change: 2012 Mar 11 " Last Change: 2012 Mar 11
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: jsp " Language: jsp
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: Pascal " Language: Pascal
" Maintainer: Doug Kearns <dougkearns@gmail.com> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> " Previous Maintainer: Dan Sharp
" Last Change: 2021 Apr 23 " Last Change: 2021 Apr 23
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: php " Language: php
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: sgml " Language: sgml
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: sh " Language: sh
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: svg " Language: svg
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: tcsh " Language: tcsh
" Maintainer: Doug Kearns <dougkearns@gmail.com> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> " Previous Maintainer: Dan Sharp
" Last Change: 2021 Oct 15 " Last Change: 2021 Oct 15
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: xhtml " Language: xhtml
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -3,7 +3,7 @@
" Maintainer: Christian Brabandt <cb@256bit.org> " Maintainer: Christian Brabandt <cb@256bit.org>
" Last Changed: Dec 07th, 2018 " Last Changed: Dec 07th, 2018
" Repository: https://github.com/chrisbra/vim-xml-ftplugin " Repository: https://github.com/chrisbra/vim-xml-ftplugin
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> " Previous Maintainer: Dan Sharp
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin " URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: xsd " Language: xsd
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,8 +1,10 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: xslt " Language: xslt
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> "
" This runtime file is looking for a new maintainer.
"
" Former maintainer: Dan Sharp
" Last Changed: 20 Jan 2009 " Last Changed: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif

View File

@ -1,7 +1,7 @@
" Vim indent file " Vim indent file
" Language: Vim script " Language: Vim script
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Feb 23 " Last Change: 2022 Mar 01
" Only load this indent file when no other was loaded. " Only load this indent file when no other was loaded.
if exists("b:did_indent") if exists("b:did_indent")
@ -105,7 +105,7 @@ function GetVimIndentIntern()
" terminated dict. " terminated dict.
" ":function" starts a block but "function(" doesn't. " ":function" starts a block but "function(" doesn't.
if prev_text !~ '^\s*au\%[tocmd]' && prev_text !~ '^\s*{.*}' if prev_text !~ '^\s*au\%[tocmd]' && prev_text !~ '^\s*{.*}'
let i = match(prev_text, '\(^\||\)\s*\(export\s\+\)\?\({\|\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\|finall\%[y]\|def\|el\%[seif]\)\>\|fu\%[nction]\s\)') let i = match(prev_text, '\(^\||\)\s*\(export\s\+\)\?\({\|\(if\|wh\%[ile]\|for\|try\|cat\%[ch]\|fina\|finall\%[y]\|def\|el\%[seif]\)\>\|fu\%[nction][! ]\)')
if i >= 0 if i >= 0
let ind += shiftwidth() let ind += shiftwidth()
if strpart(prev_text, i, 1) == '|' && has('syntax_items') if strpart(prev_text, i, 1) == '|' && has('syntax_items')

View File

@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus. " You can also use this as a start for your own set of menus.
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Feb 23 " Last Change: 2022 Mar 02
" Note that ":an" (short for ":anoremenu") is often used to make a menu work " Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user. " in all modes and avoid side effects from mappings defined by the user.
@ -583,9 +583,9 @@ def s:XxdConv()
:%!mc vim:xxd :%!mc vim:xxd
else else
s:XxdFind() s:XxdFind()
exe '%!' .. g:xxdprogram exe ':%!' .. g:xxdprogram
endif endif
if getline(1) =~ "^0000000:" # only if it worked if getline(1) =~ "^00000000:" # only if it worked
set ft=xxd set ft=xxd
endif endif
&mod = mod &mod = mod
@ -597,7 +597,7 @@ def s:XxdBack()
:%!mc vim:xxd -r :%!mc vim:xxd -r
else else
s:XxdFind() s:XxdFind()
exe '%!' .. g:xxdprogram .. ' -r' exe ':%!' .. g:xxdprogram .. ' -r'
endif endif
set ft= set ft=
doautocmd filetypedetect BufReadPost doautocmd filetypedetect BufReadPost