summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-06-20 11:17:32 +0100
committerBram Moolenaar <Bram@vim.org>2022-06-20 11:17:32 +0100
commitd799daa660b8821943cbe1682f00da9e812dd48c (patch)
tree1d08e90a0a11ca9aced21d776ea98944622ec5f1 /runtime
parente366ed4f2c6fa8cb663f1b9599b39d57ddbd8a2a (diff)
Update runtime files
Diffstat (limited to 'runtime')
-rw-r--r--runtime/autoload/dist/man.vim196
-rw-r--r--runtime/doc/builtin.txt6
-rw-r--r--runtime/doc/eval.txt4
-rw-r--r--runtime/doc/map.txt12
-rw-r--r--runtime/doc/repeat.txt4
-rw-r--r--runtime/doc/tags2
-rw-r--r--runtime/doc/todo.txt57
-rw-r--r--runtime/doc/version9.txt4370
-rw-r--r--runtime/doc/visual.txt9
-rw-r--r--runtime/ftplugin/man.vim203
-rw-r--r--runtime/indent/confini.vim10
-rw-r--r--runtime/indent/systemd.vim10
-rw-r--r--runtime/indent/yaml.vim40
-rw-r--r--runtime/lang/menu_it_it.latin1.vim73
-rw-r--r--runtime/syntax/vim.vim2
15 files changed, 4672 insertions, 326 deletions
diff --git a/runtime/autoload/dist/man.vim b/runtime/autoload/dist/man.vim
new file mode 100644
index 0000000000..cd584aa718
--- /dev/null
+++ b/runtime/autoload/dist/man.vim
@@ -0,0 +1,196 @@
+" Vim filetype plugin autoload file
+" Language: man
+" Maintainer: Jason Franklin <vim@justemail.net>
+" Maintainer: SungHyun Nam <goweol@gmail.com>
+" Autoload Split: Bram Moolenaar
+" Last Change: 2022 Jun 18
+
+let s:cpo_save = &cpo
+set cpo-=C
+
+let s:man_tag_depth = 0
+
+let s:man_sect_arg = ""
+let s:man_find_arg = "-w"
+try
+ if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5"
+ let s:man_sect_arg = "-s"
+ let s:man_find_arg = "-l"
+ endif
+catch /E145:/
+ " Ignore the error in restricted mode
+endtry
+
+func dist#man#PreGetPage(cnt)
+ if a:cnt == 0
+ let old_isk = &iskeyword
+ if &ft == 'man'
+ setl iskeyword+=(,)
+ endif
+ let str = expand("<cword>")
+ let &l:iskeyword = old_isk
+ let page = substitute(str, '(*\(\k\+\).*', '\1', '')
+ let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '')
+ if match(sect, '^[0-9 ]\+$') == -1
+ let sect = ""
+ endif
+ if sect == page
+ let sect = ""
+ endif
+ else
+ let sect = a:cnt
+ let page = expand("<cword>")
+ endif
+ call dist#man#GetPage('', sect, page)
+endfunc
+
+func s:GetCmdArg(sect, page)
+
+ if empty(a:sect)
+ return shellescape(a:page)
+ endif
+
+ return s:man_sect_arg . ' ' . shellescape(a:sect) . ' ' . shellescape(a:page)
+endfunc
+
+func s:FindPage(sect, page)
+ let l:cmd = printf('man %s %s', s:man_find_arg, s:GetCmdArg(a:sect, a:page))
+ call system(l:cmd)
+
+ if v:shell_error
+ return 0
+ endif
+
+ return 1
+endfunc
+
+func dist#man#GetPage(cmdmods, ...)
+ if a:0 >= 2
+ let sect = a:1
+ let page = a:2
+ elseif a:0 >= 1
+ let sect = ""
+ let page = a:1
+ else
+ return
+ endif
+
+ " To support: nmap K :Man <cword>
+ if page == '<cword>'
+ let page = expand('<cword>')
+ endif
+
+ if !exists('g:ft_man_no_sect_fallback') || (g:ft_man_no_sect_fallback == 0)
+ if sect != "" && s:FindPage(sect, page) == 0
+ let sect = ""
+ endif
+ endif
+ if s:FindPage(sect, page) == 0
+ let msg = 'man.vim: no manual entry for "' . page . '"'
+ if !empty(sect)
+ let msg .= ' in section ' . sect
+ endif
+ echomsg msg
+ return
+ endif
+ exec "let s:man_tag_buf_".s:man_tag_depth." = ".bufnr("%")
+ exec "let s:man_tag_lin_".s:man_tag_depth." = ".line(".")
+ exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".")
+ let s:man_tag_depth = s:man_tag_depth + 1
+
+ let open_cmd = 'edit'
+
+ " Use an existing "man" window if it exists, otherwise open a new one.
+ if &filetype != "man"
+ let thiswin = winnr()
+ exe "norm! \<C-W>b"
+ if winnr() > 1
+ exe "norm! " . thiswin . "\<C-W>w"
+ while 1
+ if &filetype == "man"
+ break
+ endif
+ exe "norm! \<C-W>w"
+ if thiswin == winnr()
+ break
+ endif
+ endwhile
+ endif
+ if &filetype != "man"
+ if exists("g:ft_man_open_mode")
+ if g:ft_man_open_mode == 'vert'
+ let open_cmd = 'vsplit'
+ elseif g:ft_man_open_mode == 'tab'
+ let open_cmd = 'tabedit'
+ else
+ let open_cmd = 'split'
+ endif
+ else
+ let open_cmd = a:cmdmods . ' split'
+ endif
+ endif
+ endif
+
+ silent execute open_cmd . " $HOME/" . page . '.' . sect . '~'
+
+ " Avoid warning for editing the dummy file twice
+ setl buftype=nofile noswapfile
+
+ setl fdc=0 ma nofen nonu nornu
+ %delete _
+ let unsetwidth = 0
+ if empty($MANWIDTH)
+ let $MANWIDTH = winwidth(0)
+ let unsetwidth = 1
+ endif
+
+ " Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[
+ " on a man page reference by unsetting MANPAGER.
+ " Some versions of env(1) do not support the '-u' option, and in such case
+ " we set MANPAGER=cat.
+ if !exists('s:env_has_u')
+ call system('env -u x true')
+ let s:env_has_u = (v:shell_error == 0)
+ endif
+ let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat'
+ let env_cmd .= ' GROFF_NO_SGR=1'
+ let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b'
+ silent exec "r !" . man_cmd
+
+ if unsetwidth
+ let $MANWIDTH = ''
+ endif
+ " Remove blank lines from top and bottom.
+ while line('$') > 1 && getline(1) =~ '^\s*$'
+ 1delete _
+ endwhile
+ while line('$') > 1 && getline('$') =~ '^\s*$'
+ $delete _
+ endwhile
+ 1
+ setl ft=man nomod
+ setl bufhidden=hide
+ setl nobuflisted
+ setl noma
+endfunc
+
+func dist#man#PopPage()
+ if s:man_tag_depth > 0
+ let s:man_tag_depth = s:man_tag_depth - 1
+ exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth
+ exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth
+ exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth
+ exec s:man_tag_buf."b"
+ exec s:man_tag_lin
+ exec "norm! ".s:man_tag_col."|"
+ exec "unlet s:man_tag_buf_".s:man_tag_depth
+ exec "unlet s:man_tag_lin_".s:man_tag_depth
+ exec "unlet s:man_tag_col_".s:man_tag_depth
+ unlet s:man_tag_buf s:man_tag_lin s:man_tag_col
+ endif
+endfunc
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: set sw=2 ts=8 noet:
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index f0c1ddc1b3..c26a8574ea 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt* For Vim version 8.2. Last change: 2022 Jun 16
+*builtin.txt* For Vim version 8.2. Last change: 2022 Jun 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2869,7 +2869,7 @@ fnamemodify({fname}, {mods}) *fnamemodify()*
Example: >
:echo fnamemodify("main.c", ":p:h")
< results in: >
- /home/mool/vim/vim/src
+ /home/user/vim/vim/src
< If {mods} is empty or an unsupported modifier is used then
{fname} is returned.
Note: Environment variables don't work in {fname}, use
@@ -10022,8 +10022,6 @@ win_gettype([{nr}]) *win_gettype()*
popup window then 'buftype' is "terminal" and win_gettype()
returns "popup".
- Return an empty string if the window cannot be found.
-
Can also be used as a |method|: >
GetWinid()->win_gettype()
<
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 237db87c21..6929f9c77b 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 8.2. Last change: 2022 Jun 03
+*eval.txt* For Vim version 8.2. Last change: 2022 Jun 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -531,7 +531,7 @@ entry. Note that the String '04' and the Number 04 are different, since the
Number will be converted to the String '4', leading zeros are dropped. The
empty string can also be used as a key.
-In |Vim9| script literally keys can be used if the key consists of alphanumeric
+In |Vim9| script a literal key can be used if it consists only of alphanumeric
characters, underscore and dash, see |vim9-literal-dict|.
*literal-Dict* *#{}*
To avoid having to put quotes around every key the #{} form can be used in
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index bcaa3745ee..91df903a39 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 8.2. Last change: 2022 Jun 14
+*map.txt* For Vim version 8.2. Last change: 2022 Jun 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -394,15 +394,7 @@ Note:
mapping is recursive.
- In Visual mode you can use `line('v')` and `col('v')` to get one end of the
Visual area, the cursor is at the other end.
-- In Select mode, |:map| and |:vmap| command mappings are executed in
- Visual mode. Use |:smap| to handle Select mode differently. One particular
- edge case: >
- :vnoremap <C-K> <Esc>
-< This ends Visual mode when in Visual mode, but in Select mode it does not
- work, because Select mode is restored after executing the mapped keys. You
- need to use: >
- :snoremap <C-K> <Esc>
-<
+
*E1255* *E1136*
<Cmd> and <ScriptCmd> commands must terminate, that is, they must be followed
by <CR> in the {rhs} of the mapping definition. |Command-line| mode is never
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 2ee4476d89..e9816bc0a2 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt* For Vim version 8.2. Last change: 2022 Apr 08
+*repeat.txt* For Vim version 8.2. Last change: 2022 Jun 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -197,7 +197,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
:so[urce] {file} Read Ex commands from {file}. These are commands that
start with a ":".
Triggers the |SourcePre| autocommand.
-
+ *:source-range*
:[range]so[urce] [++clear]
Read Ex commands from the [range] of lines in the
current buffer.
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 00407a79cc..7481605b15 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3197,6 +3197,7 @@ $quote eval.txt /*$quote*
:sort change.txt /*:sort*
:source repeat.txt /*:source*
:source! repeat.txt /*:source!*
+:source-range repeat.txt /*:source-range*
:source_crnl repeat.txt /*:source_crnl*
:sp windows.txt /*:sp*
:spe spell.txt /*:spe*
@@ -5444,6 +5445,7 @@ SpellFileMissing autocmd.txt /*SpellFileMissing*
StdinReadPost autocmd.txt /*StdinReadPost*
StdinReadPre autocmd.txt /*StdinReadPre*
String eval.txt /*String*
+Sven-Guckes version9.txt /*Sven-Guckes*
SwapExists autocmd.txt /*SwapExists*
Syntax autocmd.txt /*Syntax*
T motion.txt /*T*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 7716e394ba..8285df9aaa 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 8.2. Last change: 2022 Jun 17
+*todo.txt* For Vim version 8.2. Last change: 2022 Jun 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -38,18 +38,15 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Searchpair() timeout using skip expression using synID() interferes with
-syntax highlighting. #10562
-Add flag that timeout is set for 'redrawtime' and only then set b_syn_slow.
-
Prepare for Vim 9.0 release:
- Update the user manual:
- Add more to usr_50.txt as an "advanced section" of usr_41.txt
- Move some from vim9.txt to the user manual? Keep the specification.
-- Use Vim9 for more runtime files.
+- Update version9.txt
- Adjust intro message to say "help version9".
Further Vim9 improvements, possibly after launch:
+- Use Vim9 for more runtime files.
- Check performance with callgrind and kcachegrind.
getline()/substitute()/setline() in #5632
- Better implementation for partial and tests for that.
@@ -80,7 +77,8 @@ Further Vim9 improvements, possibly after launch:
Update list of features to vote on:
- multiple cursors
- built-in LSP support
-- start first line halfway
+- virtual text, using text properties
+- start first line halfway, scroll per screen line
Popup windows:
- Preview popup not properly updated when it overlaps with completion menu.
@@ -206,8 +204,15 @@ Terminal emulator window:
- When 'encoding' is not utf-8, or the job is using another encoding, setup
conversions.
+Patches considered for including:
+- Add "-n" option to xxd. #10599
+- Support %e and %k in 'errorformat'. #9624
+- Add support for "underdouble", "underdot" and "underdash". #9553
+- Patch to implement the vimtutor with a plugin: #6414
+ Was originally written by Felipe Morales.
+- Patch to make fillchars global-local. (#5206)
+
Autoconf: must use autoconf 2.69, later version generates lots of warnings
- attempt in ~/tmp/configure.ac
- try using autoconf 2.71 and fix all "obsolete" warnings
Can deref_func_name() and deref_function_name() be merged?
@@ -228,32 +233,15 @@ pass it on with modifications.
Can "CSI nr X" be used instead of outputting spaces? Is it faster? #8002
-Valgrind reports memory leaks in test_options.
-Valgrind reports overlapping memcpy in
- test_conceal.3
- test_edit.1
- test_functions.4
- test_ins_complete.3
- test_method
- test_normal
- test_popupwin.35 et al.
- test_search_stat
-Memory leak in test_debugger
-Memory leak in test_paste, using XtOpenDisplay several times
-OLD:
-TODO: be able to run all parts of test_alot with valgrind separately
-Memory leak in test_alot with pyeval() (allocating partial)
-Memory leak in test_alot with expand()
-Memory leaks in test_channel? (or is it because of fork())
-
-PR to support %e and %k in 'errorformat'. #9624
+Problems reported by Valgrind:
+Memory leaks in test_channel, in func Test_job_start_fails(). Weird.
With a window height of 6 and 'scrolloff' set to 3, using "j" does not scroll
-evenly. (#10545)
+evenly. (#10545) Need to handle this in scroll_cursor_bot().
Idea: when typing ":e /some/dir/" and "dir" does not exist, highlight in red.
-":set &shellpipe" and ":set &shellredir" should use the logic from
+":set shellpipe&" and ":set shellredir&" should use the logic from
initialization to figure out the default value from 'shell'. Add a test for
this.
@@ -266,8 +254,6 @@ The line number can be obtained from win->w_lines[].
MS-Windows: did path modifier :p:8 stop working? #8600
-Add support for "underdouble", "underdot" and "underdash". #9553
-
test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is
@@ -278,9 +264,6 @@ Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
Also see #8487 for an example.
-Patch to implement the vimtutor with a plugin: #6414
-Was originally written by Felipe Morales.
-
Request to use "." for the cursor column in search pattern \%<.c and \%<.v.
(#8179)
@@ -317,8 +300,6 @@ with 'termguicolors'. #1740
Patch for blockwise paste reporting changes: #6660. Asked for a PR.
-Patch to make fillchars global-local. (#5206)
-
Missing filetype test for bashrc, PKGBUILD, etc.
Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
@@ -339,6 +320,10 @@ Try setting a color then request the current color, like using t_u7.
Make the jumplist behave like a tag stack. (#7738) Should there be a more
time bound navigation, like with undo?
+For testing, make a copy of ml_line_ptr instead of pointing it into the data
+block, so that valgrind can do out of bounds check. Set ML_LINE_DIRTY flag or
+add ML_LINE_ALLOCED.
+
Changing a capturing group to non-capturing changes the result: #7607
:echo matchstr('aaa bbb', '\(.\{-1,}\>\)\|.*')
aaa
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index 7d5c2585ea..b9713b3952 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt* For Vim version 8.2. Last change: 2022 Mar 08
+*version9.txt* For Vim version 8.2. Last change: 2022 Jun 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7,9 +7,9 @@
*vim-9.0* *vim-9* *version-9.0* *version9.0*
Welcome to Vim 9! Several years have passed since the previous release.
A large number of bugs have been fixed, many nice features have been added
-and Vim9 script syntax is introduced. This file mentions all the new items
-and changes to existing features since Vim 8.2.0. The patches up to Vim 8.2
-can be found here: |vim-8.2|.
+and Vim9 script syntax has been introduced. This file mentions all the new
+things and changes to existing features since Vim 8.2.0. The patches up to Vim
+8.2 can be found here: |vim-8.2|.
Use this command to see the full version and features information of the Vim
program you are using: >
@@ -35,7 +35,7 @@ See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and
You can find an overview of the most important changes (according to Martin
Tournoij) on this site: https://www.arp242.net/vimlog/
-
+ *Sven-Guckes*
Vim version 9.0 is dedicated to Sven Guckes, who passed away in February 2022
when the release was being prepared. Sven was a long time supporter of Vim.
He registered the vim.org domain and created the first Vim website. We will
@@ -75,7 +75,9 @@ Options: ~
'autoshelldir' change directory to the shell's current directory
'cdhome' change directory to the home directory by ":cd"
+'cinscopedecls' words that are recognized by 'cino-g'
'guiligatures' GTK GUI: ASCII characters that can form shapes
+'mousemoveevent' report mouse moves with <MouseMove>
'quickfixtextfunc' function for the text in the quickfix window
'spelloptions' options for spell checking
'thesaurusfunc' function to be used for thesaurus completion
@@ -116,6 +118,9 @@ Ex command modifiers: ~
New and extended functions: ~
|assert_nobeep()| assert that a command does not cause a beep
+|autocmd_add()| add a list of autocmds and groups
+|autocmd_delete()| delete a list of autocmds and groups
+|autocmd_get()| return a list of autocmds
|blob2list()| get a list of numbers from a blob
|charclass()| class of a character
|charcol()| character number of the cursor or a mark
@@ -132,13 +137,16 @@ New and extended functions: ~
|fullcommand()| get full command name
|getcharpos()| get character position of cursor, mark, etc.
|getcharstr()| get a character from the user as a string
+|getcmdcompltype()| return current cmdline completion type
|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
+|isabsolutepath()| check if a path is absolute
|list2blob()| get a blob from a list of numbers
+|maplist()| list of all mappings, a dict for each
|mapnew()| make a new List with changed items
|mapset()| restore a mapping
|matchfuzzy()| fuzzy matches a string in a list of strings
@@ -164,6 +172,7 @@ New and extended functions: ~
|test_unknown()| return a value with unknown type
|test_void()| return a value with void type
|typename()| type of a variable as text
+|virtcol2col()| byte index of a character on screen
|win_gettype()| get type of window
|win_move_separator()| move window vertical separator
|win_move_statusline()| move window status line
@@ -193,10 +202,17 @@ New autocommand events: ~
|ModeChanged| after changing the mode
|SigUSR1| after the SIGUSR1 signal has been detected
|WinClosed| after closing a window
+|WinScrolled| after scrolling or resizing a window
|VimSuspend| when suspending Vim
|VimResume| when Vim is resumed after being suspended
+New operator: ~
+
+|>>| bitwise right shift
+|<<| bitwise left shift
+|??| falsy operator
+
New runtime files: ~
Too many to list here.
@@ -205,17 +221,128 @@ Too many to list here.
INCOMPATIBLE CHANGES *incompatible-9*
These changes are incompatible with previous releases. Check this list if you
-run into a problem when upgrading from Vim 8.2.0 to 9.0.
+run into a problem when upgrading from Vim 8.2 to 9.0.
TODO
==============================================================================
IMPROVEMENTS *improvements-9*
+Various small and useful improvements have been made since Vim 8.2. Here is a
+collection of changes that are worth mentioning.
+
Many memory leaks, invalid memory accesses and crashes have been fixed.
-See the list of patches below.
+See the list of patches below: |bug-fixes-9|.
-TODO
+Support for Vim expression evaluation in a string. |interp-string|
+Support for evaluating Vim expressions in a heredoc. |:let-heredoc|
+
+Display the command line completion matches in a popup menu. 'wildoptions'
+
+Support for fuzzy matching a string in a List of strings. |fuzzy-matching|
+
+Fuzzy completion support for command line completion using 'wildoptions'.
+
+Fuzzy match support for |:vimgrep|.
+
+Support for "lsp" channel mode to simplify LSP server RPC communication
+|language-server-protocol|.
+
+Support for sourcing lines from the current buffer. |:source-range|
+
+Support for stopping profiling a Vim script: `:profile stop` and dumping the
+report to a file: `:profile dump` . |:profile|
+
+Argument completion support for the |:scriptnames|, |:profile|, |:profdel|,
+|:breakadd| and |:breakdel| commands.
+
+Support for using a funcref/lambda value with the 'foldtext', 'completefunc',
+'omnifunc', 'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc',
+'imactivatefunc' and 'imstatusfunc' options.
+
+Support for using multibyte items with the 'fillchars', 'stl' and 'stlnc'
+options.
+
+Support for xchacha20 encryption method 'cryptmethod'
+
+Spell check current word with |z=| even when 'spell' is off.
+
+Support for executing Ex commands in a map without changing the current mode
+|<Cmd>| and |<ScriptCmd>|.
+
+A large number of tests have been added to verify the Vim functionality. Most
+of the old style tests have been converted to new style tests using the new
+style assert_* functions.
+
+Add optional error code to |:cquit|.
+
+Support for using a Unix domain socket with a |channel|.
+
+IPv6 support in channels |channel-address|.
+
+Call Vim functions from Lua (vim.call('func', 'arg')).
+
+Add unsigned to 'nrformats'.
+
+Allow setting underline color in terminal.
+
+Expand script ID using expand('<SID>'). |expand()|
+
+Jump to the last accessed tab page using |g<Tab>|.
+
+Locale aware sorting using |:sort| and |sort()|.
+
+Hide cursor when sleeping using |:sleep!|.
+
+Detect focus events in terminal (|FocusGained| and |FocusLost|).
+
+Highlight leading spaces when 'list' is set (|'listchars'|)
+
+Support for looping over a string using |:for|.
+
+Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'.
+
+Support for re-evaluating the 'statusline' expression as a statusline format
+string (%{expr})
+
+Add |zp| and |zP| to paste in block mode without adding trailing white space.
+Add |zy| to yank without trailing white space in block mode.
+
+Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on.
+See |/\%l| for more information.
+
+Add "list" to 'breakindentopt' to add additional indent for lines that match
+a numbered or bulleted list. Add "column" to 'breakindentopt' to indent
+soft-wrapped lines at a specific column.
+
+Add "multispace" to 'listchars' to show two or more spaces no matter where
+they appear.
+
+Add |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to
+adjust sign highlighting for 'cursorline'.
+
+Add the |hl-CurSearch| default highlight group for the current search match.
+
+Support directly setting the 'balloonexpr', 'foldexpr', 'formatexpr',
+'includeexpr', 'printexpr', 'patchexpr', 'indentexpr', 'modelineexpr',
+'diffexpr' and 'printexpr' options to a script-local function.
+
+Add the 'P' command in visual mode to paste text in visual mode without
+yanking the deleted text to the unnamed register.
+
+Add "timeout" to 'spellsuggest' to limit the searching time for spell
+suggestions.
+
+Add support for parsing the end line number (%e) and end column number
+(%k) using 'errorformat'.
+
+Add support for logging on Vim startup (|--log|).
+
+Add "/" in 'formatoptions' to stop inserting // when using "o" on a line with
+inline comment.
+
+
+TODO: more
==============================================================================
COMPILE TIME CHANGES *compile-changes-9*
@@ -26920,9 +27047,4236 @@ Solution: Include the script ID in the partial name.
Files: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c,
src/vim9type.c, src/testdir/test_vim9_import.vim
+Patch 8.2.4430
+Problem: GTK: crash when using 'guiligatures' and reading from stdin.
+Solution: Make a copy of the message. (Amon Sha, closes #9719, closes #9814)
+Files: src/fileio.c
+
+Patch 8.2.4431
+Problem: Unnecessary condition when assigning to a variable.
+Solution: Remove the condition.
+Files: src/evalvars.c
+
+Patch 8.2.4432 (after 8.2.4428)
+Problem: Cannot use settabvar() while the cmdline window is open.
+Solution: Only give an error when actually switching tabpage.
+ (closes #9813)
+Files: src/window.c
+
+Patch 8.2.4433
+Problem: CI: cannot see interface versions for MS-Windows.
+Solution: List the interface versions. (Ken Takata, closes #9811)
+Files: .github/workflows/ci.yml
+
+Patch 8.2.4434
+Problem: Duplicate check for cmdline window.
+Solution: Remove the second check. (Sean Dewar, closes #9816)
+Files: src/window.c
+
+Patch 8.2.4435
+Problem: Dead code in checking map() arguments. (Dominique Pellé)
+Solution: Remove the first return statement. (closes #9815)
+Files: src/evalfunc.c
+
+Patch 8.2.4436
+Problem: Crash with weird 'vartabstop' value.
+Solution: Check for running into the end of the line.
+Files: src/indent.c, src/testdir/test_vartabs.vim
+
+Patch 8.2.4437
+Problem: Vartabs test fails on MS-Windows.
+Solution: Use iso8859-1 'encoding'. (Ken Takata, closes #9818)
+Files: src/testdir/test_vartabs.vim
+
+Patch 8.2.4438
+Problem: Crash on exit when using cmdline window.
+Solution: Reset "cmdwin_type" before exiting. (closes #9817)
+Files: src/ui.c, src/testdir/test_exit.vim
+
+Patch 8.2.4439
+Problem: Accepting "iso8859" 'encoding' as "iso-8859-".
+Solution: use "iso8859" as "iso-8859-1".
+Files: src/mbyte.c, src/testdir/test_options.vim
+
+Patch 8.2.4440
+Problem: Crash with specific regexp pattern and string.
+Solution: Stop at the start of the string.
+Files: src/regexp_bt.c, src/testdir/test_regexp_utf8.vim
+
+Patch 8.2.4441
+Problem: Vim9: function argument of filter() not checked like map().
+Solution: Also check the function argument of filter().
+Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4442 (after 8.2.4438)
+Problem: Test for error reading input fails on MS-Windows.
+Solution: Don't run the test on MS-Windows.
+Files: src/testdir/test_exit.vim
+
+Patch 8.2.4443 (after 8.2.4440)
+Problem: Regexp pattern test fails on Mac.
+Solution: Do not use a swapfile for the buffer.
+Files: src/testdir/test_regexp_utf8.vim
+
+Patch 8.2.4444
+Problem: Beep caused by test. ASAN reports leaks.
+Solution: Do not put a NL at the end of the script. Make the text work on
+ MS-Windows. Do not run the test with ASAN.
+Files: src/testdir/test_exit.vim
+
+Patch 8.2.4445
+Problem: Exit test fails on MS-Windows anyway.
+Solution: Skip the test on MS-Windows.
+Files: src/testdir/test_exit.vim
+
+Patch 8.2.4446
+Problem: Vim9: cannot refer to a global function like a local one.
+Solution: When g:name is not a variable but a function, use a function
+ reference. (closes #9826)
+Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4447
+Problem: Vim9: can still use s:var in a compiled function.
+Solution: Disallow using s:var for Vim9 script. (closes #9824)
+Files: runtime/doc/vim9.txt, src/vim9expr.c, src/vim9compile.c,
+ src/testdir/test_vim9_assign.vim
+
+Patch 8.2.4448 (after 8.2.4447)
+Problem: Filetype detection is failing.
+Solution: Do not use "s:" where it is no longer allowed.
+Files: runtime/autoload/dist/ft.vim,
+
+Patch 8.2.4449
+Problem: vim9: function argument of sort() not checked at compile time.
+Solution: Add a compile time check.
+Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4450 (after 8.2.4449)
+Problem: List sort test fails.
+Solution: Pass a valid "how" argument.
+Files: src/testdir/test_listdict.vim
+
+Patch 8.2.4451 (after 8.2.4450)
+Problem: sort() fails when ignoring case.
+Solution: Accept a number one argument in sort().
+Files: src/evalfunc.c, src/testdir/test_listdict.vim
+
+Patch 8.2.4452
+Problem: Test for what 8.2.4436 fixes does not check for regression.
+Solution: Set several options. (Ken Takata, closes #9830)
+Files: src/testdir/test_vartabs.vim
+
+Patch 8.2.4453
+Problem: :helpgrep may free an option that was not allocated. (Yegappan
+ Lakshmanan)
+Solution: Check if the value was allocated.
+Files: src/option.c, src/proto/option.pro, src/quickfix.c,
+ src/testdir/test_quickfix.vim
+
+Patch 8.2.4454
+Problem: Resetting cmdwin_type only for one situation.
+Solution: Reset cmdwin_type before closing windows. (closes #9822)
+Files: src/ui.c, src/window.c, src/testdir/test_exit.vim
+
+Patch 8.2.4455
+Problem: Accepting one and zero for the second sort() argument is strange.
+Solution: Disallow using one and zero in Vim9 script.
+Files: runtime/doc/builtin.txt, src/evalfunc.c, src/list.c,
+ src/testdir/test_listdict.vim
+
+Patch 8.2.4456
+Problem: Terminal test may fail on some machines.
+Solution: Increase wait time. (Zdenek Dohnal, closes #9834)
+Files: src/testdir/test_terminal.vim
+
+Patch 8.2.4457
+Problem: The GPM library can only be linked statically.
+Solution: Make it possible to load the GPM library dynamically. (Damien)
+Files: runtime/doc/various.txt, src/config.h.in, src/configure.ac,
+ src/Makefile, src/evalfunc.c, src/feature.h, src/os_unix.c,
+ src/proto/os_unix.pro, src/version.c
+
+Patch 8.2.4458
+Problem: Vim9: compiling filter() call fails with funcref that has unknown
+ arguments.
+Solution: Do not check the arguments if they are unknown at compile time.
+ (closes #9835)
+Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4459
+Problem: Vim9: compiling sort() call fails with a funcref that has unknown
+ arguments.
+Solution: Do not check the arguments if they are unknown at compile time.
+ (closes #9835)
+Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4460
+Problem: Vim9: wrong error for defining dict function.
+Solution: Explicitly check for trying to define a dict function.
+ (closes 9827)
+Files: src/errors.h, src/userfunc.c, src/vim9compile.c,
+ src/testdir/test_vim9_func.vim
+
+Patch 8.2.4461
+Problem: MS-Windows: garbage characters on stdout with VIMDLL.
+Solution: Don't call gui_focus_change() when about to quit. (Ken Takata,
+ closes #9840)
+Files: src/gui_w32.c
+
+Patch 8.2.4462
+Problem: Not enough testing for quickfix code.
+Solution: Add more tests. Fix uncovered problem. (Yegappan Lakshmanan,
+ closes #9839)
+Files: src/quickfix.c, src/window.c, src/testdir/test_makeencoding.vim,
+ src/testdir/test_quickfix.vim
+
+Patch 8.2.4463
+Problem: Completion only uses strict matching.
+Solution: Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan,
+ closes #9803)
+Files: runtime/doc/options.txt, src/buffer.c, src/cmdexpand.c,
+ src/option.c, src/option.h, src/optionstr.c,
+ src/proto/cmdexpand.pro, src/proto/option.pro,
+ src/proto/search.pro, src/search.c, src/structs.h,
+ src/testdir/gen_opt_test.vim, src/testdir/test_cmdline.vim
+
+Patch 8.2.4464
+Problem: Dtrace files are recognized as filetype D.
+Solution: Add a pattern for Dtrace files. (Teubel György, closes #9841)
+ Add some more testing.
+Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim,
+ src/testdir/test_filetype.vim
+
+Patch 8.2.4465
+Problem: Fuzzy completion does not order matches properly.
+Solution: Do not use regular expression match. (Yegappan Lakshmanan,
+ closes #9843)
+Files: src/cmdexpand.c, src/search.c, src/testdir/test_cmdline.vim
+
+Patch 8.2.4466
+Problem: MS-Windows: illegal memory access in installer when using
+ "create-directories" as the final argument.
+Solution: Check the argument count. (Cam Sinclair, closes #9844)
+Files: src/dosinst.