]> granicus.if.org Git - vim/commitdiff
Update runtime files
authorBram Moolenaar <Bram@vim.org>
Sun, 4 Sep 2022 16:45:43 +0000 (17:45 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 4 Sep 2022 16:45:43 +0000 (17:45 +0100)
39 files changed:
runtime/colors/blue.vim
runtime/colors/darkblue.vim
runtime/colors/delek.vim
runtime/colors/desert.vim
runtime/colors/elflord.vim
runtime/colors/evening.vim
runtime/colors/habamax.vim
runtime/colors/industry.vim
runtime/colors/koehler.vim
runtime/colors/lunaperche.vim
runtime/colors/morning.vim
runtime/colors/murphy.vim
runtime/colors/pablo.vim
runtime/colors/peachpuff.vim
runtime/colors/quiet.vim
runtime/colors/ron.vim
runtime/colors/shine.vim
runtime/colors/slate.vim
runtime/colors/torte.vim
runtime/colors/zellner.vim
runtime/doc/Makefile
runtime/doc/autocmd.txt
runtime/doc/builtin.txt
runtime/doc/eval.txt
runtime/doc/help.txt
runtime/doc/tags
runtime/doc/todo.txt
runtime/doc/userfunc.txt [new file with mode: 0644]
runtime/doc/windows.txt
runtime/ftplugin/gdscript.vim
runtime/indent/testdir/runtest.vim
runtime/indent/testdir/vim.in
runtime/indent/testdir/vim.ok
runtime/indent/vim.vim
runtime/indent/yaml.vim
runtime/syntax/gdresource.vim
runtime/syntax/gdscript.vim
runtime/syntax/sh.vim
runtime/syntax/vim.vim

index ba1f68be5231f777791c20d596d32815c86fb08f..7ac44c868cd992dcf90b39b2ba2dcd174a01322f 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:34 MSK
+" Last Updated: Fri 02 Sep 2022 09:41:44 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -57,7 +57,7 @@ hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NO
 hi VertSplit guifg=#008787 guibg=NONE gui=NONE cterm=NONE
 hi Visual guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
 hi VisualNOS guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
-hi WarningMsg guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
+hi WarningMsg guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
 hi WildMenu guifg=#000087 guibg=#ffd700 gui=NONE cterm=NONE
 hi debugBreakpoint guifg=#00ff00 guibg=#000087 gui=reverse cterm=reverse
 hi debugPC guifg=#5fffff guibg=#000087 gui=reverse cterm=reverse
@@ -120,6 +120,8 @@ hi! link Structure Type
 hi! link Tag Special
 hi! link Typedef Type
 hi! link Terminal Normal
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
 hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
 hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
@@ -165,7 +167,7 @@ if s:t_Co >= 256
   hi VertSplit ctermfg=30 ctermbg=NONE cterm=NONE
   hi Visual ctermfg=231 ctermbg=30 cterm=NONE
   hi VisualNOS ctermfg=30 ctermbg=231 cterm=NONE
-  hi WarningMsg ctermfg=160 ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=176 ctermbg=NONE cterm=NONE
   hi WildMenu ctermfg=18 ctermbg=220 cterm=NONE
   hi debugBreakpoint ctermfg=46 ctermbg=18 cterm=reverse
   hi debugPC ctermfg=87 ctermbg=18 cterm=reverse
@@ -228,6 +230,8 @@ if s:t_Co >= 256
   hi! link Tag Special
   hi! link Typedef Type
   hi! link Terminal Normal
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
   hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
   hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@@ -276,7 +280,7 @@ if s:t_Co >= 16
   hi VertSplit ctermfg=darkcyan ctermbg=NONE cterm=NONE
   hi Visual ctermfg=white ctermbg=darkcyan cterm=NONE
   hi VisualNOS ctermfg=darkcyan ctermbg=white cterm=NONE
-  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=magenta ctermbg=NONE cterm=NONE
   hi WildMenu ctermfg=darkblue ctermbg=yellow cterm=NONE
   hi debugBreakpoint ctermfg=green ctermbg=darkblue cterm=reverse
   hi debugPC ctermfg=cyan ctermbg=darkblue cterm=reverse
@@ -339,6 +343,8 @@ if s:t_Co >= 16
   hi! link Tag Special
   hi! link Typedef Type
   hi! link Terminal Normal
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
   hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
   hi DiffText ctermfg=black ctermbg=grey cterm=NONE
@@ -449,6 +455,8 @@ if s:t_Co >= 8
   hi! link Tag Special
   hi! link Typedef Type
   hi! link Terminal Normal
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
   hi DiffChange ctermfg=white ctermbg=darkblue cterm=NONE
   hi DiffText ctermfg=black ctermbg=grey cterm=NONE
index 88a6c4184787ab36aa5542b0e4b2a966f95f1f4e..140e7d47c983ec205e418de3fb461acda2a51045 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:35 MSK
+" Last Updated: Fri 02 Sep 2022 09:40:36 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -65,6 +65,8 @@ hi! link diffCommon WarningMsg
 hi! link diffBDiffer WarningMsg
 hi! link lCursor Cursor
 hi! link CurSearch Search
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#c0c0c0 guibg=#000040 gui=NONE cterm=NONE
 hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
 hi ColorColumn guifg=#c0c0c0 guibg=#8b0000 gui=NONE cterm=NONE
@@ -171,6 +173,8 @@ if s:t_Co >= 256
   hi! link diffBDiffer WarningMsg
   hi! link lCursor Cursor
   hi! link CurSearch Search
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=252 ctermbg=17 cterm=NONE
   hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
   hi ColorColumn ctermfg=252 ctermbg=88 cterm=NONE
index ebaf12f5700ffe1f2e7a8da9485902dbfea743ea..9543b568f65207c29c690f321f90ce50ae367513 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer David Schweikert <david@schweikert.ch>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:36 MSK
+" Last Updated: Sun 04 Sep 2022 09:31:26 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -25,6 +25,8 @@ hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
 hi! link ErrorMsg Error
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
 hi EndOfBuffer guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
 hi StatusLine guifg=#ffff00 guibg=#00008b gui=bold cterm=bold
@@ -57,7 +59,7 @@ hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
 hi WarningMsg guifg=#cd00cd guibg=#ffffff gui=NONE cterm=NONE
 hi MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
 hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=bold
-hi Question guifg=#00cd00 guibg=NONE gui=bold cterm=bold
+hi Question guifg=#008700 guibg=NONE gui=bold cterm=bold
 hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
 hi MatchParen guifg=#ffffff guibg=#ff1493 gui=NONE cterm=NONE
 hi Search guifg=#ffffff guibg=#cd00cd gui=NONE cterm=NONE
@@ -97,6 +99,8 @@ if s:t_Co >= 256
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
   hi! link ErrorMsg Error
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=231 cterm=NONE
   hi EndOfBuffer ctermfg=250 ctermbg=NONE cterm=NONE
   hi StatusLine ctermfg=226 ctermbg=18 cterm=bold
@@ -129,7 +133,7 @@ if s:t_Co >= 256
   hi WarningMsg ctermfg=164 ctermbg=231 cterm=NONE
   hi MoreMsg ctermfg=16 ctermbg=231 cterm=bold
   hi ModeMsg ctermfg=16 ctermbg=231 cterm=bold
-  hi Question ctermfg=40 ctermbg=NONE cterm=bold
+  hi Question ctermfg=28 ctermbg=NONE cterm=bold
   hi Todo ctermfg=16 ctermbg=226 cterm=NONE
   hi MatchParen ctermfg=231 ctermbg=198 cterm=NONE
   hi Search ctermfg=231 ctermbg=164 cterm=NONE
index 152384e3a009c4ef1a1ca378a4c54a42e84f9169..41ed976fa4a8dc6ffc9acfb4d28a48c2900ac8e6 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Hans Fugal <hans@fugal.net>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:37 MSK
+" Last Updated: Fri 02 Sep 2022 09:39:21 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -25,6 +25,8 @@ hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
 hi! link EndOfBuffer NonText
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
 hi StatusLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
 hi StatusLineNC guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
@@ -97,6 +99,8 @@ if s:t_Co >= 256
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
   hi! link EndOfBuffer NonText
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=231 ctermbg=236 cterm=NONE
   hi StatusLine ctermfg=236 ctermbg=144 cterm=NONE
   hi StatusLineNC ctermfg=242 ctermbg=144 cterm=NONE
index 2cda25359335c4c729ce5e0d485a915edbd2a0a8..e9efd3de599558d8b49f2713f12081502c330736 100644 (file)
@@ -3,7 +3,7 @@
 " Maintainer:   original maintainer Ron Aaron <ron@ronware.org>
 " Website:      https://www.github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:37 MSK
+" Last Updated: Fri 02 Sep 2022 09:44:22 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -43,6 +43,8 @@ hi! link lCursor Cursor
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 
 if (has('termguicolors') && &termguicolors) || has('gui_running')
   let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
index c2043b641a4b416f169e3418306f8b92d4e5cdf3..be6c43ff342afd63f2d7d629df69536282e6ec4e 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:38 MSK
+" Last Updated: Sun 04 Sep 2022 09:48:34 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -16,7 +16,7 @@ let g:colors_name = 'evening'
 let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
 
 if (has('termguicolors') && &termguicolors) || has('gui_running')
-  let g:terminal_ansi_colors = ['#000000', '#ffa500', '#2e8b57', '#ffff00', '#006faf', '#8b008b', '#008b8b', '#bebebe', '#4d4d4d', '#ff5f5f', '#00ff00', '#ffff60', '#0087ff', '#ff80ff', '#00ffff', '#ffffff']
+  let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0087ff', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
 endif
 hi! link VertSplit StatusLineNC
 hi! link StatusLineTerm StatusLine
@@ -64,6 +64,8 @@ hi! link String Constant
 hi! link Structure Type
 hi! link Tag Special
 hi! link Typedef Type
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
 hi ColorColumn guifg=NONE guibg=#8b0000 gui=NONE cterm=NONE
 hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
@@ -98,7 +100,7 @@ hi ToolbarButton guifg=NONE guibg=#999999 gui=bold cterm=bold
 hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
 hi Visual guifg=#ffffff guibg=#999999 gui=NONE cterm=NONE
 hi VisualNOS guifg=NONE guibg=NONE gui=bold,underline ctermfg=NONE ctermbg=NONE cterm=bold,underline
-hi WarningMsg guifg=#8b0000 guibg=NONE gui=NONE cterm=NONE
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
 hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=bold
 hi debugBreakpoint guifg=#00008b guibg=#ff0000 gui=NONE cterm=NONE
 hi debugPC guifg=#00008b guibg=#0000ff gui=NONE cterm=NONE
@@ -170,6 +172,8 @@ if s:t_Co >= 256
   hi! link Structure Type
   hi! link Tag Special
   hi! link Typedef Type
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=231 ctermbg=236 cterm=NONE
   hi ColorColumn ctermfg=NONE ctermbg=88 cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=241 cterm=NONE
@@ -204,7 +208,7 @@ if s:t_Co >= 256
   hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
   hi Visual ctermfg=231 ctermbg=246 cterm=NONE
   hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=bold,underline
-  hi WarningMsg ctermfg=88 ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
   hi WildMenu ctermfg=16 ctermbg=226 cterm=bold
   hi debugBreakpoint ctermfg=18 ctermbg=196 cterm=NONE
   hi debugPC ctermfg=18 ctermbg=21 cterm=NONE
@@ -279,6 +283,8 @@ if s:t_Co >= 16
   hi! link Structure Type
   hi! link Tag Special
   hi! link Typedef Type
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=white ctermbg=black cterm=NONE
   hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
@@ -313,7 +319,7 @@ if s:t_Co >= 16
   hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
   hi Visual ctermfg=white ctermbg=darkgray cterm=NONE
   hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=bold,underline
-  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
   hi WildMenu ctermfg=black ctermbg=darkyellow cterm=bold
   hi debugBreakpoint ctermfg=darkblue ctermbg=red cterm=NONE
   hi debugPC ctermfg=darkblue ctermbg=blue cterm=NONE
@@ -494,13 +500,26 @@ endif
 " Color: grey30        #4d4d4d           239               darkgray
 " Color: grey40        #666666           241               darkgray
 " Color: grey60        #999999           246               darkgray
-" Color: xtermblue     #0087ff           33                blue
-" Color: xtermdarkblue #006faf           25                darkblue
-" Color: xtermred      #ff5f5f           203               red
 " Color: comment       #80a0ff           111               lightblue
 " Color: darkred       #8b0000           88                darkred
-" Term colors: black orange seagreen yellow xtermdarkblue darkmagenta darkcyan grey
-" Term colors: grey30 xtermred green lightyellow xtermblue magenta cyan white
+" Color: x_black       #000000           16                black
+" Color: x_darkred     #cd0000           160               darkred
+" Color: x_darkgreen   #00cd00           40                darkgreen
+" Color: x_darkyellow  #cdcd00           184               darkyellow
+" Color: x_darkblue_m  #0087ff           33                darkblue
+" Color: x_darkmagenta #cd00cd           164               darkmagenta
+" Color: x_darkcyan    #00cdcd           44                darkcyan
+" Color: x_gray        #e5e5e5           254               gray
+" Color: x_darkgray    #7f7f7f           244               darkgray
+" Color: x_red         #ff0000           196               red
+" Color: x_green       #00ff00           46                green
+" Color: x_yellow      #ffff00           226               yellow
+" Color: x_blue        #5c5cff           63                blue
+" Color: x_magenta     #ff00ff           201               magenta
+" Color: x_cyan        #00ffff           51                cyan
+" Color: x_white       #ffffff           231               white
+" Term colors: x_black x_darkred x_darkgreen x_darkyellow x_darkblue_m x_darkmagenta x_darkcyan x_gray
+" Term colors: x_darkgray x_red x_green x_yellow x_blue x_magenta x_cyan x_white
 " Color: bgDiffA     #5F875F        65             darkgreen
 " Color: bgDiffC     #5F87AF        67             blue
 " Color: bgDiffD     #AF5FAF        133            magenta
index ad84f4db32feb1f96eed3bd201b14e9d39869e6b..e3e7202ed3684a138d192fe9ff1b92d3de32e811 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Maxim Kim <habamax@gmail.com>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:38 MSK
+" Last Updated: Fri 02 Sep 2022 09:45:11 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -21,6 +21,8 @@ endif
 hi! link Terminal Normal
 hi! link StatuslineTerm Statusline
 hi! link StatuslineTermNC StatuslineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi! link javaScriptFunction Statement
 hi! link javaScriptIdentifier Statement
 hi! link sqlKeyword Statement
@@ -142,6 +144,8 @@ if s:t_Co >= 256
   hi! link Terminal Normal
   hi! link StatuslineTerm Statusline
   hi! link StatuslineTermNC StatuslineNC
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi! link javaScriptFunction Statement
   hi! link javaScriptIdentifier Statement
   hi! link sqlKeyword Statement
index 07d15d396065f6715ccc4bcc1852eb3e7254a324..0946fe996b2fdfc924cf7d5e838062dc01107e70 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Shian Lee.
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:39 MSK
+" Last Updated: Sun 04 Sep 2022 09:50:04 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -51,7 +51,7 @@ hi Underlined guifg=#87afff guibg=NONE gui=underline cterm=underline
 hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
 hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
 hi ModeMsg guifg=#ffffff guibg=NONE gui=bold cterm=bold
-hi WarningMsg guifg=#870000 guibg=NONE gui=bold cterm=bold
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=bold cterm=bold
 hi MoreMsg guifg=#5fd75f guibg=NONE gui=bold cterm=bold
 hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=bold
 hi Todo guifg=#005fff guibg=#ffff00 gui=NONE cterm=NONE
@@ -84,6 +84,8 @@ hi! link LineNrBelow LineNr
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
 hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
 hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
@@ -123,7 +125,7 @@ if s:t_Co >= 256
   hi Error ctermfg=231 ctermbg=196 cterm=NONE
   hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
   hi ModeMsg ctermfg=231 ctermbg=NONE cterm=bold
-  hi WarningMsg ctermfg=88 ctermbg=NONE cterm=bold
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=bold
   hi MoreMsg ctermfg=77 ctermbg=NONE cterm=bold
   hi Question ctermfg=46 ctermbg=NONE cterm=bold
   hi Todo ctermfg=27 ctermbg=226 cterm=NONE
@@ -156,6 +158,8 @@ if s:t_Co >= 256
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
   hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
   hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
@@ -198,7 +202,7 @@ if s:t_Co >= 16
   hi Error ctermfg=white ctermbg=red cterm=NONE
   hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
   hi ModeMsg ctermfg=white ctermbg=NONE cterm=bold
-  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=bold
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=bold
   hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=bold
   hi Question ctermfg=green ctermbg=NONE cterm=bold
   hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
@@ -231,6 +235,8 @@ if s:t_Co >= 16
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
   hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
   hi DiffText ctermfg=black ctermbg=grey cterm=NONE
index 69b10c6f38ae25b6ca0182551ec1de706dbb90d1..2505e8ec47094cd7a13568e76de515d71728707f 100644 (file)
@@ -3,7 +3,7 @@
 " Maintainer:   original maintainer Ron Aaron <ron@ronware.org>
 " Website:      https://www.github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:39 MSK
+" Last Updated: Fri 02 Sep 2022 09:23:56 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -49,6 +49,8 @@ hi! link lCursor Cursor
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 
 if (has('termguicolors') && &termguicolors) || has('gui_running')
   let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
index 982d93c36d9ecc561bc8f6d421330e15211beac3..7ec3de109f1a3a09863fdf48d39b17c20dd4d7d7 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Maxim Kim <habamax@gmail.com>
 " Website:      https://www.github.com/vim/colorschemes
 " License:      Vim License (see `:help license`)
-" Last Updated: Tue 23 Aug 2022 16:50:40 MSK
+" Last Updated: Sat 03 Sep 2022 14:31:51 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -81,18 +81,31 @@ hi! link shOption Normal
 hi! link shCommandSub Normal
 hi! link shDerefPattern shQuote
 hi! link shDerefOp Special
+hi! link phpStorageClass Statement
+hi! link phpStructure Statement
+hi! link phpInclude Statement
+hi! link phpDefine Statement
+hi! link phpSpecialFunction Normal
+hi! link phpParent Normal
+hi! link phpComparison Normal
+hi! link phpOperator Normal
+hi! link phpVarSelector Special
+hi! link phpMemberSelector Special
+hi! link phpDocCustomTags phpDocTags
 hi! link Terminal Normal
 hi! link StatuslineTerm Statusline
 hi! link StatuslineTermNC StatuslineNC
 hi! link LineNrAbove LineNr
 hi! link LineNrBelow LineNr
+hi! link MessageWindow PMenu
+hi! link PopupNotification Todo
 if &background ==# 'dark'
   if (has('termguicolors') && &termguicolors) || has('gui_running')
     let g:terminal_ansi_colors = ['#000000', '#af5f5f', '#5faf5f', '#af875f', '#5f87af', '#d787af', '#5fafaf', '#c6c6c6', '#767676', '#ff5f5f', '#5fd75f', '#ffd787', '#87afd7', '#ffafd7', '#5fd7d7', '#ffffff']
   endif
   hi Normal guifg=#c6c6c6 guibg=#000000 gui=NONE cterm=NONE
-  hi Statusline guifg=#000000 guibg=#c6c6c6 gui=bold cterm=bold
-  hi StatuslineNC guifg=#000000 guibg=#767676 gui=NONE cterm=NONE
+  hi Statusline guifg=#c6c6c6 guibg=#000000 gui=bold,reverse cterm=bold,reverse
+  hi StatuslineNC guifg=#767676 guibg=#000000 gui=reverse cterm=reverse
   hi VertSplit guifg=#767676 guibg=#767676 gui=NONE cterm=NONE
   hi TabLine guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
   hi TabLineFill guifg=NONE guibg=#767676 gui=NONE cterm=NONE
@@ -107,7 +120,7 @@ if &background ==# 'dark'
   hi EndOfBuffer guifg=#585858 guibg=NONE gui=NONE cterm=NONE
   hi SpecialKey guifg=#585858 guibg=NONE gui=NONE cterm=NONE
   hi Pmenu guifg=NONE guibg=#1c1c1c gui=NONE cterm=NONE
-  hi PmenuSel guifg=NONE guibg=#005f00 gui=NONE cterm=NONE
+  hi PmenuSel guifg=NONE guibg=#444444 gui=NONE cterm=NONE
   hi PmenuThumb guifg=NONE guibg=#c6c6c6 gui=NONE cterm=NONE
   hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
   hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -169,7 +182,6 @@ if &background ==# 'dark'
   hi dirFilterMenuBookmarkPath guifg=#878787 guibg=NONE gui=NONE cterm=NONE
   hi dirFilterMenuHistoryPath guifg=#878787 guibg=NONE gui=NONE cterm=NONE
   hi FilterMenuLineNr guifg=#878787 guibg=NONE gui=NONE cterm=NONE
-  hi CocMenuSel guifg=NONE guibg=#005f00 gui=NONE cterm=NONE
   hi CocSearch guifg=#ffd787 guibg=NONE gui=NONE cterm=NONE
 else
   " Light background
@@ -193,7 +205,7 @@ else
   hi EndOfBuffer guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
   hi SpecialKey guifg=#9e9e9e guibg=NONE gui=NONE cterm=NONE
   hi Pmenu guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
-  hi PmenuSel guifg=NONE guibg=#afd7af gui=NONE cterm=NONE
+  hi PmenuSel guifg=NONE guibg=#c6c6c6 gui=NONE cterm=NONE
   hi PmenuThumb guifg=NONE guibg=#767676 gui=NONE cterm=NONE
   hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
   hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -256,7 +268,6 @@ else
   hi dirFilterMenuHistoryPath guifg=#626262 guibg=NONE gui=NONE cterm=NONE
   hi FilterMenuDirectorySubtle guifg=#626262 guibg=NONE gui=NONE cterm=NONE
   hi FilterMenuLineNr guifg=#626262 guibg=NONE gui=NONE cterm=NONE
-  hi CocMenuSel guifg=NONE guibg=#afd7af gui=NONE cterm=NONE
   hi CocSearch guifg=#870000 guibg=NONE gui=NONE cterm=NONE
 endif
 
@@ -329,15 +340,28 @@ if s:t_Co >= 256
   hi! link shCommandSub Normal
   hi! link shDerefPattern shQuote
   hi! link shDerefOp Special
+  hi! link phpStorageClass Statement
+  hi! link phpStructure Statement
+  hi! link phpInclude Statement
+  hi! link phpDefine Statement
+  hi! link phpSpecialFunction Normal
+  hi! link phpParent Normal
+  hi! link phpComparison Normal
+  hi! link phpOperator Normal
+  hi! link phpVarSelector Special
+  hi! link phpMemberSelector Special
+  hi! link phpDocCustomTags phpDocTags
   hi! link Terminal Normal
   hi! link StatuslineTerm Statusline
   hi! link StatuslineTermNC StatuslineNC
   hi! link LineNrAbove LineNr
   hi! link LineNrBelow LineNr
+  hi! link MessageWindow PMenu
+  hi! link PopupNotification Todo
   if &background ==# 'dark'
     hi Normal ctermfg=251 ctermbg=16 cterm=NONE
-    hi Statusline ctermfg=16 ctermbg=251 cterm=bold
-    hi StatuslineNC ctermfg=16 ctermbg=243 cterm=NONE
+    hi Statusline ctermfg=251 ctermbg=16 cterm=bold,reverse
+    hi StatuslineNC ctermfg=243 ctermbg=16 cterm=reverse
     hi VertSplit ctermfg=243 ctermbg=243 cterm=NONE
     hi TabLine ctermfg=16 ctermbg=251 cterm=NONE
     hi TabLineFill ctermfg=NONE ctermbg=243 cterm=NONE
@@ -352,7 +376,7 @@ if s:t_Co >= 256
     hi EndOfBuffer ctermfg=240 ctermbg=NONE cterm=NONE
     hi SpecialKey ctermfg=240 ctermbg=NONE cterm=NONE
     hi Pmenu ctermfg=NONE ctermbg=234 cterm=NONE
-    hi PmenuSel ctermfg=NONE ctermbg=22 cterm=NONE
+    hi PmenuSel ctermfg=NONE ctermbg=238 cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=251 cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -412,7 +436,6 @@ if s:t_Co >= 256
     hi dirFilterMenuBookmarkPath ctermfg=102 ctermbg=NONE cterm=NONE
     hi dirFilterMenuHistoryPath ctermfg=102 ctermbg=NONE cterm=NONE
     hi FilterMenuLineNr ctermfg=102 ctermbg=NONE cterm=NONE
-    hi CocMenuSel ctermfg=NONE ctermbg=22 cterm=NONE
     hi CocSearch ctermfg=222 ctermbg=NONE cterm=NONE
   else
     " Light background
@@ -433,7 +456,7 @@ if s:t_Co >= 256
     hi EndOfBuffer ctermfg=247 ctermbg=NONE cterm=NONE
     hi SpecialKey ctermfg=247 ctermbg=NONE cterm=NONE
     hi Pmenu ctermfg=NONE ctermbg=255 cterm=NONE
-    hi PmenuSel ctermfg=NONE ctermbg=151 cterm=NONE
+    hi PmenuSel ctermfg=NONE ctermbg=251 cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -494,7 +517,6 @@ if s:t_Co >= 256
     hi dirFilterMenuHistoryPath ctermfg=241 ctermbg=NONE cterm=NONE
     hi FilterMenuDirectorySubtle ctermfg=241 ctermbg=NONE cterm=NONE
     hi FilterMenuLineNr ctermfg=241 ctermbg=NONE cterm=NONE
-    hi CocMenuSel ctermfg=NONE ctermbg=151 cterm=NONE
     hi CocSearch ctermfg=88 ctermbg=NONE cterm=NONE
   endif
   unlet s:t_Co
@@ -504,8 +526,8 @@ endif
 if s:t_Co >= 16
   if &background ==# 'dark'
     hi Normal ctermfg=grey ctermbg=black cterm=NONE
-    hi Statusline ctermfg=black ctermbg=grey cterm=bold
-    hi StatuslineNC ctermfg=black ctermbg=darkgrey cterm=NONE
+    hi Statusline ctermfg=grey ctermbg=black cterm=bold,reverse
+    hi StatuslineNC ctermfg=darkgrey ctermbg=black cterm=reverse
     hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
     hi TabLine ctermfg=black ctermbg=grey cterm=NONE
     hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
@@ -520,7 +542,7 @@ if s:t_Co >= 16
     hi EndOfBuffer ctermfg=grey ctermbg=NONE cterm=NONE
     hi SpecialKey ctermfg=grey ctermbg=NONE cterm=NONE
     hi Pmenu ctermfg=black ctermbg=darkgrey cterm=NONE
-    hi PmenuSel ctermfg=black ctermbg=darkgreen cterm=NONE
+    hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -567,6 +589,20 @@ if s:t_Co >= 16
     hi diffAdded ctermfg=green ctermbg=NONE cterm=NONE
     hi diffRemoved ctermfg=darkred ctermbg=NONE cterm=NONE
     hi diffSubname ctermfg=magenta ctermbg=NONE cterm=NONE
+    hi dirType ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+    hi dirPermissionUser ctermfg=darkgreen ctermbg=NONE cterm=NONE
+    hi dirPermissionGroup ctermfg=darkyellow ctermbg=NONE cterm=NONE
+    hi dirPermissionOther ctermfg=darkcyan ctermbg=NONE cterm=NONE
+    hi dirOwner ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi dirGroup ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi dirTime ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi dirSize ctermfg=yellow ctermbg=NONE cterm=NONE
+    hi dirSizeMod ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+    hi FilterMenuDirectorySubtle ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirFilterMenuBookmarkPath ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirFilterMenuHistoryPath ctermfg=grey ctermbg=NONE cterm=NONE
+    hi FilterMenuLineNr ctermfg=grey ctermbg=NONE cterm=NONE
+    hi CocSearch ctermfg=yellow ctermbg=NONE cterm=NONE
   else
     " Light background
     hi Normal ctermfg=black ctermbg=white cterm=NONE
@@ -586,7 +622,7 @@ if s:t_Co >= 16
     hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
     hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
     hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
-    hi PmenuSel ctermfg=black ctermbg=darkgreen cterm=NONE
+    hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -633,6 +669,21 @@ if s:t_Co >= 16
     hi diffAdded ctermfg=darkgreen ctermbg=NONE cterm=NONE
     hi diffRemoved ctermfg=red ctermbg=NONE cterm=NONE
     hi diffSubname ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+    hi dirType ctermfg=darkcyan ctermbg=NONE cterm=NONE
+    hi dirPermissionUser ctermfg=darkyellow ctermbg=NONE cterm=NONE
+    hi dirPermissionGroup ctermfg=darkgreen ctermbg=NONE cterm=NONE
+    hi dirPermissionOther ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+    hi dirOwner ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirGroup ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirTime ctermfg=grey ctermbg=NONE cterm=NONE
+    hi dirSize ctermfg=darkred ctermbg=NONE cterm=NONE
+    hi dirSizeMod ctermfg=darkcyan ctermbg=NONE cterm=NONE
+    hi dirLink ctermfg=darkgreen ctermbg=NONE cterm=bold
+    hi dirFilterMenuBookmarkPath ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi dirFilterMenuHistoryPath ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi FilterMenuDirectorySubtle ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi FilterMenuLineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+    hi CocSearch ctermfg=darkred ctermbg=NONE cterm=NONE
   endif
   unlet s:t_Co
   finish
@@ -659,7 +710,7 @@ if s:t_Co >= 8
     hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
-    hi PmenuSel ctermfg=black ctermbg=darkgreen cterm=NONE
+    hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
     hi Error ctermfg=grey ctermbg=darkred cterm=NONE
     hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
@@ -688,7 +739,7 @@ if s:t_Co >= 8
     hi Comment ctermfg=darkblue ctermbg=NONE cterm=NONE
     hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
     hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
-    hi Statement ctermfg=black ctermbg=NONE cterm=bold
+    hi Statement ctermfg=grey ctermbg=NONE cterm=bold
     hi Type ctermfg=darkgreen ctermbg=NONE cterm=bold
     hi PreProc ctermfg=darkyellow ctermbg=NONE cterm=NONE
     hi Special ctermfg=darkcyan ctermbg=NONE cterm=NONE
@@ -722,7 +773,7 @@ if s:t_Co >= 8
     hi Pmenu ctermfg=grey ctermbg=black cterm=NONE
     hi PmenuThumb ctermfg=NONE ctermbg=darkgreen cterm=NONE
     hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
-    hi PmenuSel ctermfg=black ctermbg=darkgreen cterm=NONE
+    hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
     hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
     hi Error ctermfg=grey ctermbg=darkred cterm=NONE
     hi ErrorMsg ctermfg=grey ctermbg=darkred cterm=NONE
@@ -864,7 +915,7 @@ endif
 " Color: colorlC                 #FF5FFF        207            magenta
 " Color: colorV                  #005F87        24             darkblue
 " Color: colorMP                 #C5E7C5        30             darkcyan
-" Color: colorPMenuSel           #005F00        22             darkgreen
+" Color: colorPMenuSel           #444444        238            darkcyan
 " Color: colorDim                #878787        102            grey
 " Color: diffAdd                 #AF87AF        139            darkmagenta
 " Color: diffDelete              #D78787        174            darkred
@@ -898,7 +949,7 @@ endif
 " Color: colorlC                 #FF00FF        201            magenta
 " Color: colorV                  #5F87AF        67             darkblue
 " Color: colorMP                 #C5E7C5        30             darkcyan
-" Color: colorPMenuSel           #AFD7AF        151            darkgreen
+" Color: colorPMenuSel           #C6C6C6        251            darkcyan
 " Color: colorDim                #626262        241            darkgrey
 " Color: diffAdd                 #D7AFD7        182            darkmagenta
 " Color: diffDelete              #870000        88             darkred
index 5e6e0727da18e15fb79b0552fb52748c97f4d70f..f1ac73fe3dae9bdced40ec4488cdf7d2526562b7 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Bram Moolenaar <Bram@vim.org>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:41 MSK
+" Last Updated: Fri 02 Sep 2022 09:46:24 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -26,6 +26,8 @@ hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
 hi! link StatuslineTerm Statusline
 hi! link StatuslineTermNC StatuslineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
 hi EndOfBuffer guifg=#0000ff guibg=#cccccc gui=bold cterm=bold
 hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
@@ -96,6 +98,8 @@ if s:t_Co >= 256
   hi! link CursorLineSign CursorLine
   hi! link StatuslineTerm Statusline
   hi! link StatuslineTermNC StatuslineNC
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=254 cterm=NONE
   hi EndOfBuffer ctermfg=21 ctermbg=252 cterm=bold
   hi Folded ctermfg=18 ctermbg=252 cterm=NONE
index c028c23eda1d795a6bc11a6dae5dad309385b7af..3dcff2c3c07ed8aa5f26c645e51c1ad1339f09fe 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Ron Aaron <ron@ronware.org>.
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:41 MSK
+" Last Updated: Fri 02 Sep 2022 09:47:20 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -26,6 +26,8 @@ hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
 hi! link StatusLineTerm StatusLine
 hi! link StatusLineTermNC StatusLineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE
 hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=NONE cterm=NONE
 hi StatusLine guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
@@ -96,6 +98,8 @@ if s:t_Co >= 256
   hi! link CursorLineSign CursorLine
   hi! link StatusLineTerm StatusLine
   hi! link StatusLineTermNC StatusLineNC
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=120 ctermbg=16 cterm=NONE
   hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
   hi StatusLine ctermfg=231 ctermbg=18 cterm=NONE
index 948997340bea4fbc651a6d6560ac3c268a2914a3..ece50e6b824dba104351b7866284577ca701ecd3 100644 (file)
@@ -3,7 +3,7 @@
 " Maintainer:   Original maintainerRon Aaron <ron@ronware.org>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:42 MSK
+" Last Updated: Sun 04 Sep 2022 09:53:40 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -17,13 +17,15 @@ let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
 if (has('termguicolors') && &termguicolors) || has('gui_running')
   let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
 endif
-hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
 hi! link Terminal Normal
 hi! link StatusLineTerm StatusLine
 hi! link StatusLineTermNC StatusLineNC
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
+hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
 hi Comment guifg=#808080 guibg=NONE gui=NONE cterm=NONE
 hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
 hi Identifier guifg=#00c0c0 guibg=NONE gui=NONE cterm=NONE
@@ -88,13 +90,15 @@ hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
 hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
 
 if s:t_Co >= 256
-  hi Normal ctermfg=231 ctermbg=16 cterm=NONE
   hi! link Terminal Normal
   hi! link StatusLineTerm StatusLine
   hi! link StatusLineTermNC StatusLineNC
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
+  hi Normal ctermfg=231 ctermbg=16 cterm=NONE
   hi Comment ctermfg=244 ctermbg=NONE cterm=NONE
   hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
   hi Identifier ctermfg=37 ctermbg=NONE cterm=NONE
@@ -117,7 +121,7 @@ if s:t_Co >= 256
   hi NonText ctermfg=63 ctermbg=NONE cterm=bold
   hi EndOfBuffer ctermfg=63 ctermbg=NONE cterm=bold
   hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
-  hi WarningMsg ctermfg=224 ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
   hi SignColumn ctermfg=51 ctermbg=248 cterm=NONE
   hi ColorColumn ctermfg=NONE ctermbg=239 cterm=NONE
   hi FoldColumn ctermfg=102 ctermbg=236 cterm=NONE
@@ -163,12 +167,6 @@ endif
 
 if s:t_Co >= 16
   hi Normal ctermfg=white ctermbg=black cterm=NONE
-  hi! link Terminal Normal
-  hi! link StatusLineTerm StatusLine
-  hi! link StatusLineTermNC StatusLineNC
-  hi! link CurSearch Search
-  hi! link CursorLineFold CursorLine
-  hi! link CursorLineSign CursorLine
   hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
   hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
   hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
@@ -191,7 +189,7 @@ if s:t_Co >= 16
   hi NonText ctermfg=blue ctermbg=NONE cterm=bold
   hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=bold
   hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
-  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
   hi SignColumn ctermfg=cyan ctermbg=black cterm=NONE
   hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
   hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
@@ -405,7 +403,7 @@ endif
 " Color: SpecialKey     #00ffff     81             cyan
 " Color: StatusLineTerm #90ee90     121            darkgreen
 " Color: Title          #ff00ff     225            magenta
-" Color: WarningMsg     #ff0000     224            darkred
+" Color: WarningMsg     #ff0000     196            red
 " Color: ToolbarLine    #7f7f7f     242            darkgrey
 " Color: ToolbarButton  #d3d3d3     254            grey
 " Color: Underlined     #80a0ff     111            darkgreen
index 1668b6811ac99b09c4a83e5373da5a677eb44ee3..0622ce6f87fe9d0635116a05abc074f410ac54cd 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:42 MSK
+" Last Updated: Fri 02 Sep 2022 09:50:02 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -24,6 +24,8 @@ hi! link LineNrBelow LineNr
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#ffdab9 gui=NONE cterm=NONE
 hi Folded guifg=#000000 guibg=#e3c1a5 gui=NONE cterm=NONE
 hi CursorLine guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
@@ -94,6 +96,8 @@ if s:t_Co >= 256
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=223 cterm=NONE
   hi Folded ctermfg=16 ctermbg=252 cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=180 cterm=NONE
index 6f5be5b349cdb0847fd62b719ad61ec043f451c2..fbe58b41245e83341eef8732a4e88a247fe7dab1 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   neutaaaaan <neutaaaaan-gh@protonmail.com>
 " Website:      https://github.com/vim/colorschemes
 " License:      Vim License (see `:help license`)`
-" Last Updated: Tue 23 Aug 2022 16:50:43 MSK
+" Last Updated: Fri 02 Sep 2022 09:55:30 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -16,6 +16,8 @@ let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
 hi! link Terminal Normal
 hi! link StatusLineTerm StatusLine
 hi! link StatusLineTermNC StatusLineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi! link Boolean Constant
 hi! link Character Constant
 hi! link Conditional Statement
index aeccfcedf2e5ee97997209ba1a7c7ef9fd61e5ad..a7302a44eb66f85748ddbd35820d798caf983d18 100644 (file)
@@ -3,7 +3,7 @@
 " Maintainer:   original maintainer Ron Aaron <ron@ronware.org>
 " Website:      https://www.github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:45 MSK
+" Last Updated: Fri 02 Sep 2022 09:50:56 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -46,6 +46,8 @@ hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
 hi! link LineNrAbove LineNr
 hi! link LineNrBelow LineNr
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 
 if (has('termguicolors') && &termguicolors) || has('gui_running')
   let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
index e74b0aed836ae3acfc904eba3bfaba2bcef46b9d..fe1ee152030b8dec6e92abb032e8dd28c7737098 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:46 MSK
+" Last Updated: Fri 02 Sep 2022 09:51:42 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -28,6 +28,8 @@ hi! link EndOfBuffer NonText
 hi! link ErrorMsg Error
 hi! link Tag Special
 hi! link Operator Statement
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
 hi Folded guifg=#00008b guibg=#dadada gui=NONE cterm=NONE
 hi CursorLine guifg=NONE guibg=#dadada gui=NONE cterm=NONE
@@ -104,6 +106,8 @@ if s:t_Co >= 256
   hi! link ErrorMsg Error
   hi! link Tag Special
   hi! link Operator Statement
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=231 cterm=NONE
   hi Folded ctermfg=18 ctermbg=253 cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=253 cterm=NONE
index 584e4b52c5f6e94e88c1c3a3894faf52644bd9ab..8c43fb6ed6419981b202a4f770ac77aae8d7f7cb 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Ralph Amissah <ralph@amissah.com>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:46 MSK
+" Last Updated: Fri 02 Sep 2022 09:52:25 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -24,6 +24,8 @@ hi! link LineNrBelow LineNr
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#ffffff guibg=#262626 gui=NONE cterm=NONE
 hi EndOfBuffer guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
 hi StatusLine guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
@@ -99,6 +101,8 @@ if s:t_Co >= 256
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=231 ctermbg=235 cterm=NONE
   hi EndOfBuffer ctermfg=68 ctermbg=NONE cterm=NONE
   hi StatusLine ctermfg=16 ctermbg=144 cterm=NONE
index 814e50db15bf291008ff9958ea568fc9681937f8..7ea5a69196d190364baa54aadcf34f06200cd052 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Thorsten Maerz <info@netztorte.de>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:47 MSK
+" Last Updated: Fri 02 Sep 2022 09:53:21 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -26,6 +26,8 @@ hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
 hi! link StatusLineTerm StatusLine
 hi! link StatusLineTermNC StatusLineNC
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#cccccc guibg=#000000 gui=NONE cterm=NONE
 hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
 hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
@@ -97,6 +99,8 @@ if s:t_Co >= 256
   hi! link CursorLineSign CursorLine
   hi! link StatusLineTerm StatusLine
   hi! link StatusLineTermNC StatusLineNC
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=251 ctermbg=16 cterm=NONE
   hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
   hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
index 191dc7ef4bde825414167426f7bdad9da7995629..86340eb5b01447b6172c5893e4fae0ac544133aa 100644 (file)
@@ -4,7 +4,7 @@
 " Maintainer:   Original maintainer Ron Aaron <ron@ronware.org>
 " Website:      https://github.com/vim/colorschemes
 " License:      Same as Vim
-" Last Updated: Tue 23 Aug 2022 16:50:48 MSK
+" Last Updated: Fri 02 Sep 2022 09:54:15 MSK
 
 " Generated by Colortemplate v2.2.0
 
@@ -24,6 +24,8 @@ hi! link LineNrBelow LineNr
 hi! link CurSearch Search
 hi! link CursorLineFold CursorLine
 hi! link CursorLineSign CursorLine
+hi! link MessageWindow Pmenu
+hi! link PopupNotification Todo
 hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
 hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
 hi CursorLine guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
@@ -95,6 +97,8 @@ if s:t_Co >= 256
   hi! link CurSearch Search
   hi! link CursorLineFold CursorLine
   hi! link CursorLineSign CursorLine
+  hi! link MessageWindow Pmenu
+  hi! link PopupNotification Todo
   hi Normal ctermfg=16 ctermbg=231 cterm=NONE
   hi Folded ctermfg=18 ctermbg=252 cterm=NONE
   hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
index 7b8c6286baa205d547606ca8720531b9887ac94f..5786799718f4f4b8fbd752801e71d0e311d986b0 100644 (file)
@@ -115,6 +115,7 @@ DOCS = \
        todo.txt \
        uganda.txt \
        undo.txt \
+       userfunc.txt \
        usr_01.txt \
        usr_02.txt \
        usr_03.txt \
@@ -265,6 +266,7 @@ HTMLS = \
        todo.html \
        uganda.html \
        undo.html \
+       userfunc.html \
        usr_01.html \
        usr_02.html \
        usr_03.html \
index d85fb89bce6a557b4641e43c84b26cfe6d14869c..61db274bb4775489cdaed8ff1b8c76c5b5e1c41a 100644 (file)
@@ -640,6 +640,8 @@ CmdwinLeave                 Before leaving the command-line window.
                                |cmdwin-char|
                                                        *ColorScheme*
 ColorScheme                    After loading a color scheme. |:colorscheme|
+                               Not triggered if the color scheme is not
+                               found.
                                The pattern is matched against the
                                colorscheme name. <afile> can be used for the
                                name of the actual file where this option was
index 690bac9cc3ffa998efa420d1b76e560961cbc0ea..1de0e40ad159a7c36413cdf6d91ef57366370b3f 100644 (file)
@@ -1671,7 +1671,7 @@ complete_info([{what}])                           *complete_info()*
                                typed text only, or the last completion after
                                no item is selected when using the <Up> or
                                <Down> keys)
-                  inserted     Inserted string. [NOT IMPLEMENT YET]
+                  inserted     Inserted string. [NOT IMPLEMENTED YET]
 
                                                        *complete_info_mode*
                mode values are:
@@ -3038,10 +3038,10 @@ function({name} [, {arglist}] [, {dict}])
                Funcref.  The extra arguments are appended to the list of
                arguments.  Example: >
                        func Callback(arg1, arg2, name)
-                       ...
+                       "...
                        let Func = function('Callback', ['one'])
                        let Func2 = function(Func, ['two'])
-                       ...
+                       "...
                        call Func2('name')
 <              Invokes the function as with: >
                        call Callback('one', 'two', 'name')
@@ -3051,22 +3051,23 @@ function({name} [, {arglist}] [, {dict}])
                        function Callback() dict
                           echo "called for " .. self.name
                        endfunction
-                       ...
+                       "...
                        let context = {"name": "example"}
                        let Func = function('Callback', context)
-                       ...
+                       "...
                        call Func()     " will echo: called for example
 <              The use of function() is not needed when there are no extra
-               arguments, these two are equivalent: >
+               arguments, these two are equivalent, if Callback() is defined
+               as context.Callback(): >
                        let Func = function('Callback', context)
                        let Func = context.Callback
 
 <              The argument list and the Dictionary can be combined: >
                        function Callback(arg1, count) dict
-                       ...
+                       "...
                        let context = {"name": "example"}
                        let Func = function('Callback', ['one'], context)
-                       ...
+                       "...
                        call Func(500)
 <              Invokes the function as with: >
                        call context.Callback('one', 500)
index 750fc414db3341ec28e3fda88e5e1a649e2d530b..741f70ad645ab458f2d66f705916030fc7871546 100644 (file)
@@ -2629,503 +2629,12 @@ help file: |builtin-functions|.
 5. Defining functions                                  *user-functions*
 
 New functions can be defined.  These can be called just like builtin
-functions.  The function executes a sequence of Ex commands.  Normal mode
-commands can be executed with the |:normal| command.
+functions.  The function takes arguments, executes a sequence of Ex commands
+and can return a value.
 
-This section is about the legacy functions. For the Vim9 functions, which
-execute much faster, support type checking and more, see |vim9.txt|.
-
-The function name must start with an uppercase letter, to avoid confusion with
-builtin functions.  To prevent from using the same name in different scripts
-avoid obvious, short names.  A good habit is to start the function name with
-the name of the script, e.g., "HTMLcolor()".
-
-In legacy script it is also possible to use curly braces, see
-|curly-braces-names|.
-The |autoload| facility is useful to define a function only when it's called.
-
-                                                       *local-function*
-A function local to a legacy script must start with "s:".  A local script
-function can only be called from within the script and from functions, user
-commands and autocommands defined in the script.  It is also possible to call
-the function from a mapping defined in the script, but then |<SID>| must be
-used instead of "s:" when the mapping is expanded outside of the script.
-There are only script-local functions, no buffer-local or window-local
-functions.
-
-In |Vim9| script functions are local to the script by default, prefix "g:" to
-define a global function.
-
-                               *:fu* *:function* *E128* *E129* *E123* *E454*
-:fu[nction]            List all functions and their arguments.
-
-:fu[nction] {name}     List function {name}.
-                       {name} can also be a |Dictionary| entry that is a
-                       |Funcref|: >
-                               :function dict.init
-
-:fu[nction] /{pattern} List functions with a name matching {pattern}.
-                       Example that lists all functions ending with "File": >
-                               :function /File$
-<
-                                                       *:function-verbose*
-When 'verbose' is non-zero, listing a function will also display where it was
-last defined. Example: >
-
-    :verbose function SetFileTypeSH
-       function SetFileTypeSH(name)
-           Last set from /usr/share/vim/vim-7.0/filetype.vim
-<
-See |:verbose-cmd| for more information.
-
-                                               *E124* *E125* *E853* *E884*
-:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
-                       Define a new function by the name {name}.  The body of
-                       the function follows in the next lines, until the
-                       matching |:endfunction|.
-                                                               *E1267*
-                       The name must be made of alphanumeric characters and
-                       '_', and must start with a capital or "s:" (see
-                       above).  Note that using "b:" or "g:" is not allowed.
-                       (since patch 7.4.260 E884 is given if the function
-                       name has a colon in the name, e.g. for "foo:bar()".
-                       Before that patch no error was given).
-
-                       {name} can also be a |Dictionary| entry that is a
-                       |Funcref|: >
-                               :function dict.init(arg)
-<                      "dict" must be an existing dictionary.  The entry
-                       "init" is added if it didn't exist yet.  Otherwise [!]
-                       is required to overwrite an existing function.  The
-                       result is a |Funcref| to a numbered function.  The
-                       function can only be used with a |Funcref| and will be
-                       deleted if there are no more references to it.
-                                                               *E127* *E122*
-                       When a function by this name already exists and [!] is
-                       not used an error message is given.  There is one
-                       exception: When sourcing a script again, a function
-                       that was previously defined in that script will be
-                       silently replaced.
-                       When [!] is used, an existing function is silently
-                       replaced.  Unless it is currently being executed, that
-                       is an error.
-                       NOTE: Use ! wisely.  If used without care it can cause
-                       an existing function to be replaced unexpectedly,
-                       which is hard to debug.
-                       NOTE: In Vim9 script script-local functions cannot be
-                       deleted or redefined.
-
-                       For the {arguments} see |function-argument|.
-
-                                       *:func-range* *a:firstline* *a:lastline*
-                       When the [range] argument is added, the function is
-                       expected to take care of a range itself.  The range is
-                       passed as "a:firstline" and "a:lastline".  If [range]
-                       is excluded, ":{range}call" will call the function for
-                       each line in the range, with the cursor on the start
-                       of each line.  See |function-range-example|.
-                       The cursor is still moved to the first line of the
-                       range, as is the case with all Ex commands.
-                                                               *:func-abort*
-                       When the [abort] argument is added, the function will
-                       abort as soon as an error is detected.
-                                                               *:func-dict*
-                       When the [dict] argument is added, the function must
-                       be invoked through an entry in a |Dictionary|.  The
-                       local variable "self" will then be set to the
-                       dictionary.  See |Dictionary-function|.
-                                               *:func-closure* *E932*
-                       When the [closure] argument is added, the function
-                       can access variables and arguments from the outer
-                       scope.  This is usually called a closure.  In this
-                       example Bar() uses "x" from the scope of Foo().  It
-                       remains referenced even after Foo() returns: >
-                               :function! Foo()
-                               :  let x = 0
-                               :  function! Bar() closure
-                               :    let x += 1
-                               :    return x
-                               :  endfunction
-                               :  return funcref('Bar')
-                               :endfunction
-
-                               :let F = Foo()
-                               :echo F()
-<                              1 >
-                               :echo F()
-<                              2 >
-                               :echo F()
-<                              3
-
-                                               *function-search-undo*
-                       The last used search pattern and the redo command "."
-                       will not be changed by the function.  This also
-                       implies that the effect of |:nohlsearch| is undone
-                       when the function returns.
-
-                       *:endf* *:endfunction* *E126* *E193* *W22* *E1151*
-:endf[unction] [argument]
-                       The end of a function definition.  Best is to put it
-                       on a line by its own, without [argument].
-
-                       [argument] can be:
-                               | command       command to execute next
-                               \n command      command to execute next
-                               " comment       always ignored
-                               anything else   ignored, warning given when
-                                               'verbose' is non-zero
-                       The support for a following command was added in Vim
-                       8.0.0654, before that any argument was silently
-                       ignored.
-
-                       To be able to define a function inside an `:execute`
-                       command, use line breaks instead of |:bar|: >
-                               :exe "func Foo()\necho 'foo'\nendfunc"
-<
-                               *:delf* *:delfunction* *E131* *E933* *E1084*
-:delf[unction][!] {name}
-                       Delete function {name}.
-                       {name} can also be a |Dictionary| entry that is a
-                       |Funcref|: >
-                               :delfunc dict.init
-<                      This will remove the "init" entry from "dict".  The
-                       function is deleted if there are no more references to
-                       it.
-                       With the ! there is no error if the function does not
-                       exist.
-                                                       *:retu* *:return* *E133*
-:retu[rn] [expr]       Return from a function.  When "[expr]" is given, it is
-                       evaluated and returned as the result of the function.
-                       If "[expr]" is not given, the number 0 is returned.
-                       When a function ends without an explicit ":return",
-                       the number 0 is returned.
-                       In a :def function *E1095* is given if unreachable
-                       code follows after the `:return`.
-                       In legacy script there is no check for unreachable
-                       lines, thus there is no warning if commands follow
-                       `:return`.
-
-                       If the ":return" is used after a |:try| but before the
-                       matching |:finally| (if present), the commands
-                       following the ":finally" up to the matching |:endtry|
-                       are executed first.  This process applies to all
-                       nested ":try"s inside the function.  The function
-                       returns at the outermost ":endtry".
-
-                                               *function-argument* *a:var*
-An argument can be defined by giving its name.  In the function this can then
-be used as "a:name" ("a:" for argument).
-                                       *a:0* *a:1* *a:000* *E740* *...*
-Up to 20 arguments can be given, separated by commas.  After the named
-arguments an argument "..." can be specified, which means that more arguments
-may optionally be following.  In the function the extra arguments can be used
-as "a:1", "a:2", etc.  "a:0" is set to the number of extra arguments (which
-can be 0).  "a:000" is set to a |List| that contains these arguments.  Note
-that "a:1" is the same as "a:000[0]".
-                                                       *E742* *E1090*
-The a: scope and the variables in it cannot be changed, they are fixed.
-However, if a composite type is used, such as |List| or |Dictionary| , you can
-change their contents.  Thus you can pass a |List| to a function and have the
-function add an item to it.  If you want to make sure the function cannot
-change a |List| or |Dictionary| use |:lockvar|.
-
-It is also possible to define a function without any arguments.  You must
-still supply the () then.
-
-It is allowed to define another function inside a function body.
-
-                                               *optional-function-argument*
-You can provide default values for positional named arguments.  This makes
-them optional for function calls.  When a positional argument is not
-specified at a call, the default expression is used to initialize it.
-This only works for functions declared with `:function` or `:def`, not for
-lambda expressions |expr-lambda|.
-
-Example: >
-  function Something(key, value = 10)
-     echo a:key .. ": " .. a:value
-  endfunction
-  call Something('empty')      "empty: 10"
-  call Something('key', 20)    "key: 20"
-
-The argument default expressions are evaluated at the time of the function
-call, not definition.  Thus it is possible to use an expression which is
-invalid the moment the function is defined.  The expressions are also only
-evaluated when arguments are not specified during a call.
-                                               *none-function_argument*
-You can pass |v:none| to use the default expression.  Note that this means you
-cannot pass v:none as an ordinary value when an argument has a default
-expression.
-
-Example: >
-  function Something(a = 10, b = 20, c = 30)
-  endfunction
-  call Something(1, v:none, 3)     " b = 20
-<
-                                                               *E989*
-Optional arguments with default expressions must occur after any mandatory
-arguments.  You can use "..." after all optional named arguments.
-
-It is possible for later argument defaults to refer to prior arguments,
-but not the other way around.  They must be prefixed with "a:", as with all
-arguments.
-
-Example that works: >
-  :function Okay(mandatory, optional = a:mandatory)
-  :endfunction
-Example that does NOT work: >
-  :function NoGood(first = a:second, second = 10)
-  :endfunction
-<
-When not using "...", the number of arguments in a function call must be at
-least equal to the number of mandatory named arguments.  When using "...", the
-number of arguments may be larger than the total of mandatory and optional
-arguments.
-
-                                                       *local-variables*
-Inside a function local variables can be used.  These will disappear when the
-function returns.  Global variables need to be accessed with "g:".
-
-Example: >
-  :function Table(title, ...)
-  :  echohl Title
-  :  echo a:title
-  :  echohl None
-  :  echo a:0 .. " items:"
-  :  for s in a:000
-  :    echon ' ' .. s
-  :  endfor
-  :endfunction
-
-This function can then be called with: >
-  call Table("Table", "line1", "line2")
-  call Table("Empty Table")
-
-To return more than one value, return a |List|: >
-  :function Compute(n1, n2)
-  :  if a:n2 == 0
-  :    return ["fail", 0]
-  :  endif
-  :  return ["ok", a:n1 / a:n2]
-  :endfunction
-
-This function can then be called with: >
-  :let [success, div] = Compute(102, 6)
-  :if success == "ok"
-  :  echo div
-  :endif
-<
-                                               *:cal* *:call* *E107*
-:[range]cal[l] {name}([arguments])
-               Call a function.  The name of the function and its arguments
-               are as specified with `:function`.  Up to 20 arguments can be
-               used.  The returned value is discarded.
-               In |Vim9| script using `:call` is optional, these two lines do
-               the same thing: >
-                       call SomeFunc(arg)
-                       SomeFunc(arg)
-<              Without a range and for functions that accept a range, the
-               function is called once.  When a range is given the cursor is
-               positioned at the start of the first line before executing the
-               function.
-               When a range is given and the function doesn't handle it
-               itself, the function is executed for each line in the range,
-               with the cursor in the first column of that line.  The cursor
-               is left at the last line (possibly moved by the last function
-               call).  The arguments are re-evaluated for each line.  Thus
-               this works:
-                                               *function-range-example*  >
-       :function Mynumber(arg)
-       :  echo line(".") .. " " .. a:arg
-       :endfunction
-       :1,5call Mynumber(getline("."))
-<
-               The "a:firstline" and "a:lastline" are defined anyway, they
-               can be used to do something different at the start or end of
-               the range.
-
-               Example of a function that handles the range itself: >
-
-       :function Cont() range
-       :  execute (a:firstline + 1) .. "," .. a:lastline .. 's/^/\t\\ '
-       :endfunction
-       :4,8call Cont()
-<
-               This function inserts the continuation character "\" in front
-               of all the lines in the range, except the first one.
-
-               When the function returns a composite value it can be further
-               dereferenced, but the range will not be used then.  Example: >
-       :4,8call GetDict().method()
-<              Here GetDict() gets the range but method() does not.
-
-                                                               *E117*
-When a function cannot be found the error "E117: Unknown function" will be
-given.  If the function was using an autoload path or an autoload import and
-the script is a |Vim9| script, this may also be caused by the function not
-being exported.
-
-                                                               *E132*
-The recursiveness of user functions is restricted with the |'maxfuncdepth'|
-option.
-
-It is also possible to use `:eval`.  It does not support a range, but does
-allow for method chaining, e.g.: >
-       eval GetList()->Filter()->append('$')
-
-A function can also be called as part of evaluating an expression or when it
-is used as a method: >
-       let x = GetList()
-       let y = GetList()->Filter()
-
-
-CLEANING UP IN A FUNCTION ~
-                                                       *:defer*
-:defer {func}({args})  Call {func} when the current function is done.
-                       {args} are evaluated here.
-
-Quite often a command in a function has a global effect, which must be undone
-when the function finishes.  Handling this in all kinds of situations can be a
-hassle.  Especially when an unexpected error is encountered.  This can be done
-with `try` / `finally` blocks, but this gets complicated when there is more
-than one.
-
-A much simpler solution is using `defer`.  It schedules a function call when
-the function is returning, no matter if there is an error.  Example: >
-       func Filter(text)
-         call writefile(a:text, 'Tempfile')
-         call system('filter < Tempfile > Outfile')
-         call Handle('Outfile')
-         call delete('Tempfile')
-         call delete('Outfile')
-       endfunc
-
-Here 'Tempfile' and 'Outfile' will not be deleted if something causes the
-function to abort.  `:defer` can be used to avoid that: >
-       func Filter(text)
-         call writefile(a:text, 'Tempfile')
-         defer delete('Tempfile')
-         defer delete('Outfile')
-         call system('filter < Tempfile > Outfile')
-         call Handle('Outfile')
-       endfunc
-
-Note that deleting "Outfile" is scheduled before calling system(), since it
-can be created even when `system()` fails.
-
-The defered functions are called in reverse order, the last one added is
-executed first.  A useless example: >
-       func Useless()
-         for s in range(3)
-           defer execute('echomsg "number ' .. s .. '"')
-         endfor
-       endfunc
-
-Now `:messages` shows:
-       number 2
-       number 1
-       number 0
-
-Any return value of the deferred function is discarded.  The function cannot
-be followed by anything, such as "->func" or ".member".  Currently `:defer
-GetArg()->TheFunc()` does not work, it may work in a later version.
-
-Errors are reported but do not cause aborting execution of deferred functions.
-
-No range is accepted.
-
-
-AUTOMATICALLY LOADING FUNCTIONS ~
-                                                       *autoload-functions*
-When using many or large functions, it's possible to automatically define them
-only when they are used.  There are two methods: with an autocommand and with
-the "autoload" directory in 'runtimepath'.
-
-
-Using an autocommand ~
-
-This is introduced in the user manual, section |51.4|.
-
-The autocommand is useful if you have a plugin that is a long Vim script file.
-You can define the autocommand and quickly quit the script with `:finish`.
-That makes Vim startup faster.  The autocommand should then load the same file
-again, setting a variable to skip the `:finish` command.
-
-Use the FuncUndefined autocommand event with a pattern that matches the
-function(s) to be defined.  Example: >
-
-       :au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim
-
-The file "~/vim/bufnetfuncs.vim" should then define functions that start with
-"BufNet".  Also see |FuncUndefined|.
-
-
-Using an autoload script ~
-                                                       *autoload* *E746*
-This is introduced in the user manual, section |52.2|.
-
-Using a script in the "autoload" directory is simpler, but requires using
-exactly the right file name.  A function that can be autoloaded has a name
-like this: >
-
-       :call filename#funcname()
-
-These functions are always global, in Vim9 script "g:" needs to be used: >
-       :call g:filename#funcname()
-
-When such a function is called, and it is not defined yet, Vim will search the
-"autoload" directories in 'runtimepath' for a script file called
-"filename.vim".  For example "~/.vim/autoload/filename.vim".  That file should
-then define the function like this: >
-
-       function filename#funcname()
-          echo "Done!"
-       endfunction
-
-The file name and the name used before the # in the function must match
-exactly, and the defined function must have the name exactly as it will be
-called.  In Vim9 script the "g:" prefix must be used: >
-       function g:filename#funcname()
-
-or for a compiled function: >
-       def g:filename#funcname()
-
-It is possible to use subdirectories.  Every # in the function name works like
-a path separator.  Thus when calling a function: >
-
-       :call foo#bar#func()
-
-Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.
-
-This also works when reading a variable that has not been set yet: >
-
-       :let l = foo#bar#lvar
-
-However, when the autoload script was already loaded it won't be loaded again
-for an unknown variable.
-
-When assigning a value to such a variable nothing special happens.  This can
-be used to pass settings to the autoload script before it's loaded: >
-
-       :let foo#bar#toggle = 1
-       :call foo#bar#func()
-
-Note that when you make a mistake and call a function that is supposed to be
-defined in an autoload script, but the script doesn't actually define the
-function, you will get an error message for the missing function.  If you fix
-the autoload script it won't be automatically loaded again.  Either restart
-Vim or manually source the script.
-
-Also note that if you have two script files, and one calls a function in the
-other and vice versa, before the used function is defined, it won't work.
-Avoid using the autoload functionality at the toplevel.
-
-In |Vim9| script you will get error *E1263* if you define a function with
-a "#" character in the name.  You should use a name without "#" and use
-`:export`.
-
-Hint: If you distribute a bunch of scripts you can pack them together with the
-|vimball| utility.  Also read the user manual |distribute-script|.
+You can find most information about defining functions in |userfunc.txt|.
+For Vim9 functions, which execute much faster, support type checking and more,
+see |vim9.txt|.
 
 ==============================================================================
 6. Curly braces names                                  *curly-braces-names*
index 71200a3ea1025e0bc3cd7f2b04e8327777736441..db803ef804502b097a39bfcc588c0c7ef7130df7 100644 (file)
@@ -141,6 +141,7 @@ Advanced editing ~
 |autocmd.txt|  automatically executing commands on an event
 |eval.txt|     expression evaluation, conditional commands
 |builtin.txt|  builtin functions
+|userfunc.txt| defining user functions
 |channel.txt|  Jobs, Channels, inter-process communication
 |fold.txt|     hide (fold) ranges of lines
 
index 73ecead22acfdd33bd5f3ebb746745340e450267..9ff42183662caa3548cc8337d29edbc441af2e50 100644 (file)
@@ -1582,7 +1582,7 @@ $quote    eval.txt        /*$quote*
 -xrm   gui_x11.txt     /*-xrm*
 -y     starting.txt    /*-y*
 .      repeat.txt      /*.*
-...    eval.txt        /*...*
+...    userfunc.txt    /*...*
 .Xdefaults     gui_x11.txt     /*.Xdefaults*
 .aff   spell.txt       /*.aff*
 .dic   spell.txt       /*.dic*
@@ -2260,8 +2260,8 @@ $quote    eval.txt        /*$quote*
 :caddfile      quickfix.txt    /*:caddfile*
 :caf   quickfix.txt    /*:caf*
 :cafter        quickfix.txt    /*:cafter*
-:cal   eval.txt        /*:cal*
-:call  eval.txt        /*:call*
+:cal   userfunc.txt    /*:cal*
+:call  userfunc.txt    /*:call*
 :cat   eval.txt        /*:cat*
 :catch eval.txt        /*:catch*
 :cb    quickfix.txt    /*:cb*
@@ -2405,13 +2405,14 @@ $quote  eval.txt        /*$quote*
 :def   vim9.txt        /*:def*
 :defc  vim9.txt        /*:defc*
 :defcompile    vim9.txt        /*:defcompile*
+:defer userfunc.txt    /*:defer*
 :del   change.txt      /*:del*
 :delc  map.txt /*:delc*
 :delcommand    map.txt /*:delcommand*
 :delcr todo.txt        /*:delcr*
 :delete        change.txt      /*:delete*
-:delf  eval.txt        /*:delf*
-:delfunction   eval.txt        /*:delfunction*
+:delf  userfunc.txt    /*:delf*
+:delfunction   userfunc.txt    /*:delfunction*
 :delm  motion.txt      /*:delm*
 :delmarks      motion.txt      /*:delmarks*
 :di    change.txt      /*:di*
@@ -2488,10 +2489,10 @@ $quote  eval.txt        /*$quote*
 :endclass      vim9.txt        /*:endclass*
 :enddef        vim9.txt        /*:enddef*
 :endenum       vim9.txt        /*:endenum*
-:endf  eval.txt        /*:endf*
+:endf  userfunc.txt    /*:endf*
 :endfo eval.txt        /*:endfo*
 :endfor        eval.txt        /*:endfor*
-:endfunction   eval.txt        /*:endfunction*
+:endfunction   userfunc.txt    /*:endfunction*
 :endif eval.txt        /*:endif*
 :endinterface  vim9.txt        /*:endinterface*
 :endt  eval.txt        /*:endt*
@@ -2553,13 +2554,13 @@ $quote  eval.txt        /*$quote*
 :foldo fold.txt        /*:foldo*
 :foldopen      fold.txt        /*:foldopen*
 :for   eval.txt        /*:for*
-:fu    eval.txt        /*:fu*
-:func-abort    eval.txt        /*:func-abort*
-:func-closure  eval.txt        /*:func-closure*
-:func-dict     eval.txt        /*:func-dict*
-:func-range    eval.txt        /*:func-range*
-:function      eval.txt        /*:function*
-:function-verbose      eval.txt        /*:function-verbose*
+:fu    userfunc.txt    /*:fu*
+:func-abort    userfunc.txt    /*:func-abort*
+:func-closure  userfunc.txt    /*:func-closure*
+:func-dict     userfunc.txt    /*:func-dict*
+:func-range    userfunc.txt    /*:func-range*
+:function      userfunc.txt    /*:function*
+:function-verbose      userfunc.txt    /*:function-verbose*
 :g     repeat.txt      /*:g*
 :global        repeat.txt      /*:global*
 :go    motion.txt      /*:go*
@@ -2599,6 +2600,8 @@ $quote    eval.txt        /*$quote*
 :his   cmdline.txt     /*:his*
 :history       cmdline.txt     /*:history*
 :history-indexing      cmdline.txt     /*:history-indexing*
+:hor   windows.txt     /*:hor*
+:horizontal    windows.txt     /*:horizontal*
 :i     insert.txt      /*:i*
 :ia    map.txt /*:ia*
 :iabbrev       map.txt /*:iabbrev*
@@ -3049,8 +3052,8 @@ $quote    eval.txt        /*$quote*
 :ret   change.txt      /*:ret*
 :retab change.txt      /*:retab*
 :retab!        change.txt      /*:retab!*
-:retu  eval.txt        /*:retu*
-:return        eval.txt        /*:return*
+:retu  userfunc.txt    /*:retu*
+:return        userfunc.txt    /*:return*
 :rew   editing.txt     /*:rew*
 :rewind        editing.txt     /*:rewind*
 :ri    change.txt      /*:ri*
@@ -4078,7 +4081,7 @@ E1066     vim9.txt        /*E1066*
 E1067  eval.txt        /*E1067*
 E1068  vim9.txt        /*E1068*
 E1069  vim9.txt        /*E1069*
-E107   eval.txt        /*E107*
+E107   userfunc.txt    /*E107*
 E1071  vim9.txt        /*E1071*
 E1072  eval.txt        /*E1072*
 E1073  vim9.txt        /*E1073*
@@ -4093,18 +4096,18 @@ E1080   vim9.txt        /*E1080*
 E1081  eval.txt        /*E1081*
 E1082  vim9.txt        /*E1082*
 E1083  editing.txt     /*E1083*
-E1084  eval.txt        /*E1084*
+E1084  userfunc.txt    /*E1084*
 E1085  eval.txt        /*E1085*
 E1087  vim9.txt        /*E1087*
 E1088  vim9.txt        /*E1088*
 E1089  eval.txt        /*E1089*
 E109   eval.txt        /*E109*
-E1090  eval.txt        /*E1090*
+E1090  userfunc.txt    /*E1090*
 E1091  vim9.txt        /*E1091*
 E1092  various.txt     /*E1092*
 E1093  eval.txt        /*E1093*
 E1094  vim9.txt        /*E1094*
-E1095  eval.txt        /*E1095*
+E1095  userfunc.txt    /*E1095*
 E1096  vim9.txt        /*E1096*
 E1097  vim9.txt        /*E1097*
 E1098  eval.txt        /*E1098*
@@ -4167,7 +4170,7 @@ E1148     eval.txt        /*E1148*
 E1149  vim9.txt        /*E1149*
 E115   eval.txt        /*E115*
 E1150  vim9.txt        /*E1150*
-E1151  eval.txt        /*E1151*
+E1151  userfunc.txt    /*E1151*
 E1152  vim9.txt        /*E1152*
 E1153  eval.txt        /*E1153*
 E1154  eval.txt        /*E1154*
@@ -4187,7 +4190,7 @@ E1166     eval.txt        /*E1166*
 E1167  vim9.txt        /*E1167*
 E1168  vim9.txt        /*E1168*
 E1169  eval.txt        /*E1169*
-E117   eval.txt        /*E117*
+E117   userfunc.txt    /*E117*
 E1170  vim9.txt        /*E1170*
 E1171  vim9.txt        /*E1171*
 E1172  vim9.txt        /*E1172*
@@ -4243,7 +4246,7 @@ E1216     builtin.txt     /*E1216*
 E1217  vim9.txt        /*E1217*
 E1218  vim9.txt        /*E1218*
 E1219  vim9.txt        /*E1219*
-E122   eval.txt        /*E122*
+E122   userfunc.txt    /*E122*
 E1220  vim9.txt        /*E1220*
 E1221  vim9.txt        /*E1221*
 E1222  vim9.txt        /*E1222*
@@ -4254,7 +4257,7 @@ E1226     vim9.txt        /*E1226*
 E1227  vim9.txt        /*E1227*
 E1228  vim9.txt        /*E1228*
 E1229  eval.txt        /*E1229*
-E123   eval.txt        /*E123*
+E123   userfunc.txt    /*E123*
 E1230  options.txt     /*E1230*
 E1231  map.txt /*E1231*
 E1232  builtin.txt     /*E1232*
@@ -4264,7 +4267,7 @@ E1236     vim9.txt        /*E1236*
 E1237  map.txt /*E1237*
 E1238  vim9.txt        /*E1238*
 E1239  builtin.txt     /*E1239*
-E124   eval.txt        /*E124*
+E124   userfunc.txt    /*E124*
 E1240  change.txt      /*E1240*
 E1241  change.txt      /*E1241*
 E1242  change.txt      /*E1242*
@@ -4275,7 +4278,7 @@ E1246     eval.txt        /*E1246*
 E1247  cmdline.txt     /*E1247*
 E1248  vim9.txt        /*E1248*
 E1249  syntax.txt      /*E1249*
-E125   eval.txt        /*E125*
+E125   userfunc.txt    /*E125*
 E1250  vim9.txt        /*E1250*
 E1251  vim9.txt        /*E1251*
 E1252  vim9.txt        /*E1252*
@@ -4286,18 +4289,18 @@ E1256   vim9.txt        /*E1256*
 E1257  vim9.txt        /*E1257*
 E1258  vim9.txt        /*E1258*
 E1259  vim9.txt        /*E1259*
-E126   eval.txt        /*E126*
+E126   userfunc.txt    /*E126*
 E1260  vim9.txt        /*E1260*
 E1261  vim9.txt        /*E1261*
 E1262  vim9.txt        /*E1262*
-E1263  eval.txt        /*E1263*
+E1263  userfunc.txt    /*E1263*
 E1264  vim9.txt        /*E1264*
 E1265  eval.txt        /*E1265*
 E1266  if_pyth.txt     /*E1266*
-E1267  eval.txt        /*E1267*
+E1267  userfunc.txt    /*E1267*
 E1268  vim9.txt        /*E1268*
 E1269  vim9.txt        /*E1269*
-E127   eval.txt        /*E127*
+E127   userfunc.txt    /*E127*
 E1270  change.txt      /*E1270*
 E1271  vim9.txt        /*E1271*
 E1272  vim9.txt        /*E1272*
@@ -4308,7 +4311,7 @@ E1276     builtin.txt     /*E1276*
 E1277  channel.txt     /*E1277*
 E1278  eval.txt        /*E1278*
 E1279  eval.txt        /*E1279*
-E128   eval.txt        /*E128*
+E128   userfunc.txt    /*E128*
 E1280  spell.txt       /*E1280*
 E1281  pattern.txt     /*E1281*
 E1282  eval.txt        /*E1282*
@@ -4319,7 +4322,7 @@ E1286     builtin.txt     /*E1286*
 E1287  builtin.txt     /*E1287*
 E1288  builtin.txt     /*E1288*
 E1289  builtin.txt     /*E1289*
-E129   eval.txt        /*E129*
+E129   userfunc.txt    /*E129*
 E1290  change.txt      /*E1290*
 E1291  testing.txt     /*E1291*
 E1292  cmdline.txt     /*E1292*
@@ -4328,10 +4331,11 @@ E1294   textprop.txt    /*E1294*
 E1295  textprop.txt    /*E1295*
 E1296  textprop.txt    /*E1296*
 E1297  vim9.txt        /*E1297*
+E1298  vim9.txt        /*E1298*
 E13    message.txt     /*E13*
-E131   eval.txt        /*E131*
-E132   eval.txt        /*E132*
-E133   eval.txt        /*E133*
+E131   userfunc.txt    /*E131*
+E132   userfunc.txt    /*E132*
+E133   userfunc.txt    /*E133*
 E134   change.txt      /*E134*
 E135   autocmd.txt     /*E135*
 E136   starting.txt    /*E136*
@@ -4396,7 +4400,7 @@ E19       message.txt     /*E19*
 E190   message.txt     /*E190*
 E191   motion.txt      /*E191*
 E192   message.txt     /*E192*
-E193   eval.txt        /*E193*
+E193   userfunc.txt    /*E193*
 E194   message.txt     /*E194*
 E195   starting.txt    /*E195*
 E196   various.txt     /*E196*
@@ -4675,7 +4679,7 @@ E450      popup.txt       /*E450*
 E451   eval.txt        /*E451*
 E452   eval.txt        /*E452*
 E453   syntax.txt      /*E453*
-E454   eval.txt        /*E454*
+E454   userfunc.txt    /*E454*
 E455   print.txt       /*E455*
 E456   print.txt       /*E456*
 E457   print.txt       /*E457*
@@ -4978,13 +4982,13 @@ E737    builtin.txt     /*E737*
 E738   eval.txt        /*E738*
 E739   builtin.txt     /*E739*
 E74    message.txt     /*E74*
-E740   eval.txt        /*E740*
+E740   userfunc.txt    /*E740*
 E741   eval.txt        /*E741*
-E742   eval.txt        /*E742*
+E742   userfunc.txt    /*E742*
 E743   eval.txt        /*E743*
 E744   netbeans.txt    /*E744*
 E745   eval.txt        /*E745*
-E746   eval.txt        /*E746*
+E746   userfunc.txt    /*E746*
 E747   editing.txt     /*E747*
 E748   repeat.txt      /*E748*
 E749   various.txt     /*E749*
@@ -5101,7 +5105,7 @@ E85       options.txt     /*E85*
 E850   change.txt      /*E850*
 E851   gui_x11.txt     /*E851*
 E852   gui_x11.txt     /*E852*
-E853   eval.txt        /*E853*
+E853   userfunc.txt    /*E853*
 E854   options.txt     /*E854*
 E855   autocmd.txt     /*E855*
 E856   testing.txt     /*E856*
@@ -5135,7 +5139,7 @@ E880      if_pyth.txt     /*E880*
 E881   autocmd.txt     /*E881*
 E882   builtin.txt     /*E882*
 E883   builtin.txt     /*E883*
-E884   eval.txt        /*E884*
+E884   userfunc.txt    /*E884*
 E885   sign.txt        /*E885*
 E886   starting.txt    /*E886*
 E887   if_pyth.txt     /*E887*
@@ -5188,8 +5192,8 @@ E929      starting.txt    /*E929*
 E93    windows.txt     /*E93*
 E930   builtin.txt     /*E930*
 E931   message.txt     /*E931*
-E932   eval.txt        /*E932*
-E933   eval.txt        /*E933*
+E932   userfunc.txt    /*E932*
+E933   userfunc.txt    /*E933*
 E934   sign.txt        /*E934*
 E935   builtin.txt     /*E935*
 E936   autocmd.txt     /*E936*
@@ -5250,7 +5254,7 @@ E985      eval.txt        /*E985*
 E986   tagsrch.txt     /*E986*
 E987   tagsrch.txt     /*E987*
 E988   gui_w32.txt     /*E988*
-E989   eval.txt        /*E989*
+E989   userfunc.txt    /*E989*
 E99    diff.txt        /*E99*
 E990   eval.txt        /*E990*
 E991   eval.txt        /*E991*
@@ -5572,7 +5576,7 @@ W18       syntax.txt      /*W18*
 W19    autocmd.txt     /*W19*
 W20    if_pyth.txt     /*W20*
 W21    if_pyth.txt     /*W21*
-W22    eval.txt        /*W22*
+W22    userfunc.txt    /*W22*
 WORD   motion.txt      /*WORD*
 WSL    os_win32.txt    /*WSL*
 WWW    intro.txt       /*WWW*
@@ -5707,12 +5711,12 @@ a'      motion.txt      /*a'*
 a(     motion.txt      /*a(*
 a)     motion.txt      /*a)*
 a4     print.txt       /*a4*
-a:0    eval.txt        /*a:0*
-a:000  eval.txt        /*a:000*
-a:1    eval.txt        /*a:1*
-a:firstline    eval.txt        /*a:firstline*
-a:lastline     eval.txt        /*a:lastline*
-a:var  eval.txt        /*a:var*
+a:0    userfunc.txt    /*a:0*
+a:000  userfunc.txt    /*a:000*
+a:1    userfunc.txt    /*a:1*
+a:firstline    userfunc.txt    /*a:firstline*
+a:lastline     userfunc.txt    /*a:lastline*
+a:var  userfunc.txt    /*a:var*
 a<     motion.txt      /*a<*
 a>     motion.txt      /*a>*
 aB     motion.txt      /*aB*
@@ -5858,8 +5862,8 @@ autocommand-events        autocmd.txt     /*autocommand-events*
 autocommand-pattern    autocmd.txt     /*autocommand-pattern*
 autocommands   autocmd.txt     /*autocommands*
 autoformat     change.txt      /*autoformat*
-autoload       eval.txt        /*autoload*
-autoload-functions     eval.txt        /*autoload-functions*
+autoload       userfunc.txt    /*autoload*
+autoload-functions     userfunc.txt    /*autoload-functions*
 avoid-hit-enter        version5.txt    /*avoid-hit-enter*
 aw     motion.txt      /*aw*
 a{     motion.txt      /*a{*
@@ -6493,6 +6497,7 @@ decada_members    ft_ada.txt      /*decada_members*
 deepcopy()     builtin.txt     /*deepcopy()*
 defaults.vim   starting.txt    /*defaults.vim*
 defaults.vim-explained usr_05.txt      /*defaults.vim-explained*
+define-function        userfunc.txt    /*define-function*
 definition-search      tagsrch.txt     /*definition-search*
 definitions    intro.txt       /*definitions*
 delete()       builtin.txt     /*delete()*
@@ -7131,11 +7136,11 @@ ftplugins       usr_05.txt      /*ftplugins*
 fullcommand()  builtin.txt     /*fullcommand()*
 funcref()      builtin.txt     /*funcref()*
 function()     builtin.txt     /*function()*
-function-argument      eval.txt        /*function-argument*
+function-argument      userfunc.txt    /*function-argument*
 function-key   intro.txt       /*function-key*
 function-list  usr_41.txt      /*function-list*
-function-range-example eval.txt        /*function-range-example*
-function-search-undo   eval.txt        /*function-search-undo*
+function-range-example userfunc.txt    /*function-range-example*
+function-search-undo   userfunc.txt    /*function-search-undo*
 function_key   intro.txt       /*function_key*
 functions      eval.txt        /*functions*
 fuzzy-matching pattern.txt     /*fuzzy-matching*
@@ -8182,10 +8187,10 @@ lnum-variable   eval.txt        /*lnum-variable*
 load-plugins   starting.txt    /*load-plugins*
 load-vim-script        repeat.txt      /*load-vim-script*
 local-additions        help.txt        /*local-additions*
-local-function eval.txt        /*local-function*
+local-function userfunc.txt    /*local-function*
 local-options  options.txt     /*local-options*
 local-variable eval.txt        /*local-variable*
-local-variables        eval.txt        /*local-variables*
+local-variables        userfunc.txt    /*local-variables*
 local_markfilelist     pi_netrw.txt    /*local_markfilelist*
 locale mbyte.txt       /*locale*
 locale-name    mbyte.txt       /*locale-name*
@@ -8797,7 +8802,7 @@ no_plugin_maps    filetype.txt    /*no_plugin_maps*
 nocombine      syntax.txt      /*nocombine*
 non-greedy     pattern.txt     /*non-greedy*
 non-zero-arg   eval.txt        /*non-zero-arg*
-none-function_argument eval.txt        /*none-function_argument*
+none-function_argument userfunc.txt    /*none-function_argument*
 none-variable  eval.txt        /*none-variable*
 normal-index   index.txt       /*normal-index*
 not-compatible usr_01.txt      /*not-compatible*
@@ -8851,7 +8856,7 @@ option-value-function     options.txt     /*option-value-function*
 option-window  options.txt     /*option-window*
 option_restore()       todo.txt        /*option_restore()*
 option_save()  todo.txt        /*option_save()*
-optional-function-argument     eval.txt        /*optional-function-argument*
+optional-function-argument     userfunc.txt    /*optional-function-argument*
 options        options.txt     /*options*
 options-changed        version5.txt    /*options-changed*
 options-in-terminal    terminal.txt    /*options-in-terminal*
@@ -10326,6 +10331,7 @@ user-cmd-ambiguous      map.txt /*user-cmd-ambiguous*
 user-commands  map.txt /*user-commands*
 user-functions eval.txt        /*user-functions*
 user-manual    usr_toc.txt     /*user-manual*
+userfunc.txt   userfunc.txt    /*userfunc.txt*
 using-<Plug>   usr_51.txt      /*using-<Plug>*
 using-menus    gui.txt /*using-menus*
 using-scripts  repeat.txt      /*using-scripts*
index 327ae01f4db79f13ad7e484b6807f49c6a690373..71b8b0f07c5d4f024647ed5794908cba3a124774 100644 (file)
@@ -38,12 +38,17 @@ browser use: https://github.com/vim/vim/issues/1234
                                                        *known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-cmdheight=0:
-- :g/pattern should not use message window  #11012
+When using :echomessage do use msg_row and msg_col, but save and restore.
+How to test any failure?
 
-*.sil detection with FTsil() (lacygoill, Aug 25)
+Improve :defer command:
+    - Use "D" flag of writefile() in tests.
+    - test "defer func()->funcouter()" fails (or use "funcouter")
+    - test "defer func().arg" fails
+    - test partial fails
+    - check arguments at :defer command
+    - Also when function does "qa!" or "cq"?
 
-Avoid using "Xfile" and "Xdir" in tests, use specific names.
 
 Further Vim9 improvements, possibly after launch:
 - Use Vim9 for more runtime files.
@@ -183,10 +188,7 @@ Terminal emulator window:
 - When 'encoding' is not utf-8, or the job is using another encoding, setup
   conversions.
 
-Cleanup:
-- Remove FEAT_FOOTER ?
-
-Add 'splitscroll'  #10682  Useful?  Any remaining trouble?
+Add 'splitscroll'  #10682  Anything remaining
 
 Autoconf: must use autoconf 2.69, later version generates lots of warnings
 - try using autoconf 2.71 and fix all "obsolete" warnings
@@ -196,6 +198,8 @@ Can deref_func_name() and deref_function_name() be merged?
 After patch 8.2.4915 w_botline is computed much more often. Can this be
 reduced?
 
+Add BufDeletePost.  #11041
+
 NFA regexp does not handle composing characters well: #10286
     [ɔ̃] matches both É” and É”̃
     \(É”\|ɔ̃\) matches É” and not É”̃
@@ -3753,6 +3757,7 @@ Syntax highlighting:
     - use treesitter, NeoVim uses it - Many people don't like it.
        After changes requires rebuilding the library.
     - use TextMate, vscode uses it.  #9087 - Other people don't like it.
+           https://github.com/icedman/vim-textmate
       Vscode is asked to switch to treesitter:
       https://github.com/microsoft/vscode/issues/50140
     - sublime grammar?
diff --git a/runtime/doc/userfunc.txt b/runtime/doc/userfunc.txt
new file mode 100644 (file)
index 0000000..f637700
--- /dev/null
@@ -0,0 +1,530 @@
+*userfunc.txt* For Vim version 9.0.  Last change: 2022 Jun 17
+
+
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+
+
+Defining and using functions.
+
+This is introduced in section |41.7| of the user manual.
+
+1. Defining a fuction                  |define-function|
+2. Calling a fuction                   |:call|
+3. Cleaning up in a function           |:defer|
+4. Automatically loading functions     |autoload-functions|
+
+==============================================================================
+
+1. Defining a fuction ~
+                                               *define-function*
+New functions can be defined.  These can be called just like builtin
+functions.  The function executes a sequence of Ex commands.  Normal mode
+commands can be executed with the |:normal| command.
+
+The function name must start with an uppercase letter, to avoid confusion with
+builtin functions.  To prevent from using the same name in different scripts
+make them script-local.  If you do use a global function the avoid obvious,
+short names.  A good habit is to start the function name with the name of the
+script, e.g., "HTMLcolor()".
+
+In legacy script it is also possible to use curly braces, see
+|curly-braces-names|.
+
+The |autoload| facility is useful to define a function only when it's called.
+
+                                                       *local-function*
+A function local to a legacy script must start with "s:".  A local script
+function can only be called from within the script and from functions, user
+commands and autocommands defined in the script.  It is also possible to call
+the function from a mapping defined in the script, but then |<SID>| must be
+used instead of "s:" when the mapping is expanded outside of the script.
+There are only script-local functions, no buffer-local or window-local
+functions.
+
+In |Vim9| script functions are local to the script by default, prefix "g:" to
+define a global function.
+
+                               *:fu* *:function* *E128* *E129* *E123* *E454*
+:fu[nction]            List all functions and their arguments.
+
+:fu[nction] {name}     List function {name}.
+                       {name} can also be a |Dictionary| entry that is a
+                       |Funcref|: >
+                               :function dict.init
+
+:fu[nction] /{pattern} List functions with a name matching {pattern}.
+                       Example that lists all functions ending with "File": >
+                               :function /File$
+<
+                                                       *:function-verbose*
+When 'verbose' is non-zero, listing a function will also display where it was
+last defined. Example: >
+
+    :verbose function SetFileTypeSH
+       function SetFileTypeSH(name)
+           Last set from /usr/share/vim/vim-7.0/filetype.vim
+<
+See |:verbose-cmd| for more information.
+
+                                               *E124* *E125* *E853* *E884*
+:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
+                       Define a new function by the name {name}.  The body of
+                       the function follows in the next lines, until the
+                       matching |:endfunction|.
+                                                               *E1267*
+                       The name must be made of alphanumeric characters and
+                       '_', and must start with a capital or "s:" (see
+                       above).  Note that using "b:" or "g:" is not allowed.
+                       (since patch 7.4.260 E884 is given if the function
+                       name has a colon in the name, e.g. for "foo:bar()".
+                       Before that patch no error was given).
+
+                       {name} can also be a |Dictionary| entry that is a
+                       |Funcref|: >
+                               :function dict.init(arg)
+<                      "dict" must be an existing dictionary.  The entry
+                       "init" is added if it didn't exist yet.  Otherwise [!]
+                       is required to overwrite an existing function.  The
+                       result is a |Funcref| to a numbered function.  The
+                       function can only be used with a |Funcref| and will be
+                       deleted if there are no more references to it.
+                                                               *E127* *E122*
+                       When a function by this name already exists and [!] is
+                       not used an error message is given.  There is one
+                       exception: When sourcing a script again, a function
+                       that was previously defined in that script will be
+                       silently replaced.
+                       When [!] is used, an existing function is silently
+                       replaced.  Unless it is currently being executed, that
+                       is an error.
+                       NOTE: Use ! wisely.  If used without care it can cause
+                       an existing function to be replaced unexpectedly,
+                       which is hard to debug.
+                       NOTE: In Vim9 script script-local functions cannot be
+                       deleted or redefined.
+
+                       For the {arguments} see |function-argument|.
+
+                                       *:func-range* *a:firstline* *a:lastline*
+                       When the [range] argument is added, the function is
+                       expected to take care of a range itself.  The range is
+                       passed as "a:firstline" and "a:lastline".  If [range]
+                       is excluded, ":{range}call" will call the function for
+                       each line in the range, with the cursor on the start
+                       of each line.  See |function-range-example|.
+                       The cursor is still moved to the first line of the
+                       range, as is the case with all Ex commands.
+                                                               *:func-abort*
+                       When the [abort] argument is added, the function will
+                       abort as soon as an error is detected.
+                                                               *:func-dict*
+                       When the [dict] argument is added, the function must
+                       be invoked through an entry in a |Dictionary|.  The
+                       local variable "self" will then be set to the
+                       dictionary.  See |Dictionary-function|.
+                                               *:func-closure* *E932*
+                       When the [closure] argument is added, the function
+                       can access variables and arguments from the outer
+                       scope.  This is usually called a closure.  In this
+                       example Bar() uses "x" from the scope of Foo().  It
+                       remains referenced even after Foo() returns: >
+                               :function! Foo()
+                               :  let x = 0
+                               :  function! Bar() closure
+                               :    let x += 1
+                               :    return x
+                               :  endfunction
+                               :  return funcref('Bar')
+                               :endfunction
+
+                               :let F = Foo()
+                               :echo F()
+<                              1 >
+                               :echo F()
+<                              2 >
+                               :echo F()
+<                              3
+
+                                               *function-search-undo*
+                       The last used search pattern and the redo command "."
+                       will not be changed by the function.  This also
+                       implies that the effect of |:nohlsearch| is undone
+                       when the function returns.
+
+                       *:endf* *:endfunction* *E126* *E193* *W22* *E1151*
+:endf[unction] [argument]
+                       The end of a function definition.  Best is to put it
+                       on a line by its own, without [argument].
+
+                       [argument] can be:
+                               | command       command to execute next
+                               \n command      command to execute next
+                               " comment       always ignored
+                               anything else   ignored, warning given when
+                                               'verbose' is non-zero
+                       The support for a following command was added in Vim
+                       8.0.0654, before that any argument was silently
+                       ignored.
+
+                       To be able to define a function inside an `:execute`
+                       command, use line breaks instead of |:bar|: >
+                               :exe "func Foo()\necho 'foo'\nendfunc"
+<
+                               *:delf* *:delfunction* *E131* *E933* *E1084*
+:delf[unction][!] {name}
+                       Delete function {name}.
+                       {name} can also be a |Dictionary| entry that is a
+                       |Funcref|: >
+                               :delfunc dict.init
+<                      This will remove the "init" entry from "dict".  The
+                       function is deleted if there are no more references to
+                       it.
+                       With the ! there is no error if the function does not
+                       exist.
+                                                       *:retu* *:return* *E133*
+:retu[rn] [expr]       Return from a function.  When "[expr]" is given, it is
+                       evaluated and returned as the result of the function.
+                       If "[expr]" is not given, the number 0 is returned.
+                       When a function ends without an explicit ":return",
+                       the number 0 is returned.
+                       In a :def function *E1095* is given if unreachable
+                       code follows after the `:return`.
+                       In legacy script there is no check for unreachable
+                       lines, thus there is no warning if commands follow
+                       `:return`.
+
+                       If the ":return" is used after a |:try| but before the
+                       matching |:finally| (if present), the commands
+                       following the ":finally" up to the matching |:endtry|
+                       are executed first.  This process applies to all
+                       nested ":try"s inside the function.  The function
+                       returns at the outermost ":endtry".
+
+                                               *function-argument* *a:var*
+An argument can be defined by giving its name.  In the function this can then
+be used as "a:name" ("a:" for argument).
+                                       *a:0* *a:1* *a:000* *E740* *...*
+Up to 20 arguments can be given, separated by commas.  After the named
+arguments an argument "..." can be specified, which means that more arguments
+may optionally be following.  In the function the extra arguments can be used
+as "a:1", "a:2", etc.  "a:0" is set to the number of extra arguments (which
+can be 0).  "a:000" is set to a |List| that contains these arguments.  Note
+that "a:1" is the same as "a:000[0]".
+                                                       *E742* *E1090*
+The a: scope and the variables in it cannot be changed, they are fixed.
+However, if a composite type is used, such as |List| or |Dictionary| , you can
+change their contents.  Thus you can pass a |List| to a function and have the
+function add an item to it.  If you want to make sure the function cannot
+change a |List| or |Dictionary| use |:lockvar|.
+
+It is also possible to define a function without any arguments.  You must
+still supply the () then.
+
+It is allowed to define another function inside a function body.
+
+                                               *optional-function-argument*
+You can provide default values for positional named arguments.  This makes
+them optional for function calls.  When a positional argument is not
+specified at a call, the default expression is used to initialize it.
+This only works for functions declared with `:function` or `:def`, not for
+lambda expressions |expr-lambda|.
+
+Example: >
+  function Something(key, value = 10)
+     echo a:key .. ": " .. a:value
+  endfunction
+  call Something('empty')      "empty: 10"
+  call Something('key', 20)    "key: 20"
+
+The argument default expressions are evaluated at the time of the function
+call, not definition.  Thus it is possible to use an expression which is
+invalid the moment the function is defined.  The expressions are also only
+evaluated when arguments are not specified during a call.
+                                               *none-function_argument*
+You can pass |v:none| to use the default expression.  Note that this means you
+cannot pass v:none as an ordinary value when an argument has a default
+expression.
+
+Example: >
+  function Something(a = 10, b = 20, c = 30)
+  endfunction
+  call Something(1, v:none, 3)     " b = 20
+<
+                                                               *E989*
+Optional arguments with default expressions must occur after any mandatory
+arguments.  You can use "..." after all optional named arguments.
+
+It is possible for later argument defaults to refer to prior arguments,
+but not the other way around.  They must be prefixed with "a:", as with all
+arguments.
+
+Example that works: >
+  :function Okay(mandatory, optional = a:mandatory)
+  :endfunction
+Example that does NOT work: >
+  :function NoGood(first = a:second, second = 10)
+  :endfunction
+<
+When not using "...", the number of arguments in a function call must be at
+least equal to the number of mandatory named arguments.  When using "...", the
+number of arguments may be larger than the total of mandatory and optional
+arguments.
+
+                                                       *local-variables*
+Inside a function local variables can be used.  These will disappear when the
+function returns.  Global variables need to be accessed with "g:".
+Inside functions local variables are accessed without prepending anything.
+But you can also prepend "l:" if you like.  This is required for some reserved
+names, such as "count".
+
+Example: >
+  :function Table(title, ...)
+  :  echohl Title
+  :  echo a:title
+  :  echohl None
+  :  echo a:0 .. " items:"
+  :  for s in a:000
+  :    echon ' ' .. s
+  :  endfor
+  :endfunction
+
+This function can then be called with: >
+  call Table("Table", "line1", "line2")
+  call Table("Empty Table")
+
+To return more than one value, return a |List|: >
+  :function Compute(n1, n2)
+  :  if a:n2 == 0
+  :    return ["fail", 0]
+  :  endif
+  :  return ["ok", a:n1 / a:n2]
+  :endfunction
+
+This function can then be called with: >
+  :let [success, div] = Compute(102, 6)
+  :if success == "ok"
+  :  echo div
+  :endif
+<
+==============================================================================
+
+2. Calling a fuction ~
+                                               *:cal* *:call* *E107*
+:[range]cal[l] {name}([arguments])
+               Call a function.  The name of the function and its arguments
+               are as specified with `:function`.  Up to 20 arguments can be
+               used.  The returned value is discarded.
+               In |Vim9| script using `:call` is optional, these two lines do
+               the same thing: >
+                       call SomeFunc(arg)
+                       SomeFunc(arg)
+<              Without a range and for functions that accept a range, the
+               function is called once.  When a range is given the cursor is
+               positioned at the start of the first line before executing the
+               function.
+               When a range is given and the function doesn't handle it
+               itself, the function is executed for each line in the range,
+               with the cursor in the first column of that line.  The cursor
+               is left at the last line (possibly moved by the last function
+               call).  The arguments are re-evaluated for each line.  Thus
+               this works:
+                                               *function-range-example*  >
+       :function Mynumber(arg)
+       :  echo line(".") .. " " .. a:arg
+       :endfunction
+       :1,5call Mynumber(getline("."))
+<
+               The "a:firstline" and "a:lastline" are defined anyway, they
+               can be used to do something different at the start or end of
+               the range.
+
+               Example of a function that handles the range itself: >
+
+       :function Cont() range
+       :  execute (a:firstline + 1) .. "," .. a:lastline .. 's/^/\t\\ '
+       :endfunction
+       :4,8call Cont()
+<
+               This function inserts the continuation character "\" in front
+               of all the lines in the range, except the first one.
+
+               When the function returns a composite value it can be further
+               dereferenced, but the range will not be used then.  Example: >
+       :4,8call GetDict().method()
+<              Here GetDict() gets the range but method() does not.
+
+                                                               *E117*
+When a function cannot be found the error "E117: Unknown function" will be
+given.  If the function was using an autoload path or an autoload import and
+the script is a |Vim9| script, this may also be caused by the function not
+being exported.
+
+                                                               *E132*
+The recursiveness of user functions is restricted with the |'maxfuncdepth'|
+option.
+
+It is also possible to use `:eval`.  It does not support a range, but does
+allow for method chaining, e.g.: >
+       eval GetList()->Filter()->append('$')
+
+A function can also be called as part of evaluating an expression or when it
+is used as a method: >
+       let x = GetList()
+       let y = GetList()->Filter()
+
+==============================================================================
+
+3. Cleaning up in a function ~
+                                                       *:defer*
+:defer {func}({args})  Call {func} when the current function is done.
+                       {args} are evaluated here.
+
+Quite often a command in a function has a global effect, which must be undone
+when the function finishes.  Handling this in all kinds of situations can be a
+hassle.  Especially when an unexpected error is encountered.  This can be done
+with `try` / `finally` blocks, but this gets complicated when there is more
+than one.
+
+A much simpler solution is using `defer`.  It schedules a function call when
+the function is returning, no matter if there is an error.  Example: >
+       func Filter(text) abort
+         call writefile(a:text, 'Tempfile')
+         call system('filter < Tempfile > Outfile')
+         call Handle('Outfile')
+         call delete('Tempfile')
+         call delete('Outfile')
+       endfunc
+
+Here 'Tempfile' and 'Outfile' will not be deleted if something causes the
+function to abort.  `:defer` can be used to avoid that: >
+       func Filter(text) abort
+         call writefile(a:text, 'Tempfile')
+         defer delete('Tempfile')
+         defer delete('Outfile')
+         call system('filter < Tempfile > Outfile')
+         call Handle('Outfile')
+       endfunc
+
+Note that deleting "Outfile" is scheduled before calling system(), since it
+can be created even when `system()` fails.
+
+The deferred functions are called in reverse order, the last one added is
+executed first.  A useless example: >
+       func Useless() abort
+         for s in range(3)
+           defer execute('echomsg "number ' .. s .. '"')
+         endfor
+       endfunc
+
+Now `:messages` shows:
+       number 2
+       number 1
+       number 0
+
+Any return value of the deferred function is discarded.  The function cannot
+be followed by anything, such as "->func" or ".member".  Currently `:defer
+GetArg()->TheFunc()` does not work, it may work in a later version.
+
+Errors are reported but do not cause aborting execution of deferred functions.
+
+No range is accepted.
+
+==============================================================================
+
+4. Automatically loading functions ~
+                                                       *autoload-functions*
+When using many or large functions, it's possible to automatically define them
+only when they are used.  There are two methods: with an autocommand and with
+the "autoload" directory in 'runtimepath'.
+
+In |Vim9| script there is also an autoload mechanism for imported scripts, see
+|import-autoload|.
+
+
+Using an autocommand ~
+
+This is introduced in the user manual, section |51.4|.
+
+The autocommand is useful if you have a plugin that is a long Vim script file.
+You can define the autocommand and quickly quit the script with `:finish`.
+That makes Vim startup faster.  The autocommand should then load the same file
+again, setting a variable to skip the `:finish` command.
+
+Use the FuncUndefined autocommand event with a pattern that matches the
+function(s) to be defined.  Example: >
+
+       :au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim
+
+The file "~/vim/bufnetfuncs.vim" should then define functions that start with
+"BufNet".  Also see |FuncUndefined|.
+
+
+Using an autoload script ~
+                                                       *autoload* *E746*
+This is introduced in the user manual, section |52.2|.
+
+Using a script in the "autoload" directory is simpler, but requires using
+exactly the right file name.  A function that can be autoloaded has a name
+like this: >
+
+       :call filename#funcname()
+
+These functions are always global, in Vim9 script "g:" needs to be used: >
+       :call g:filename#funcname()
+
+When such a function is called, and it is not defined yet, Vim will search the
+"autoload" directories in 'runtimepath' for a script file called
+"filename.vim".  For example "~/.vim/autoload/filename.vim".  That file should
+then define the function like this: >
+
+       function filename#funcname()
+          echo "Done!"
+       endfunction
+
+The file name and the name used before the # in the function must match
+exactly, and the defined function must have the name exactly as it will be
+called.  In Vim9 script the "g:" prefix must be used: >
+       function g:filename#funcname()
+
+or for a compiled function: >
+       def g:filename#funcname()
+
+It is possible to use subdirectories.  Every # in the function name works like
+a path separator.  Thus when calling a function: >
+
+       :call foo#bar#func()
+
+Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.
+
+This also works when reading a variable that has not been set yet: >
+
+       :let l = foo#bar#lvar
+
+However, when the autoload script was already loaded it won't be loaded again
+for an unknown variable.
+
+When assigning a value to such a variable nothing special happens.  This can
+be used to pass settings to the autoload script before it's loaded: >
+
+       :let foo#bar#toggle = 1
+       :call foo#bar#func()
+
+Note that when you make a mistake and call a function that is supposed to be
+defined in an autoload script, but the script doesn't actually define the
+function, you will get an error message for the missing function.  If you fix
+the autoload script it won't be automatically loaded again.  Either restart
+Vim or manually source the script.
+
+Also note that if you have two script files, and one calls a function in the
+other and vice versa, before the used function is defined, it won't work.
+Avoid using the autoload functionality at the toplevel.
+
+In |Vim9| script you will get error *E1263* if you define a function with
+a "#" character in the name.  You should use a name without "#" and use
+`:export`.
+
+Hint: If you distribute a bunch of scripts you can pack them together with the
+|vimball| utility.  Also read the user manual |distribute-script|.
+
+
+ vim:tw=78:ts=8:noet:ft=help:norl:
index 32ec10211fb4ca1ac45d5b7da116e597f3cf90f4..b60d44c5d9aa24d5029926c73a5c2230e1d38943 100644 (file)
@@ -257,13 +257,13 @@ and 'winminwidth' are relevant.
 :vert[ical] {cmd}
                Execute {cmd}.  If it contains a command that splits a window,
                it will be split vertically.  For `vertical wincmd =` windows
-               will be equialized only vertically.
+               will be equalized only vertically.
                Doesn't work for |:execute| and |:normal|.
 
                                                *:hor* *:horizontal*
 :hor[izontal] {cmd}
                Execute {cmd}.  Currently only makes a difference for
-               `horizontal wincmd =`, which will equal windows only
+               `horizontal wincmd =`, which will equalize windows only
                horizontally.
 
 :lefta[bove] {cmd}                             *:lefta* *:leftabove*
index dc1d220d06c31bf66e41bdf42ac5238caf056113..3597d45d88fec168e4bf63f0bb8c5a3ced94b417 100644 (file)
@@ -3,6 +3,7 @@ vim9script
 # Vim filetype plugin file
 # Language: gdscript (Godot game engine scripting language)
 # Maintainer: Maxim Kim <habamax@gmail.com>
+# Website: https://github.com/habamax/vim-gdscript
 
 if exists("b:did_ftplugin") | finish | endif
 
@@ -49,5 +50,5 @@ enddef
 
 nnoremap <silent><buffer>   ]] <scriptcmd>NextSection(false, v:count1)<CR>
 nnoremap <silent><buffer>   [[ <scriptcmd>NextSection(true, v:count1)<CR>
-xmap <silent><buffer><expr> ]] "\<esc>" .. v:count1 .. ']]m>gv'
-xmap <silent><buffer><expr> [[ "\<esc>" .. v:count1 .. '[[m>gv'
+xmap <buffer><expr> ]] $'<C-\><C-N>{v:count1}]]m>gv'
+xmap <buffer><expr> [[ $'<C-\><C-N>{v:count1}[[m>gv'
index 6bbd33cacdb552930614493492d9d776a12bd570..fa4e16e3810c668d5e4f6375e8200c61b61fb4be 100644 (file)
@@ -11,6 +11,7 @@ syn on
 set nowrapscan
 set report=9999
 set modeline
+set debug=throw
 
 au! SwapExists * call HandleSwapExists()
 func HandleSwapExists()
@@ -84,7 +85,12 @@ for fname in glob('testdir/*.in', 1, 1)
 
        exe start + 1
        if pattern == ''
-         exe 'normal =' . (end - 1) . 'G'
+         try
+           exe 'normal =' . (end - 1) . 'G'
+         catch
+           call append(indent_at, 'ERROR: ' . v:exception)
+           let failed = 1
+         endtry
        else
          let lnum = search(pattern)
          if lnum <= 0
@@ -99,7 +105,12 @@ for fname in glob('testdir/*.in', 1, 1)
          else
            exe lnum - 1
          endif
-         normal ==
+         try
+           normal ==
+         catch
+           call append(indent_at, 'ERROR: ' . v:exception)
+           let failed = 1
+         endtry
        endif
       endif
     endwhile
index 873045bc2c75282ce6af646fabcbd9336938ad43..5eb262f50aa08e6511ccaffccb3ca1572c57a9c4 100644 (file)
@@ -36,6 +36,13 @@ let t = [
 \ },
 \  ]
 
+def Func()
+  var d = dd
+       ->extend({
+       })
+  eval 0
+enddef
+
 " END_INDENT
 
 " START_INDENT
index 8e70abe619392aeb5e20d4aa772bc3ed49442db7..932eebef435c0fbdba5a32b6660952fb8a9a4aea 100644 (file)
@@ -36,6 +36,13 @@ let t = [
            \ },
            \  ]
 
+def Func()
+    var d = dd
+               ->extend({
+    })
+    eval 0
+enddef
+
 " END_INDENT
 
 " START_INDENT
index 8a2502a275ded15323187c854e56fbcd61b68e4b..2ae3658a4b0f0d8d7f627eb101dc6c2888c6cee6 100644 (file)
@@ -33,7 +33,9 @@ function GetVimIndent()
   endtry
 endfunc
 
-let s:lineContPat = '^\s*\(\\\|"\\ \)'
+" Legacy script line continuation and Vim9 script operators that must mean an
+" expression that continues from the previous line.
+let s:lineContPat = '^\s*\(\\\|"\\ \|->\)'
 
 function GetVimIndentIntern()
   " If the current line has line continuation and the previous one too, use
@@ -133,15 +135,15 @@ function GetVimIndentIntern()
     endif
   endif
 
-  " For a line starting with "}" find the matching "{".  If it is at the start
-  " of the line align with it, probably end of a block.
+  " For a line starting with "}" find the matching "{".  Align with that line,
+  " it is either the matching block start or dictionary start.
   " Use the mapped "%" from matchit to find the match, otherwise we may match
   " a { inside a comment or string.
   if cur_text =~ '^\s*}'
     if maparg('%') != ''
       exe v:lnum
       silent! normal %
-      if line('.') < v:lnum && getline('.') =~ '^\s*{'
+      if line('.') < v:lnum
        let ind = indent('.')
       endif
     else
@@ -149,19 +151,33 @@ function GetVimIndentIntern()
     endif
   endif
 
-  " Below a line starting with "}" find the matching "{".  If it is at the
-  " end of the line we must be below the end of a dictionary.
-  if prev_text =~ '^\s*}'
-    if maparg('%') != ''
-      exe lnum
-      silent! normal %
-      if line('.') == lnum || getline('.') !~ '^\s*{'
-       let ind = ind - shiftwidth()
+  " Look back for a line to align with
+  while lnum > 1
+    " Below a line starting with "}" find the matching "{".
+    if prev_text =~ '^\s*}'
+      if maparg('%') != ''
+       exe lnum
+       silent! normal %
+       if line('.') < lnum
+         let lnum = line('.')
+         let ind = indent(lnum)
+         let prev_text = getline(lnum)
+       else
+         break
+       endif
+      else
+       " todo: use searchpair() to find a match
+       break
       endif
+    elseif prev_text =~ s:lineContPat
+      " looks like a continuation like, go back one line
+      let lnum = lnum - 1
+      let ind = indent(lnum)
+      let prev_text = getline(lnum)
     else
-      " todo: use searchpair() to find a match
+      break
     endif
-  endif
+  endwhile
 
   " Below a line starting with "]" we must be below the end of a list.
   " Include a "}" and "},} in case a dictionary ends too.
index d732c37c05ae3f640185446edf47ae68c265e9c1..93fd8ea6f6df3b22e0d2a93abc2a6d8d5d6b4cf2 100644 (file)
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:    YAML
 " Maintainer:  Nikolai Pavlov <zyx.vim@gmail.com>
-" Last Update: Lukas Reineke
+" Last Updates:        Lukas Reineke, "lacygoill"
 " Last Change: 2022 Jun 17
 
 " Only load this indent file when no other was loaded.
@@ -29,8 +29,8 @@ function s:FindPrevLessIndentedLine(lnum, ...)
     let prevlnum = prevnonblank(a:lnum-1)
     let curindent = a:0 ? a:1 : indent(a:lnum)
     while           prevlnum
-                \&&  indent(prevlnum) >=  curindent
-                \&& getline(prevlnum) !~# '^\s*#'
+                \ && indent(prevlnum) >=  curindent
+                \ && getline(prevlnum) !~# '^\s*#'
         let prevlnum = prevnonblank(prevlnum-1)
     endwhile
     return prevlnum
@@ -54,7 +54,7 @@ let s:c_ns_anchor_name = s:c_ns_anchor_char .. '+'
 let s:c_ns_anchor_property =  '\v\&' .. s:c_ns_anchor_name
 
 let s:ns_word_char = '\v[[:alnum:]_\-]'
-let s:ns_tag_char  = '\v%(%\x\x|' .. s:ns_word_char .. '|[#/;?:@&=+$.~*''()])'
+let s:ns_tag_char  = '\v%(\x\x|' .. s:ns_word_char .. '|[#/;?:@&=+$.~*''()])'
 let s:c_named_tag_handle     = '\v\!' .. s:ns_word_char .. '+\!'
 let s:c_secondary_tag_handle = '\v\!\!'
 let s:c_primary_tag_handle   = '\v\!'
@@ -63,7 +63,7 @@ let s:c_tag_handle = '\v%(' .. s:c_named_tag_handle.
             \            '|' .. s:c_primary_tag_handle .. ')'
 let s:c_ns_shorthand_tag = '\v' .. s:c_tag_handle .. s:ns_tag_char .. '+'
 let s:c_non_specific_tag = '\v\!'
-let s:ns_uri_char  = '\v%(%\x\x|' .. s:ns_word_char .. '\v|[#/;?:@&=+$,.!~*''()[\]])'
+let s:ns_uri_char  = '\v%(\x\x|' .. s:ns_word_char .. '\v|[#/;?:@&=+$,.!~*''()[\]])'
 let s:c_verbatim_tag = '\v\!\<' .. s:ns_uri_char.. '+\>'
 let s:c_ns_tag_property = '\v' .. s:c_verbatim_tag.
             \               '\v|' .. s:c_ns_shorthand_tag.
index eb500aa6c2f60fb3a69a26cf6c471a185a8d48c4..7e1a2513e2a849e16b7dce03d37cd3cb59c1588f 100644 (file)
@@ -2,12 +2,13 @@
 " Language:     gdresource
 " Maintainer:   Maxim Kim <habamax@gmail.com>
 " Filenames:    *.tscn, *.tres
+" Website:      https://github.com/habamax/vim-gdscript
 
 if exists("b:current_syntax")
     finish
 endif
 
-let s:keepcpo= &cpo
+let s:keepcpo = &cpo
 set cpo&vim
 
 syn match gdResourceNumber "\<0x\%(_\=\x\)\+\>"
index bf6d47c60dfe0af6100f0f25b4080027f18b3974..e9295a411d9bfd01bd975dc38d86e9335214ddd4 100644 (file)
@@ -1,13 +1,14 @@
 " Vim syntax file for Godot gdscript
 " Language:     gdscript
 " Maintainer:   Maxim Kim <habamax@gmail.com>
+" Website:      https://github.com/habamax/vim-gdscript
 " Filenames:    *.gd
 
 if exists("b:current_syntax")
     finish
 endif
 
-let s:keepcpo= &cpo
+let s:keepcpo = &cpo
 set cpo&vim
 
 syntax sync maxlines=100
index e44699faa51a03a434d7f83fd0f5b4cdf7aeda3b..822b1a9ed26cf82f443628282e9c4b89bbc886fc 100644 (file)
@@ -2,8 +2,8 @@
 " Language:            shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:          Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
 " Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:         Jun 29, 2022
-" Version:             202
+" Last Change:         Jul 08, 2022
+" Version:             203
 " URL:         http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
 " For options and settings, please use:      :help ft-sh-syntax
 " This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) and heredoc fixes from Felipe Contreras
@@ -141,7 +141,7 @@ endif
 syn cluster shArithParenList   contains=shArithmetic,shArithParen,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo
 syn cluster shArithList        contains=@shArithParenList,shParenError
 syn cluster shCaseEsacList     contains=shCaseStart,shCaseLabel,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
-syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
+syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDblBrace,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
 if exists("b:is_kornshell") || exists("b:is_bash")
  syn cluster shCaseList        add=shForPP
 endif
index 3656bca05e6706b488a1515433c78d25ce489161..694b3a7d95d28f8716890bb68bb7c17bc0944270 100644 (file)
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    Vim 9.0 script
 " Maintainer:  Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
-" Last Change: August 17, 2022
-" Version:     9.0-02
+" Last Change: September 03, 2022
+" Version:     9.0-03
 " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
 " Automatically generated keyword lists: {{{1
 
@@ -19,12 +19,13 @@ syn keyword vimTodo contained       COMBAK  FIXME   TODO    XXX
 syn cluster vimCommentGroup    contains=vimTodo,@Spell
 
 " regular vim commands {{{2
-syn keyword vimCommand contained       a al[l] arge[dit] bN[ext] bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletl dep diffpu[t] dj[ump] dp earlier el[se] endenum ene[w] export filt[er] fo[ld] fu[nction] h[elp] hi if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] win[size] wq xmapc[lear] xr[estore]
-syn keyword vimCommand contained       ab ar[gs] argg[lobal] b[uffer] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec elsei[f] endf[unction] enum exu[sage] fin[d] foldc[lose] go[to] ha[rdcopy] hid[e] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] winc[md] wqa[ll] xme xunme
-syn keyword vimCommand contained       abc[lear] arga[dd] argl[ocal] ba[ll] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] em[enu] endfo[r] eval f[ile] fina[lly] foldd[oopen] gr[ep] helpc[lose] his[tory] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] windo wundo xmenu xunmenu
-syn keyword vimCommand contained       abo[veleft] argd[elete] argu[ment] bad[d] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] en[dif] endinterface ex files fini[sh] folddoc[losed] grepa[dd] helpf[ind] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp static sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] winp[os] wv[iminfo] xnoreme xwininfo
-syn keyword vimCommand contained       abstract argded[upe] as[cii] balt bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] endclass endt[ry] exi[t] filet fir[st] foldo[pen] gui helpg[rep] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll] wn[ext] x[it] xnoremenu y[ank]
-syn keyword vimCommand contained       addd argdo au bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletep delp diffp[atch] disa[ssemble] doaut ea echon enddef endw[hile] exp filetype fix[del] for gvim helpt[ags] iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage] wh[ile] wp[revious] xa[ll] xprop z[^.=]
+syn keyword vimCommand contained       a ar[gs] argl[ocal] ba[ll] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cn[ext] colo[rscheme] cons[t] cs d[elete] delel delf[unction] dif[fupdate] difft[his] dli[st] ds[earch] echoc[onsole] elsei[f] endf[unction] enum exu[sage] fin[d] foldc[lose] go[to] ha[rdcopy] hid[e] if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes[sages] mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] py3f[ile] pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoremenu spelli[nfo] spr[evious] sri star[tinsert] sts[elect] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] v vie[w] vne[w] win[size] wq xmapc[lear] xr[estore]
+syn keyword vimCommand contained       ab arga[dd] argu[ment] bad[d] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnew[er] com cope[n] cscope debug delep dell diffg[et] dig[raphs] do dsp[lit] echoe[rr] em[enu] endfo[r] eval f[ile] fina[lly] foldd[oopen] gr[ep] helpc[lose] his[tory] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir smenu so[urce] spellr[are] sr srl startg[replace] substitutepattern sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] var vim9[cmd] vs[plit] winc[md] wqa[ll] xme xunme
+syn keyword vimCommand contained       abc[lear] argd[elete] as[cii] balt bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] class cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] deletel delm[arks] diffo[ff] dir doau e[dit] echom[sg] en[dif] endinterface ex files fini[sh] folddoc[losed] grepa[dd] helpf[ind] hor[izontal] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smile sor[t] spellr[epall] srI srn startr[eplace] substituterepeat sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl ve[rsion] vim9s[cript] wN[ext] windo wundo xmenu xunmenu
+syn keyword vimCommand contained       abo[veleft] argded[upe] au bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] cle[arjumps] cnor comp[iler] cpf[ile] cun def deletep delp diffp[atch] disa[ssemble] doaut ea echon endclass endt[ry] exi[t] filet fir[st] foldo[pen] gui helpg[rep] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] leg[acy] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] sn[ext] sp[lit] spellr[rare] src srp static sun[hide] sy tN[ext] tabe[dit] tabnew tc[d] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unlo[ckvar] verb[ose] vim[grep] w[rite] winp[os] wv[iminfo] xnoreme xwininfo
+syn keyword vimCommand contained       abstract argdo bN[ext] bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] defc[ompile] deletl dep diffpu[t] dj[ump] dp earlier echow[indow] enddef endw[hile] exp filetype fix[del] for gvim helpt[ags] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sno[magic] spe[llgood] spellu[ndo] sre[wind] st[op] stj[ump] sunme syn ta[g] tabf[ind] tabo[nly] tch[dir] tf[irst] tln tmapc[lear] try una[bbreviate] uns[ilent] vert[ical] vimgrepa[dd] wa[ll] wn[ext] x[it] xnoremenu y[ank]
+syn keyword vimCommand contained       addd arge[dit] b[uffer] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] delc[ommand] deletp di[splay] diffs[plit] dl dr[op] ec el[se] endenum ene[w] export filt[er] fo[ld] fu[nction] h[elp] hi iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py3f[ile] pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] snoreme spelld[ump] spellw[rong] srg sta[g] stopi[nsert] sunmenu sync tab tabfir[st] tabp[revious] tcl th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] up[date] vi[sual] viu[sage] wh[ile] wp[revious] xa[ll] xprop z[^.=]
+syn keyword vimCommand contained       al[l] argg[lobal]
 syn match   vimCommand contained       "\<z[-+^.=]\=\>"
 syn keyword vimStdPlugin contained     Arguments Asm Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns
 
@@ -73,17 +74,17 @@ syn keyword vimAutoEvent contained  BufCreate BufEnter BufFilePre BufLeave BufNew
 syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
 
 " Default highlighting groups {{{2
-syn keyword vimHLGroup contained       ColorColumn CurSearch Cursor CursorColumn CursorIM CursorLine CursorLineFold CursorLineNr CursorLineSign DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr LineNrAbove LineNrBelow MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC StatusLineTerm StatusLineTermNC TabLine TabLineFill TabLineSel Terminal Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
+syn keyword vimHLGroup contained       ColorColumn CurSearch Cursor CursorColumn CursorIM CursorLine CursorLineFold CursorLineNr CursorLineSign DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr LineNrAbove LineNrBelow MatchParen Menu MessageWindow ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC StatusLineTerm StatusLineTermNC TabLine TabLineFill TabLineSel Terminal Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
 syn match vimHLGroup contained "Conceal"
 syn case match
 
 " Function Names {{{2
-syn keyword vimFuncName contained      abs argc assert_equal assert_match atan balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled extendnew findfile fnameescape foldtextresult get getcharmod getcmdpos getcursorcharpos getftime getmarklist getreg gettagstack getwinvar haslocaldir hlexists indent inputrestore isabsolutepath job_getchannel join keys line2byte listener_flush luaeval mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_channel test_null_partial test_setmouse timer_info tolower type values winbufnr win_getid win_id2win winnr win_splitmove
-syn keyword vimFuncName contained      acos argidx assert_equalfile assert_nobeep atan2 balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdscreenpos getcwd getftype getmatches getreginfo gettext glob hasmapto hlget index inputsave isdirectory job_info js_decode len lispindent listener_remove map mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_dict test_null_string test_settime timer_pause toupper typename virtcol wincol win_gettype winlayout winrestcmd winwidth
-syn keyword vimFuncName contained      add arglistid assert_exception assert_notequal autocmd_add blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcmdtype getenv getimstatus getmousepos getregtype getwininfo glob2regpat histadd hlID indexof inputsecret isinf job_setoptions js_encode libcall list2blob localtime maparg match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_event test_null_function test_option_not_set test_srand_seed timer_start tr undofile virtcol2col windowsversion win_gotoid winline winrestview wordcount
-syn keyword vimFuncName contained      and argv assert_fails assert_notmatch autocmd_delete browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filewritable float2nr foldclosedend funcref getbufvar getcharstr getcmdwintype getfontname getjumplist getpid gettabinfo getwinpos globpath histdel hlset input insert islocked job_start json_decode libcallnr list2str log mapcheck matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_ignore_error test_null_job test_override test_unknown timer_stop trim undotree visualmode win_execute winheight win_move_separator winsaveview writefile
-syn keyword vimFuncName contained      append asin assert_false assert_report autocmd_get browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath expr10 filter floor foldlevel function getchangelist getcmdcompltype getcompletion getfperm getline getpos gettabvar getwinposx has histget hostname inputdialog interrupt isnan job_status json_encode line listener_add log10 maplist matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_blob test_null_list test_refcount test_void timer_stopall trunc uniq wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
-syn keyword vimFuncName contained      appendbufline assert_beeps assert_inrange assert_true balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extend finddir fmod foldtext garbagecollect getchar getcmdline getcurpos getfsize getloclist getqflist gettabwinvar getwinposy has_key histnr iconv inputlist invert items job_stop
+syn keyword vimFuncName contained      abs argc assert_equal assert_match atan balloon_show bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled extendnew findfile fnameescape foldtextresult get getcharmod getcmdpos getcursorcharpos getftime getmarklist getreg gettabwinvar getwinposy has_key histnr iconv inputlist invert items job_stop keys lispindent listener_remove map mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_channel test_null_partial test_setmouse timer_info tolower type values winbufnr win_getid win_id2win winnr win_splitmove
+syn keyword vimFuncName contained      acos argidx assert_equalfile assert_nobeep atan2 balloon_split buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdscreenpos getcwd getftype getmatches getreginfo gettagstack getwinvar haslocaldir hlexists indent inputrestore isabsolutepath job_getchannel join len list2blob localtime maparg match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_dict test_null_string test_settime timer_pause toupper typename virtcol wincol win_gettype winlayout winrestcmd winwidth
+syn keyword vimFuncName contained      add arglistid assert_exception assert_notequal autocmd_add blob2list bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcmdtype getenv getimstatus getmousepos getregtype gettext glob hasmapto hlget index inputsave isdirectory job_info js_decode libcall list2str log mapcheck matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdline setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_event test_null_function test_option_not_set test_srand_seed timer_start tr undofile virtcol2col windowsversion win_gotoid winline winrestview wordcount
+syn keyword vimFuncName contained      and argv assert_fails assert_notmatch autocmd_delete browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filewritable float2nr foldclosedend funcref getbufvar getcharstr getcmdwintype getfontname getjumplist getpid getscriptinfo getwininfo glob2regpat histadd hlID indexof inputsecret isinf job_setoptions js_encode libcallnr listener_add log10 maplist matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_ignore_error test_null_job test_override test_unknown timer_stop trim undotree visualmode win_execute winheight win_move_separator winsaveview writefile
+syn keyword vimFuncName contained      append asin assert_false assert_report autocmd_get browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath expr10 filter floor foldlevel function getchangelist getcmdcompltype getcompletion getfperm getline getpos gettabinfo getwinpos globpath histdel hlset input insert islocked job_start json_decode line listener_flush luaeval mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_blob test_null_list test_refcount test_void timer_stopall trunc uniq wildmenumode win_findbuf win_id2tabwin win_move_statusline win_screenpos xor
+syn keyword vimFuncName contained      appendbufline assert_beeps assert_inrange assert_true balloon_gettext bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extend finddir fmod foldtext garbagecollect getchar getcmdline getcurpos getfsize getloclist getqflist gettabvar getwinposx has histget hostname inputdialog interrupt isnan job_status json_encode line2byte
 
 "--- syntax here and above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1