changeset 22565:17c4178f26ea

Update runtime files. Commit: https://github.com/vim/vim/commit/4f4d51a942cc2c6b3e936ee0f93f00c2d000065c Author: Bram Moolenaar <Bram@vim.org> Date: Sun Oct 11 13:57:40 2020 +0200 Update runtime files.
author Bram Moolenaar <Bram@vim.org>
date Sun, 11 Oct 2020 14:00:05 +0200
parents 2e79e579dd52
children 12b4e321a625
files .github/CODEOWNERS README_VIM9.md runtime/autoload/python3complete.vim runtime/autoload/pythoncomplete.vim runtime/colors/README.txt runtime/defaults.vim runtime/doc/eval.txt runtime/doc/index.txt runtime/doc/map.txt runtime/doc/options.txt runtime/doc/repeat.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/version8.txt runtime/doc/vim9.txt runtime/filetype.vim runtime/ftplugin/falcon.vim runtime/ftplugin/fortran.vim runtime/ftplugin/python.vim runtime/indent/fortran.vim runtime/syntax/apache.vim runtime/syntax/asterisk.vim runtime/syntax/cabal.vim runtime/syntax/css.vim runtime/syntax/fortran.vim runtime/syntax/haskell.vim runtime/syntax/ia64.vim runtime/syntax/less.vim runtime/syntax/vim.vim runtime/syntax/xkb.vim
diffstat 30 files changed, 285 insertions(+), 231 deletions(-) [+]
line wrap: on
line diff
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -38,6 +38,7 @@ runtime/compiler/jest.vim		@dkearns
 runtime/compiler/jjs.vim		@dkearns
 runtime/compiler/jshint.vim		@dkearns
 runtime/compiler/jsonlint.vim		@dkearns
+runtime/compiler/lazbuild.vim		@dkearns
 runtime/compiler/php.vim		@dkearns
 runtime/compiler/rake.vim		@tpope @dkearns
 runtime/compiler/rhino.vim		@dkearns
@@ -47,6 +48,7 @@ runtime/compiler/ruby.vim		@tpope @dkear
 runtime/compiler/rubyunit.vim		@dkearns
 runtime/compiler/sass.vim		@tpope
 runtime/compiler/se.vim			@dkearns
+runtime/compiler/shellcheck.vim		@dkearns
 runtime/compiler/stylelint.vim		@dkearns
 runtime/compiler/tcl.vim		@dkearns
 runtime/compiler/tidy.vim		@dkearns
--- a/README_VIM9.md
+++ b/README_VIM9.md
@@ -80,7 +80,7 @@ e.g. each stack item is a typeval_T.  An
 "execute Ex command", for commands that are not compiled.
 
 
-## 2. PHASING OUT INTERFACES
+## 2. DEPRIORITIZE INTERFACES
 
 Attempts have been made to implement functionality with built-in script
 languages such as Python, Perl, Lua, Tcl and Ruby.  This never gained much
--- a/runtime/autoload/python3complete.vim
+++ b/runtime/autoload/python3complete.vim
@@ -1,7 +1,8 @@
 "python3complete.vim - Omni Completion for python
-" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
+" Maintainer: <vacancy>
+" Previous Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
 " Version: 0.9
-" Last Updated: 18 Jun 2009 (small fix 2015 Sep 14 from Debian)
+" Last Updated: 2020 Oct 9
 "
 " Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
 "
@@ -83,7 +84,7 @@ function! python3complete#Complete(finds
                 break
             endif
         endwhile
-        execute "py3 vimpy3complete('" . cword . "', '" . a:base . "')"
+	execute "py3 vimpy3complete('" . escape(cword, "'") . "', '" . escape(a:base, "'") . "')"
         return g:python3complete_completions
     endif
 endfunction
--- a/runtime/autoload/pythoncomplete.vim
+++ b/runtime/autoload/pythoncomplete.vim
@@ -1,7 +1,8 @@
 "pythoncomplete.vim - Omni Completion for python
-" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
+" Maintainer: <vacancy>
+" Previous Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
 " Version: 0.9
-" Last Updated: 18 Jun 2009
+" Last Updated: 2020 Oct 9
 "
 " Changes
 " TODO:
@@ -81,7 +82,7 @@ function! pythoncomplete#Complete(findst
                 break
             endif
         endwhile
-        execute "python vimcomplete('" . cword . "', '" . a:base . "')"
+        execute "python vimcomplete('" . escape(cword, "'") . "', '" . escape(a:base, "'") . "')"
         return g:pythoncomplete_completions
     endif
 endfunction
--- a/runtime/colors/README.txt
+++ b/runtime/colors/README.txt
@@ -67,7 +67,7 @@ You can use ":highlight" to find out the
 ctermfg and ctermbg values are numbers, which are only valid for the current
 terminal.  Use the color names instead.  See ":help cterm-colors".
 
-The default color settings can be found in the source file src/syntax.c.
+The default color settings can be found in the source file src/highlight.c.
 Search for "highlight_init".
 
 If you think you have a color scheme that is good enough to be used by others,
--- a/runtime/defaults.vim
+++ b/runtime/defaults.vim
@@ -1,7 +1,7 @@
 " The default vimrc file.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2019 Oct 27
+" Last change:	2020 Sep 30
 "
 " This is loaded if no vimrc file was found.
 " Except when Vim is run with "-u NONE" or "-C".
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2020 Sep 25
+*eval.txt*	For Vim version 8.2.  Last change: 2020 Oct 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -897,7 +897,7 @@ Example: >
 All expressions within one level are parsed from left to right.
 
 
-expr1				*expr1* *trinary* *falsy-operator* *E109*
+expr1				*expr1* *trinary* *falsy-operator* *??* *E109*
 -----
 
 The trinary operator: expr2 ? expr1 : expr1
@@ -3503,7 +3503,7 @@ byteidxcomp({expr}, {nr})					*byteidxco
 <		The first and third echo result in 3 ('e' plus composing
 		character is 3 bytes), the second echo results in 1 ('e' is
 		one byte).
-		Only works different from byteidx() when 'encoding' is set to
+		Only works differently from byteidx() when 'encoding' is set to
 		a Unicode encoding.
 
 		Can also be used as a |method|: >
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.2.  Last change: 2020 May 31
+*index.txt*     For Vim version 8.2.  Last change: 2020 Oct 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -784,10 +784,10 @@ tag		char	      note action in Normal mo
 				   lines down
 |gk|		gk		1  like "k", but when 'wrap' on go N screen
 				   lines up
+|gm|		gm		1  go to character at middle of the screenline
+|gM|		gM		1  go to character at middle of the text line
 |gn|		gn	      1,2  find the next match with the last used
 				   search pattern and Visually select it
-|gm|		gm		1  go to character at middle of the screenline
-|gM|		gM		1  go to character at middle of the text line
 |go|		go		1  cursor to byte N in the buffer
 |gp|		["x]gp		2  put the text [from register x] after the
 				   cursor N times, leave the cursor after it
@@ -1317,6 +1317,7 @@ tag		command		action ~
 |:filetype|	:filet[ype]	switch file type detection on/off
 |:filter|	:filt[er]	filter output of following command
 |:find|		:fin[d]		find file in 'path' and edit it
+|:final|	:final		declare an immutable variable in Vim9
 |:finally|	:fina[lly]	part of a :try command
 |:finish|	:fini[sh]	quit sourcing a Vim script
 |:first|	:fir[st]	go to the first file in the argument list
@@ -1691,6 +1692,7 @@ tag		command		action ~
 |:unsilent|	:uns[ilent]	run a command not silently
 |:update|	:up[date]	write buffer if modified
 |:vglobal|	:v[global]	execute commands for not matching lines
+|:var|		:var		variable declaration in Vim9
 |:version|	:ve[rsion]	print version number and other info
 |:verbose|	:verb[ose]	execute command with 'verbose' set
 |:vertical|	:vert[ical]	make following command split vertically
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.2.  Last change: 2020 Sep 09
+*map.txt*       For Vim version 8.2.  Last change: 2020 Oct 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -252,6 +252,17 @@ For abbreviations |v:char| is set to the
 the abbreviation.  You can use this to decide how to expand the {lhs}.  You
 should not either insert or change the v:char.
 
+In case you want the mapping to not do anything, you can have the expression
+evaluate to an empty string.  If something changed that requires Vim to
+go through the main loop (e.g. to update the display), return "\<Ignore>".
+This is similar to "nothing" but makes Vim return from the loop that waits for
+input. Example: >
+	func s:OpenPopup()
+	  call popup_create(... arguments ...)
+	  return "\<Ignore>"
+	endfunc
+	nnoremap <expr> <F3> <Sid>OpenPopup()
+
 Be very careful about side effects!  The expression is evaluated while
 obtaining characters, you may very well make the command dysfunctional.
 For this reason the following is blocked:
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.2.  Last change: 2020 Sep 15
+*options.txt*	For Vim version 8.2.  Last change: 2020 Oct 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2554,7 +2554,7 @@ A jump table for the options with a shor
 	"x" delete each combining character on its own.  When it is off (the
 	default) the character along with its combining characters are
 	deleted.
-	Note: When 'delcombine' is set "xx" may work different from "2x"!
+	Note: When 'delcombine' is set "xx" may work differently from "2x"!
 
 	This is useful for Arabic, Hebrew and many other languages where one
 	may have combining characters overtop of base characters, and want
@@ -4682,7 +4682,7 @@ A jump table for the options with a shor
 	    characters.  Example: "abc;ABC"
 	Example: "aA,fgh;FGH,cCdDeE"
 	Special characters need to be preceded with a backslash.  These are
-	";", ',' and backslash itself.
+	";", ',', '"', '|' and backslash itself.
 
 	This will allow you to activate vim actions without having to switch
 	back and forth between the languages.  Your language characters will
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 8.2.  Last change: 2020 Aug 15
+*repeat.txt*    For Vim version 8.2.  Last change: 2020 Oct 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -271,6 +271,9 @@ For writing a Vim script, see chapter 41
 			directories are added to 'runtimepath'.  This is
 			useful in your .vimrc.  The plugins will then be
 			loaded during initialization, see |load-plugins|.
+			Note that for ftdetect scripts to be loaded
+			you will need to write `filetype plugin indent on`
+			AFTER all `packadd!` commands.
 
 			Also see |pack-add|.
 			{only available when compiled with |+eval|}
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2447,6 +2447,7 @@ 90.5	usr_90.txt	/*90.5*
 :filter	various.txt	/*:filter*
 :fin	editing.txt	/*:fin*
 :fina	eval.txt	/*:fina*
+:final	vim9.txt	/*:final*
 :finally	eval.txt	/*:finally*
 :find	editing.txt	/*:find*
 :fini	repeat.txt	/*:fini*
@@ -3371,6 +3372,7 @@ 90.5	usr_90.txt	/*90.5*
 :up	editing.txt	/*:up*
 :update	editing.txt	/*:update*
 :v	repeat.txt	/*:v*
+:var	vim9.txt	/*:var*
 :ve	various.txt	/*:ve*
 :ver	various.txt	/*:ver*
 :verb	various.txt	/*:verb*
@@ -3689,6 +3691,7 @@ 90.5	usr_90.txt	/*90.5*
 >where	repeat.txt	/*>where*
 ?	pattern.txt	/*?*
 ?<CR>	pattern.txt	/*?<CR>*
+??	eval.txt	/*??*
 @	repeat.txt	/*@*
 @/	change.txt	/*@\/*
 @:	repeat.txt	/*@:*
@@ -6328,6 +6331,8 @@ extensions-improvements	todo.txt	/*exten
 f	motion.txt	/*f*
 false	vim9.txt	/*false*
 false-variable	eval.txt	/*false-variable*
+falsy	eval.txt	/*falsy*
+falsy-operator	eval.txt	/*falsy-operator*
 faq	intro.txt	/*faq*
 farsi	farsi.txt	/*farsi*
 farsi.txt	farsi.txt	/*farsi.txt*
@@ -9656,6 +9661,7 @@ trojan-horse	starting.txt	/*trojan-horse
 true	vim9.txt	/*true*
 true-variable	eval.txt	/*true-variable*
 trunc()	eval.txt	/*trunc()*
+truthy	eval.txt	/*truthy*
 try-conditionals	eval.txt	/*try-conditionals*
 try-echoerr	eval.txt	/*try-echoerr*
 try-finally	eval.txt	/*try-finally*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2020 Sep 28
+*todo.txt*      For Vim version 8.2.  Last change: 2020 Oct 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,26 +38,13 @@ browser use: https://github.com/vim/vim/
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Popup windows: don't send any keys from ":normal" to popup filter?
-  Can drop ex_normal_busy_done then.
-
-Move Test_let_* from test_vim9_script to test_vim9_assign
-
-Modifiers in GTK: issue #6457.  CTRL-6 should work, like CTRL-@ and CTRL-_.
-
-3 October: remove using :let in Vim9 script.
-
-Go back to not using string/list/dict as falsy/thruthy boolean?
-    or only make "||" and "&&" result in a boolean?
 Making everything work:
+- If a function is defined in a block it may need to keep the block-locals,
+  like a compiled closure.
 - Fix memory leaks in test_vim9_assign, remove "if 0"
 - Fix memory leaks in test_vim9_script
-- At the Vim9 script level, keep script variables local to the block they are
-  declared in, like in Javascript (using :let).
-  -> Need to remember what variables were declared and delete them when
-     leaving the block.
-  -> if a function is defined it may need to keep the block-locals
-  Then Implement { } block at the script level.
+- Closure arguments should be more strict, like any function call?
+- Remove v:disallow_let
 - Recognize call to assert_fails() and execute it in the function context?
   Won't work if the command itself fails, not an expression failure:
 	assert_fails("unknown", "E99:")
@@ -70,10 +57,15 @@ Making everything work:
 	did_catch = true
     endtry
     assert_true('did_catch')
-  Add a new command, 
+  Add a new command perhaps:
     assertfail
        unknown
     endassertfail E99:.*unknown
+- Make map() give an error if the resulting type is wrong.
+  Add mapnew() or mapcopy() to create a new List/Dict for the result, which
+  can have a different value type.
+- Error message for "'yes && 0" is "using String as a Number", should be "using
+  String as a Bool".
 - Run the same tests in :def and Vim9 script, like in Test_expr7_not()
 - In autocmd: use legacy syntax, not whatever the current script uses?
 - need to check type when a declaration specifies a type: #6507
@@ -86,9 +78,6 @@ Making everything work:
   Also "list[0] += value".  test in Test_assign_dict_unknown_type().
 - ":put" with ISN_PUT does not handle range correctly, e.g. ":$-2put".
   Add command to parse range at runtime?
-- Make map() give an error if the resulting type is wrong.
-  Add mapnew() to create a new List/Dict for the result, which can have a
-  different value type.
 - When defining an :autocmd or :command, how to specify using Vim9 syntax?
   - always do this when defined in a Vim9 script
   - add some command modifier.
@@ -183,6 +172,11 @@ Further improvements:
 - compile "expr" and "call" expression of a channel in channel_exe_cmd()?
 
 Popup windows:
+- Add a flag to make a popup window focusable?
+    CTRL-W P cycle over any preview window or focusable popup, end up back in
+	     current window.
+    ? - switch between current window and all popup windows
+    Esc in popup window goes back to previous current window
 - Cursor not updated before a redraw, making it jump. (#5943)
 - Add a termcap entry for changing the cursor when it goes under the popup and
   back.  like t_SI and t_EI  (t_SU and t_EU, where "U" means under?)
@@ -291,6 +285,11 @@ Terminal emulator window:
 
 Error numbers available: E653
 
+Mapping with partial match not executed properly in GTK. (Ingo Karkat, #7082)
+
+Patch for Template string: #4634
+Have another look at the implementation.
+
 Patch to implement the vimtutor with a plugin: #6414
 Was originally written by Felipe Morales.
 
@@ -303,6 +302,16 @@ with 'termguicolors'. #1740
 
 Patch for blockwise paste reporting changes: #6660.
 
+Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
+changes.
+
+Add an option to start_timer() to return from the input loop with K_IGNORE.
+This is useful e.g. when a popup was created that disables mappings, we need
+to return from vgetc() to make this happen.  #7011
+
+Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
+Scroll doesn't work correctly, why?
+
 Expanding <mods> should put the tab number from cmdmod.tab before "tab".
 Any way to convert "$" back by using a special value? (#6901)
 
@@ -331,15 +340,16 @@ autocommands for the buffer lifecycle:
     BufIsRenamed  (after buffer ID gets another name)
 The buffer list and windows are locked, no changes possible
 
-Make it possible to map (console and GUI):  #6457
-    <C-[>   0x27   or is this <Esc> ?
-    <C-\>   0x28
-    <C-]>   0x29
-    <C-^>   0x30
-    <C-_>   0x31
-
-Patch for Template string: #4634
-Have another look at the implementation.
+Matchparen doesn't remove highlight after undo. (#7054)
+Is OK when syntax HL is active.
+
+Currently Del can be used to delete the last character of a typed count.
+Can it also be used to delete an incomplete Normal mode command? (#7096)
+After an operator: should work.  After "a" or "i" for text objects: should
+work.
+
+Using "au!" after "filetype on" is a bit slow.  Can the matching of
+autocommands be made faster?  (#7056)
 
 Valgrind warns for uninitialized values in f_term_dumpwrite().
 
@@ -538,6 +548,7 @@ Crash when mixing matchadd and substitut
 13, #2910)  Can't reproduce?
 
 Display messed up with matchparen, wrapping and scrolling. (#5638)
+Screen update bug related to matchparen.  (Chris Heath, 2017 Mar 4, #1532)
 
 When getting a focus event halfway a mapping this aborts the mapping.  E.g.
 when "qq" is mapped and after the first "q" the mouse is moved outside of the
@@ -1263,8 +1274,6 @@ GTK: When adding a timer from 'balloonex
 g_main_context_iteration() doesn't return.  Need to trigger an event when the
 timer expires.
 
-Screen update bug related to matchparen.  (Chris Heath, 2017 Mar 4, #1532)
-
 Rule to use "^" for statusline does not work if a space is defined with
 highlighting for both stl and stlnc.  Patch by Ken Hamada (itchyny, 2016 Dec 11)
 
@@ -1497,8 +1506,6 @@ Have a way to get the call stack, in a f
 Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
 times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
 
-Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
-
 Patch to improve map documentation. Issue #799.
 
 We can use '. to go to the last change in the current buffer, but how about
@@ -1718,8 +1725,6 @@ Extended file attributes lost on write (
 Patch to add :lockjumps. (Carlo Baldassi, 2015 May 25)
 OK to not block marks?
 
-Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)
-
 Patch on Issue 72: 'autochdir' causes problems for :vimgrep.
 
 When two SIGWINCH arrive very quickly, the second one may be lost.
@@ -1786,14 +1791,6 @@ arguments.
 
 Problem with transparent and matchgroup.  Issue #475
 
-Spell files use a latin single quote. Unicode also has another single quote:
-0x2019.  (Ron Aaron, 2014 Apr 4)
-New OpenOffice spell files support this with ICONV.  But they are not
-compatible with Vim spell files.  The old files can no longer be downloaded.
-
-Spell checking: Add a feature to only consider two spaces after a dot to start
-a new sentence.  Don't give the capitalization error when there is one space.
-
 Idea: For a window in the middle (has window above and below it), use
 right-mouse-drag on the status line to move a window up/down without changing
 its height?  It's like dragging the status bar above it at the same time.
@@ -2468,9 +2465,6 @@ 2009 Apr 7)  Reminder Apr 14.
 
 Add "no_hlsearch" to winsaveview().
 
-Cursorline highlighting combines with Search ('hlsearch') but not with
-SpellBad. (Jim Karsten, 2009 Mar 18)
-
 When 'foldmethod' is "indent", adding an empty line below a fold and then
 indented text, creates a new fold instead of joining it with the previous one.
 (Evan Laforge, 2009 Oct 17)
@@ -2977,12 +2971,6 @@ the Visual area.  Can this be fixed? (Ja
 
 GUI: When combining fg en bg make sure they are not equal.
 
-Spell checking: Add a way to specify punctuation characters.  Add the
-superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
-
-Spell checking in popup menu: If the only problem is the case of the first
-character, don't offer "ignore" and "add to word list".
-
 Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
 Jun 5)
 
@@ -2996,10 +2984,6 @@ Jul 22)
 
 There should be something about spell checking in the user manual.
 
-Spell menu: When using the Popup menu to select a replacement word,
-":spellrepeat" doesn't work.  SpellReplace() uses setline().  Can it use "z="
-somehow?  Or use a new function.
-
 Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
 
 Add an option to specify the character to use when a double-width character is
@@ -3283,6 +3267,29 @@ Better 'rightleft' or BIDI support:
 - Minimal Vi with bidi support: https://github.com/aligrudi/neatvi
   By Ali Gholami Rudi, also worked on arabic.c
 
+
+Spell checking:
+-   When 'cursorline' is set and the first word should have SpellCap
+    highlighting, redrawing the line removes it when moving the cursor away
+    from the line. (#7085)  Would need to inspect the end of the previous line
+    and update "capcol_lnum" and "cap_col".
+-   Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)
+-   Spell files use a latin single quote. Unicode also has another single
+    quote: 0x2019.  (Ron Aaron, 2014 Apr 4)
+    New OpenOffice spell files support this with ICONV.  But they are not
+    compatible with Vim spell files.  The old files can no longer be
+    downloaded.
+-   Add a feature to only consider two spaces after a dot to start a new
+    sentence.  Don't give the capitalization error when there is one space.
+-   Add a way to specify punctuation characters.  Add the superscript numbers
+    by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
+-   In popup menu: If the only problem is the case of the first character,
+    don't offer "ignore" and "add to word list".
+-   Spell menu: When using the Popup menu to select a replacement word,
+    ":spellrepeat" doesn't work.  SpellReplace() uses setline().  Can it use
+    "z=" somehow?  Or use a new function.
+
+
 Quickfix/Location List:
 -   Window size is wrong when using quickfix window. (Lifepillar, 2018 Aug 24,
     #2999)
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -48515,7 +48515,7 @@ Solution:   Recognize true and false.
 Files:      src/eval.c, src/testdir/test_vim9_expr.vim
 
 Patch 8.2.1205
-Problem:    Vim9: && and || work different when not compiled.
+Problem:    Vim9: && and || work differently when not compiled.
 Solution:   Keep the value.
 Files:      src/eval.c, src/testdir/test_vim9_expr.vim
 
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2020 Sep 26
+*vim9.txt*	For Vim version 8.2.  Last change: 2020 Oct 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -164,12 +164,12 @@ the "name#" prefix is sufficient. >
 
 When using `:function` or `:def` to specify a nested function inside a `:def`
 function, this nested function is local to the code block it is defined in.
-In a `:def` function it is not possible to define a script-local function.  it
+In a `:def` function it is not possible to define a script-local function.  It
 is possible to define a global function by using the "g:" prefix.
 
 When referring to a function and no "s:" or "g:" prefix is used, Vim will
 search for the function:
-- in the function scope
+- in the function scope, in block scopes
 - in the script scope, possibly imported
 - in the list of global functions
 However, it is recommended to always use "g:" to refer to a global function
@@ -1140,7 +1140,7 @@ 2. Put the type after the variable name,
 	def Func(arg1 number, arg2 string) bool
 
 The first is more familiar for anyone used to C or Java.  The second one
-doesn't really has an advantage over the first, so let's discard the second.
+doesn't really have an advantage over the first, so let's discard the second.
 
 Since we use type inference the type can be left out when it can be inferred
 from the value.  This means that after `var` we don't know if a type or a name
@@ -1155,19 +1155,35 @@ declaration.
 
 Expressions ~
 
-Expression evaluation was already close to what JavaScript and other languages
-are doing.  Some details are unexpected and can be fixed.  For example how the
-|| and && operators work.  Legacy Vim script: >
-	var value = 44
-	...
-	var result = value || 0  # result == 1
+Expression evaluation was already close to what other languages are doing.
+Some details are unexpected and can be improved.  For example a boolean
+condition would accept a string, convert it to a number and check if the
+number is non-zero.  This is unexpected and often leads to mistakes, since
+text not starting with a number would be converted to zero, which is
+considered false.  Thus a string would not give an error and be considered
+false if it doesn't start with a number.  That is confusing.
 
-Vim9 script works like JavaScript/TypeScript, keep the value: >
-	var value = 44
-	...
-	var result = value || 0  # result == 44
+In Vim9 type checking is more strict to avoid mistakes.  Where a condition is
+used, e.g. with the `:if` command and the `||` operator, only boolean-like
+values are accepted:
+	true:  `true`, `v:true`, `1`, `0 < 9`
+	false: `false`, `v:false`, `0`, `0 > 9`
+Note that the number zero is false and the number one is true.  This is more
+persmissive than most other languages.  It was done because many builtin
+functions return these values.
 
-TODO: the semantics of || and && need to be reconsidered.
+If you have any type of value and want to use it as a boolean, use the `!!`
+operator:
+	true: !`!'text'`, `!![99]`, `!!{'x': 1}`, `!!99`
+	false: `!!''`, `!![]`, `!!{}`
+
+From a language like JavaScript we have this handy construct: >
+	GetName() || 'unknown'
+However, this conflicts with only allowing a boolean for a condition.
+Therefore the "??" operator was added: >
+	GetName() ?? 'unknown'
+Here you can explicitly express your intention to use the value as-is and not
+result in a boolean. This is called the |falsy-operator|.
 
 
 Import and Export ~
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2020 Sep 28
+" Last Change:	2020 Sep 30
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
--- a/runtime/ftplugin/falcon.vim
+++ b/runtime/ftplugin/falcon.vim
@@ -3,6 +3,7 @@
 " Author:       Steven Oliver <oliver.steven@gmail.com>
 " Copyright:    Copyright (c) 2009-2013 Steven Oliver
 " License:      You may redistribute this under the same terms as Vim itself
+" Last Update:  2020 Oct 10
 " --------------------------------------------------------------------------
 
 " Only do this when not done yet for this buffer
@@ -14,7 +15,7 @@ let b:did_ftplugin = 1
 let s:cpo_save = &cpo
 set cpo&vim
 
-setlocal softtabstop=4 shiftwidth=4 fileencoding=utf-8
+setlocal softtabstop=4 shiftwidth=4
 setlocal suffixesadd=.fal,.ftd
 
 " Matchit support
--- a/runtime/ftplugin/fortran.vim
+++ b/runtime/ftplugin/fortran.vim
@@ -1,13 +1,13 @@
 " Vim settings file
 " Language:	Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66)
-" Version:	0.50
-" Last Change:	2020 Apr 20
-" Patched By:	Eisuke Kawashima
+" Version:	(v52) 2020 October 07
 " Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
 " Usage:	For instructions, do :help fortran-plugin from Vim
 " Credits:
-" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, Ben
-" Fritz, and David Barnett.
+"  Version 0.1 was created in September 2000 by Ajit Thakkar.
+"  Since then, useful suggestions and contributions have been made, in order, by:
+"  Stefano Zacchiroli, Hendrik Merx, Ben Fritz, David Barnett, Eisuke Kawashima,
+"  and Doug Kearns.
 
 " Only do these settings when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -119,7 +119,7 @@ if !exists("b:match_words")
 endif
 
 " File filters for :browse e
-if has("gui_win32") && !exists("b:browsefilter")
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
   let b:browsefilter = "Fortran Files (*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn)\t*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn\n" .
     \ "All Files (*.*)\t*.*\n"
 endif
--- a/runtime/ftplugin/python.vim
+++ b/runtime/ftplugin/python.vim
@@ -3,7 +3,7 @@
 " Maintainer:	Tom Picton <tom@tompicton.co.uk>
 " Previous Maintainer: James Sully <sullyj3@gmail.com>
 " Previous Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change:	Sun 17 Mar 2019
+" Last Change:	Mon, 5 October 2020
 " https://github.com/tpict/vim-ftplugin-python
 
 if exists("b:did_ftplugin") | finish | endif
@@ -14,6 +14,7 @@ set cpo&vim
 setlocal cinkeys-=0#
 setlocal indentkeys-=0#
 setlocal include=^\\s*\\(from\\\|import\\)
+setlocal define=^\\s*\\(def\\\|class\\)
 
 " For imports with leading .., append / and replace additional .s with ../
 let b:grandparent_match = '^\(.\.\)\(\.*\)'
@@ -38,7 +39,7 @@ setlocal comments=b:#,fb:-
 setlocal commentstring=#\ %s
 
 if has('python3')
-  setlocal omnifunc=python3complete#Complete 
+  setlocal omnifunc=python3complete#Complete
 elseif has('python')
   setlocal omnifunc=pythoncomplete#Complete
 endif
@@ -115,35 +116,18 @@ endif
 
 if !exists("g:python_recommended_style") || g:python_recommended_style != 0
     " As suggested by PEP8.
-    setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
-endif
-
-" First time: try finding "pydoc".
-if !exists('g:pydoc_executable')
-    if executable('pydoc')
-        let g:pydoc_executable = 1
-    else
-        let g:pydoc_executable = 0
-    endif
+    setlocal expandtab tabstop=4 softtabstop=4 shiftwidth=4
 endif
 
-" Windows-specific pydoc setup
-if has('win32') || has('win64')
-    if executable('python')
-        " available as Tools\scripts\pydoc.py
-        let g:pydoc_executable = 1
-    else
-        let g:pydoc_executable = 0
-    endif
-endif
-
-" If "pydoc" was found use it for keywordprg.
-if g:pydoc_executable
-    if has('win32') || has('win64')
-        setlocal keywordprg=python\ -m\ pydoc\ 
-    else
-        setlocal keywordprg=pydoc
-    endif
+" Use pydoc for keywordprg.
+" Unix users preferentially get pydoc3, then pydoc2.
+" Windows doesn't have a standalone pydoc executable in $PATH by default, nor
+" does it have separate python2/3 executables, so Windows users just get
+" whichever version corresponds to their installed Python version.
+if executable('python3')
+  setlocal keywordprg=python3\ -m\ pydoc
+elseif executable('python')
+  setlocal keywordprg=python\ -m\ pydoc
 endif
 
 " Script for filetype switching to undo the local stuff we may have changed
--- a/runtime/indent/fortran.vim
+++ b/runtime/indent/fortran.vim
@@ -1,13 +1,13 @@
 " Vim indent file
 " Language:	Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
-" Version:	47
-" Last Change:	2020 Apr 20
-" Patched By:	Eisuke Kawashima
+" Version:	(v48) 2020 October 07
 " Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
 " Usage:	For instructions, do :help fortran-indent from Vim
 " Credits:
-"  Useful suggestions were made, in chronological order, by:
-"  Albert Oliver Serra, Takuya Fujiwara and Philipp Edelmann.
+"  Version 0.1 was created in September 2000 by Ajit Thakkar.
+"  Since then, useful suggestions and contributions have been made, in order, by:
+"  Albert Oliver Serra, Takuya Fujiwara, Philipp Edelmann, Eisuke Kawashima,
+"  and Louis Cochen.
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -146,7 +146,7 @@ function FortranGetIndent(lnum)
         \. 'type\|forall\|associate\|enum\|block\)\)\>'
     let ind = ind - shiftwidth()
     " Fix indent for case statement immediately after select
-    if prevstat =~? '\<select\s\+\(case\|type\)\>'
+    if prevstat =~? '\<select\s*\(case\|type\)\>'
       let ind = ind + shiftwidth()
     endif
   endif
--- a/runtime/syntax/apache.vim
+++ b/runtime/syntax/apache.vim
@@ -3,7 +3,7 @@
 " Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
 " License: This file can be redistribued and/or modified under the same terms
 "		as Vim itself.
-" Last Change: 2018-12-06
+" Last Change: 2020 Oct 07
 " Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
 " TODO: see particular FIXME's scattered through the file
 "		make it really linewise?
@@ -42,6 +42,8 @@ syn keyword apacheOption user group
 syn match apacheOption "\<valid-user\>"
 syn case match
 syn keyword apacheMethodOption GET POST PUT DELETE CONNECT OPTIONS TRACE PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK contained
+" Added as suggested by Mikko Koivunalho
+syn keyword apacheMethodOption BASELINE-CONTROL CHECKIN CHECKOUT LABEL MERGE MKACTIVITY MKWORKSPACE REPORT UNCHECKOUT UPDATE VERSION-CONTROL contained
 syn case ignore
 syn match apacheSection "<\/\=\(Directory\|DirectoryMatch\|Files\|FilesMatch\|IfModule\|IfDefine\|Location\|LocationMatch\|VirtualHost\)[^>]*>" contains=apacheAnything
 syn match apacheLimitSection "<\/\=\(Limit\|LimitExcept\)[^>]*>" contains=apacheLimitSectionKeyword,apacheMethodOption,apacheError
--- a/runtime/syntax/asterisk.vim
+++ b/runtime/syntax/asterisk.vim
@@ -19,7 +19,7 @@ syn match       asteriskComment         
 syn match       asteriskContext         "\[.\{-}\]"
 syn match       asteriskExten           "^\s*\zsexten\s*=>\?\s*[^,]\+\ze," contains=asteriskPattern nextgroup=asteriskPriority
 syn match       asteriskExten           "^\s*\zssame\s*=>\?\s*\ze" nextgroup=asteriskPriority
-syn match       asteriskExten           "^\s*\(register\|channel\|ignorepat\|include\|\(no\)\?load\)\s*=>\?"
+syn match       asteriskExten           "^\s*\(register\|channel\|ignorepat\|include\|l\?e\?switch\|\(no\)\?load\)\s*=>\?"
 syn match       asteriskPattern         "_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*]\)*\.\?" contained
 syn match       asteriskPattern         "[^A-Za-z0-9,]\zs[[:alnum:]#*]\+\ze" contained
 syn match       asteriskApp             ",\zs[a-zA-Z]\+\ze$"
@@ -39,7 +39,7 @@ syn match       asteriskVarLen          
 syn match       asteriskVarLen          "(\zs[[:alpha:]][[:alnum:]_]*(.\{-})\ze=" contains=asteriskVar,asteriskVarLen,asteriskExp
 syn match       asteriskExp             "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp
 syn match       asteriskCodecsPermit    "^\s*\(allow\|disallow\)\s*=\s*.*$" contains=asteriskCodecs
-syn match       asteriskCodecs          "\(g723\|gsm\|ulaw\|alaw\|g726\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|all\s*$\)"
+syn match       asteriskCodecs          "\(vp9\|vp8\|h264\|h263p\|h263\|h261\|jpeg\|opus\|g722\|g723\|gsm\|ulaw\|alaw\|g719\|g726\|g726aal2\|siren7\|siren14\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|wav\|all\s*$\)"
 syn match       asteriskError           "^\(type\|auth\|permit\|deny\|bindaddr\|host\)\s*=.*$"
 syn match       asteriskType            "^\zstype=\ze\<\(peer\|user\|friend\)\>$" contains=asteriskTypeType
 syn match       asteriskTypeType        "\<\(peer\|user\|friend\)\>" contained
--- a/runtime/syntax/cabal.vim
+++ b/runtime/syntax/cabal.vim
@@ -4,7 +4,7 @@
 " Maintainer:   Marcin Szamotulski <profunctor@pm.me>
 " Previous Maintainer:	Vincent Berthoux <twinside@gmail.com>
 " File Types:   .cabal
-" Last Change:  15 May 2018
+" Last Change:  3 Oct 2020
 " v1.5: Incorporated changes from
 "       https://github.com/sdiehl/haskell-vim-proto/blob/master/vim/syntax/cabal.vim
 "       Use `syn keyword` instead of `syn match`.
@@ -62,11 +62,12 @@ syn keyword cabalCategory contained
 	\ source-repository
 	\ flag
 	\ custom-setup
+	\ common
 syn match cabalCategoryTitle contained /[^{]*\ze{\?/
 syn match cabalCategoryRegion
 	\ contains=cabalCategory,cabalCategoryTitle
 	\ nextgroup=cabalCategory skipwhite
-	\ /^\c\s*\(contained\|executable\|library\|benchmark\|test-suite\|source-repository\|flag\|custom-setup\)\+\s*\%(.*$\|$\)/
+	\ /^\c\s*\(contained\|executable\|library\|benchmark\|test-suite\|source-repository\|flag\|custom-setup\|common\)\+\s*\%(.*$\|$\)/
 syn keyword cabalTruth true false
 
 " cabalStatementRegion which limits the scope of cabalStatement keywords, this
@@ -76,6 +77,7 @@ syn keyword cabalStatement contained con
 	\ default-language
 	\ default-extensions
 	\ author
+        \ autogen-modules
 	\ branch
 	\ bug-reports
 	\ build-depends
@@ -110,6 +112,7 @@ syn keyword cabalStatement contained con
 	\ homepage
 	\ hs-source-dirs
 	\ hugs-options
+	\ import
 	\ include-dirs
 	\ includes
 	\ install-includes
--- a/runtime/syntax/css.vim
+++ b/runtime/syntax/css.vim
@@ -61,7 +61,7 @@ syn match cssClassName "\.-\=[A-Za-z_][A
 syn match cssClassNameDot contained '\.'
 
 try
-syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
+syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
 catch /^.*/
 syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
 endtry
@@ -649,5 +649,5 @@ endif
 
 let &cpo = s:cpo_save
 unlet s:cpo_save
+
 " vim: ts=8
-
--- a/runtime/syntax/fortran.vim
+++ b/runtime/syntax/fortran.vim
@@ -1,18 +1,17 @@
 " Vim syntax file
 " Language:	Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
-" Version:	102
-" Last Change:	2020 Apr 20
-" Patched By:	Eisuke Kawashima
+" Version:	(v103) 2020 October 07
 " Maintainer:	Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
 " Usage:	For instructions, do :help fortran-syntax from Vim
 " Credits:
-"  Version 0.1 for Fortran 95 was created (April 2000) by Ajit Thakkar from the
-"  Fortran 77 syntax file by Mario Eusebio and Preben Guldberg.
+"  Version 0.1 for Fortran 95 was created in April 2000 by Ajit Thakkar from an
+"  older Fortran 77 syntax file by Mario Eusebio and Preben Guldberg.
 "  Since then, useful suggestions and contributions have been made, in order, by:
 "  Andrej Panjkov, Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
 "  Walter Dieudonné, Alexander Wagner, Roman Bertle, Charles Rendleman,
 "  Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, Jan Hermann,
-"  Stefano Zaghi, Vishnu V. Krishnan, Judicaël Grasset, and Takuma Yoshida
+"  Stefano Zaghi, Vishnu V. Krishnan, Judicaël Grasset, Takuma Yoshida,
+"  Eisuke Kawashima, and André Chalella.`
 
 if exists("b:current_syntax")
   finish
@@ -102,6 +101,8 @@ syn match fortranUnitHeader	"\<end\>"
 syn match fortranType		"\<character\>"
 syn match fortranType		"\<complex\>"
 syn match fortranType		"\<integer\>"
+syn match fortranType		"\<real\>"
+syn match fortranType		"\<logical\>"
 syn keyword fortranType		intrinsic
 syn match fortranType		"\<implicit\>"
 syn keyword fortranStructure	dimension
@@ -149,11 +150,9 @@ syn keyword fortranExtraIntrinsic	algama
 syn keyword fortranIntrinsic	abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh
 syn match fortranIntrinsic	"\<len\s*[(,]"me=s+3
 syn match fortranIntrinsic	"\<real\s*("me=s+4
-syn match fortranType		"\<implicit\s\+real"
-syn match fortranType		"^\s*real\>"
 syn match fortranIntrinsic	"\<logical\s*("me=s+7
-syn match fortranType		"\<implicit\s\+logical"
-syn match fortranType		"^\s*logical\>"
+syn match fortranType           "\<implicit\s\+real\>"
+syn match fortranType           "\<implicit\s\+logical\>"
 
 "Numbers of various sorts
 " Integers
@@ -168,6 +167,12 @@ syn match fortranFloatIll	display	"\<\d\
 syn match fortranFloatIll	display	"\<\d\+\.\d\+\([dq][-+]\=\d\+\)\=\(_\a\w*\)\=\>"
 " floating point number
 syn match fortranFloat	display	"\<\d\+\.\d\+\(e[-+]\=\d\+\)\=\(_\a\w*\)\=\>"
+" binary number
+syn match fortranBinary	display	"b["'][01]\+["']"
+" octal number
+syn match fortranOctal	display	"o["'][0-7]\+["']"
+" hexadecimal number
+syn match fortranHex	display	"z["'][0-9A-F]\+["']"
 " Numbers in formats
 syn match fortranFormatSpec	display	"\d*f\d\+\.\d\+"
 syn match fortranFormatSpec	display	"\d*e[sn]\=\d\+\.\d\+\(e\d+\>\)\="
@@ -215,7 +220,6 @@ syn match fortranUnitHeader	"\<submodule
 syn keyword fortranUnitHeader	use only contains
 syn keyword fortranUnitHeader	result operator assignment
 syn match fortranUnitHeader	"\<interface\>"
-syn match fortranUnitHeader	"\<recursive\>"
 syn keyword fortranKeyword	allocate deallocate nullify cycle exit
 syn match fortranConditional	"\<select\>"
 syn keyword fortranConditional	case default where elsewhere
@@ -274,6 +278,7 @@ syn keyword fortranIntrinsic	null cpu_ti
 syn match fortranType			"\<elemental\>"
 syn match fortranType			"\<pure\>"
 syn match fortranType			"\<impure\>"
+syn match fortranType           	"\<recursive\>"
 if exists("fortran_more_precise")
   syn match fortranConstructName "\(\<end\s*forall\s\+\)\@15<=\a\w*\>"
 endif
@@ -453,6 +458,9 @@ hi def link fortranTodo		Todo
 hi def link fortranContinueMark	Special
 hi def link fortranString	String
 hi def link fortranNumber	Number
+hi def link fortranBinary	Number
+hi def link fortranOctal	Number
+hi def link fortranHex  	Number
 hi def link fortranOperator	Operator
 hi def link fortranBoolean	Boolean
 hi def link fortranLabelError	Error
--- a/runtime/syntax/haskell.vim
+++ b/runtime/syntax/haskell.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:		Haskell
 " Maintainer:		Haskell Cafe mailinglist <haskell-cafe@haskell.org>
-" Last Change:		2018 Mar 29 by Marcin Szamotulski
+" Last Change:		2020 Oct 4 by Marcin Szamotulski <profunctor@pm.me>
 " Original Author:	John Williams <jrw@pobox.com>
 "
 " Thanks to Ryan Crumley for suggestions and John Meacham for
@@ -38,8 +38,8 @@ if exists("b:current_syntax")
 endif
 
 " (Qualified) identifiers (no default highlighting)
-syn match ConId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[A-Z][a-zA-Z0-9_']*\>" contains=@NoSpell
-syn match VarId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[a-z][a-zA-Z0-9_']*\>" contains=@NoSpell
+syn match ConId "\(\<[A-Z][a-zA-Z0-9_']*\.\)*\<[A-Z][a-zA-Z0-9_']*\>" contains=@NoSpell
+syn match VarId "\(\<[A-Z][a-zA-Z0-9_']*\.\)*\<[a-z][a-zA-Z0-9_']*\>" contains=@NoSpell
 
 " Infix operators--most punctuation characters and any (qualified) identifier
 " enclosed in `backquotes`. An operator starting with : is a constructor,
@@ -49,8 +49,11 @@ syn match hsConSym "\(\<[A-Z][a-zA-Z0-9_
 syn match hsVarSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[a-z][a-zA-Z0-9_']*`"
 syn match hsConSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[A-Z][a-zA-Z0-9_']*`"
 
+" (Non-qualified) identifiers which start with # are labels
+syn match hsLabel "#[a-z][a-zA-Z0-9_']*\>"
+
 " Reserved symbols--cannot be overloaded.
-syn match hsDelimiter  "(\|)\|\[\|\]\|,\|;\|_\|{\|}"
+syn match hsDelimiter  "(\|)\|\[\|\]\|,\|;\|{\|}"
 
 " Strings and constants
 syn match   hsSpecialChar	contained "\\\([0-9]\+\|o[0-7]\+\|x[0-9a-fA-F]\+\|[\"\\'&\\abfnrtv]\|^[A-Z^_\[\\\]]\)"
@@ -62,37 +65,41 @@ syn match   hsCharacter		"^'\([^\\]\|\\[
 syn match   hsNumber		"\v<[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*>|<0[oO]_*%(_*[0-7])*>|<0[bB]_*[01]%(_*[01])*>"
 syn match   hsFloat		"\v<[0-9]%(_*[0-9])*\.[0-9]%(_*[0-9])*%(_*[eE][-+]?[0-9]%(_*[0-9])*)?>|<[0-9]%(_*[0-9])*_*[eE][-+]?[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*\.[0-9a-fA-F]%(_*[0-9a-fA-F])*%(_*[pP][-+]?[0-9]%(_*[0-9])*)?>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*_*[pP][-+]?[0-9]%(_*[0-9])*>"
 
-" Keyword definitions. These must be patterns instead of keywords
-" because otherwise they would match as keywords at the start of a
-" "literate" comment (see lhs.vim).
-syn match hsModule		"\<module\>"
-syn match hsImport		"\<import\>.*"he=s+6 contains=hsImportMod,hsLineComment,hsBlockComment,@NoSpell
-syn match hsImportMod		contained "\<\(as\|qualified\|hiding\)\>" contains=@NoSpell
-syn match hsInfix		"\<\(infix\|infixl\|infixr\)\>"
-syn match hsStructure		"\<\(class\|data\|deriving\|instance\|default\|where\)\>"
-syn match hsTypedef		"\<\(type\|newtype\)\>"
-syn match hsStatement		"\<\(do\|case\|of\|let\|in\)\>"
-syn match hsConditional		"\<\(if\|then\|else\)\>"
+" Keyword definitions.
+syn keyword hsModule		module
+syn match   hsImportGroup	"\<import\>.*" contains=hsImport,hsImportModuleName,hsImportMod,hsLineComment,hsBlockComment,hsImportList,@NoSpell nextgroup=hsImport
+syn keyword hsImport import contained nextgroup=hsImportModuleName
+syn match   hsImportModuleName '\<[A-Z][A-Za-z.]*' contained
+syn region  hsImportList start='(' skip='([^)]\{-})' end=')' keepend contained contains=ConId,VarId,hsDelimiter,hsBlockComment,hsTypedef,@NoSpell
+
+syn keyword hsImportMod contained as qualified hiding
+syn keyword hsInfix infix infixl infixr
+syn keyword hsStructure class data deriving instance default where
+syn keyword hsTypedef type
+syn keyword hsNewtypedef newtype
+syn keyword hsTypeFam family
+syn keyword hsStatement mdo do case of let in
+syn keyword hsConditional if then else
 
 " Not real keywords, but close.
 if exists("hs_highlight_boolean")
   " Boolean constants from the standard prelude.
-  syn match hsBoolean "\<\(True\|False\)\>"
+  syn keyword hsBoolean True False
 endif
 if exists("hs_highlight_types")
   " Primitive types from the standard prelude and libraries.
-  syn match hsType "\<\(Int\|Integer\|Char\|Bool\|Float\|Double\|IO\|Void\|Addr\|Array\|String\)\>"
+  syn keyword hsType Int Integer Char Bool Float Double IO Void Addr Array String
 endif
 if exists("hs_highlight_more_types")
   " Types from the standard prelude libraries.
-  syn match hsType "\<\(Maybe\|Either\|Ratio\|Complex\|Ordering\|IOError\|IOResult\|ExitCode\)\>"
-  syn match hsMaybe    "\<Nothing\>"
-  syn match hsExitCode "\<\(ExitSuccess\)\>"
-  syn match hsOrdering "\<\(GT\|LT\|EQ\)\>"
+  syn keyword hsType Maybe Either Ratio Complex Ordering IOError IOResult ExitCode
+  syn keyword hsMaybe Nothing
+  syn keyword hsExitCode ExitSuccess
+  syn keyword hsOrdering GT LT EQ
 endif
 if exists("hs_highlight_debug")
   " Debugging functions from the standard prelude.
-  syn match hsDebug "\<\(undefined\|error\|trace\)\>"
+  syn keyword hsDebug undefined error trace
 endif
 
 
@@ -133,12 +140,14 @@ hi def link hsImportMod			  hsImport
 hi def link hsInfix			  PreProc
 hi def link hsStructure			  Structure
 hi def link hsStatement			  Statement
-hi def link hsConditional			  Conditional
-hi def link hsSpecialChar			  SpecialChar
+hi def link hsConditional		  Conditional
+hi def link hsSpecialChar		  SpecialChar
 hi def link hsTypedef			  Typedef
+hi def link hsNewtypedef		  Typedef
 hi def link hsVarSym			  hsOperator
 hi def link hsConSym			  hsOperator
 hi def link hsOperator			  Operator
+hi def link hsTypeFam			  Structure
 if exists("hs_highlight_delimiters")
 " Some people find this highlighting distracting.
 hi def link hsDelimiter			  Delimiter
@@ -160,22 +169,22 @@ hi def link hsMaybe			  hsEnumConst
 hi def link hsOrdering			  hsEnumConst
 hi def link hsEnumConst			  Constant
 hi def link hsDebug			  Debug
+hi def link hsLabel			  Special
 
-hi def link cCppString		hsString
-hi def link cCommentStart		hsComment
-hi def link cCommentError		hsError
-hi def link cCommentStartError	hsError
-hi def link cInclude		Include
-hi def link cPreProc		PreProc
-hi def link cDefine		Macro
-hi def link cIncluded		hsString
-hi def link cError			Error
-hi def link cPreCondit		PreCondit
-hi def link cComment		Comment
-hi def link cCppSkip		cCppOut
-hi def link cCppOut2		cCppOut
-hi def link cCppOut		Comment
-
+hi def link cCppString			  hsString
+hi def link cCommentStart		  hsComment
+hi def link cCommentError		  hsError
+hi def link cCommentStartError		  hsError
+hi def link cInclude			  Include
+hi def link cPreProc			  PreProc
+hi def link cDefine			  Macro
+hi def link cIncluded			  hsString
+hi def link cError			  Error
+hi def link cPreCondit			  PreCondit
+hi def link cComment			  Comment
+hi def link cCppSkip			  cCppOut
+hi def link cCppOut2			  cCppOut
+hi def link cCppOut			  Comment
 
 let b:current_syntax = "haskell"
 
--- a/runtime/syntax/ia64.vim
+++ b/runtime/syntax/ia64.vim
@@ -1,10 +1,9 @@
 " Vim syntax file
-" Language:     IA-64 (Itanium) assembly language
-" Maintainer:   Parth Malwankar <pmalwankar@yahoo.com>
-" URL:		http://www.geocities.com/pmalwankar (Home Page with link to my Vim page)
-"		http://www.geocities.com/pmalwankar/vim.htm (for VIM)
-" File Version: 0.7
-" Last Change:  2006 Sep 08
+" Language:		IA-64 (Itanium) assembly language
+" Maintainer:		Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer:	Parth Malwankar <pmalwankar@yahoo.com>
+" File Version:		0.8
+" Last Change:		2020 Sep 25
 
 " quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -15,16 +14,16 @@ endif
 "ignore case for assembly
 syn case ignore
 
-"  Identifier Keyword characters (defines \k)
-setlocal iskeyword=@,48-57,#,$,.,:,?,@-@,_,~
-
 syn sync minlines=5
 
 " Read the MASM syntax to start with
 " This is needed as both IA-64 as well as IA-32 instructions are supported
 source <sfile>:p:h/masm.vim
 
-syn region ia64Comment start="//" end="$" contains=ia64Todo
+"  Identifier Keyword characters (defines \k)
+syn iskeyword @,48-57,#,$,.,:,?,@-@,_,~
+
+syn region ia64Comment start="//"  end="$"   contains=ia64Todo
 syn region ia64Comment start="/\*" end="\*/" contains=ia64Todo
 
 syn match ia64Identifier	"[a-zA-Z_$][a-zA-Z0-9_$]*"
@@ -266,22 +265,22 @@ syn match ia64data "stringz\=\(\(\(\.ua\
 "put masm groups with our groups
 hi def link masmOperator	ia64operator
 hi def link masmDirective	ia64Directive
-hi def link masmOpcode	ia64Opcode
+hi def link masmOpcode		ia64Opcode
 hi def link masmIdentifier	ia64Identifier
-hi def link masmFloat	ia64Float
+hi def link masmFloat		ia64Float
 
 "ia64 specific stuff
-hi def link ia64Label	Define
-hi def link ia64Comment	Comment
+hi def link ia64Label		Define
+hi def link ia64Comment		Comment
 hi def link ia64Directive	Type
-hi def link ia64opcode	Statement
+hi def link ia64opcode		Statement
 hi def link ia64registers	Operator
-hi def link ia64string	String
+hi def link ia64string		String
 hi def link ia64Hex		Number
-hi def link ia64Binary	Number
-hi def link ia64Octal	Number
-hi def link ia64Float	Float
-hi def link ia64Decimal	Number
+hi def link ia64Binary		Number
+hi def link ia64Octal		Number
+hi def link ia64Float		Float
+hi def link ia64Decimal		Number
 hi def link ia64Identifier	Identifier
 hi def link ia64data		Type
 hi def link ia64delimiter	Delimiter
--- a/runtime/syntax/less.vim
+++ b/runtime/syntax/less.vim
@@ -2,14 +2,13 @@
 " Language:	less
 " Maintainer:	Alessandro Vioni <jenoma@gmail.com>
 " URL: https://github.com/genoma/vim-less
-" Last Change:	2014 November 24
+" Last Change:	2020 Sep 29
 
 if exists("b:current_syntax")
   finish
 endif
 
 runtime! syntax/css.vim
-runtime! after/syntax/css.vim
 
 syn case ignore
 
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 8.0 script
-" Maintainer:	Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Aug 30, 2020
-" Version:	8.0-43
+" Maintainer:	Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
+" Last Change:	October 06, 2020
+" Version:	8.0-45
 " URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
 " Automatically generated keyword lists: {{{1
 
@@ -19,12 +19,12 @@ syn keyword vimTodo contained	COMBAK	FIX
 syn cluster vimCommentGroup	contains=vimTodo,@Spell
 
 " regular vim commands {{{2
-syn keyword vimCommand contained	a ar[gs] argl[ocal] ba[ll] 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] echom[sg] enddef eval f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] 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] sun[hide] sy tN[ext] tabe[dit] tabnew tc[l] ter[minal] tlmenu tma[p] tr[ewind] u[ndo] unl ve[rsion] vim9 vmapc[lear] wa[ll] winp[os] wundo xme xr[estore]
-syn keyword vimCommand contained	ab arga[dd] argu[ment] bad[d] 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] echon endf[unction] ex files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks 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] sunme syn ta[g] tabf[ind] tabo[nly] tcd tf[irst] tln tmapc[lear] try una[bbreviate] unlo[ckvar] verb[ose] vim9script vne[w] wh[ile] wn[ext] wv[iminfo] xmenu xunme
-syn keyword vimCommand contained	abc[lear] argd[elete] as[cii] 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 el[se] endfo[r] exi[t] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] 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 stj[ump] sunmenu sync tab tabfir[st] tabp[revious] tch[dir] th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] uns[ilent] vert[ical] vim[grep] vs[plit] win[size] wp[revious] x[it] xnoreme xunmenu
-syn keyword vimCommand contained	abo[veleft] argdo au 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 elsei[f] endt[ry] exp filetype fix[del] for gui helpg[rep] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] 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] stopi[nsert] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] up[date] vi[sual] vimgrepa[dd] wN[ext] winc[md] wq xa[ll] xnoremenu xwininfo
-syn keyword vimCommand contained	addd arge[dit] bN[ext] 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 em[enu] endw[hile] export filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes 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] sts[elect] sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] v vie[w] viu[sage] w[rite] windo wqa[ll] xmapc[lear] xprop y[ank]
-syn keyword vimCommand contained	al[l] argg[lobal] b[uffer] 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] echoe[rr] en[dif] ene[w] exu[sage] fin[d] foldc[lose] g h[elp] hi if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] messages 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] substitutepattern sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type
+syn keyword vimCommand contained	a ar[gs] argl[ocal] ba[ll] 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] echom[sg] enddef eval f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] inor j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] 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] sunme syn ta[g] tabf[ind] tabo[nly] tcd tf[irst] tln tmapc[lear] try una[bbreviate] unlo[ckvar] ve[rsion] vim9 vmapc[lear] wa[ll] winp[os] wundo xme xr[estore]
+syn keyword vimCommand contained	ab arga[dd] argu[ment] bad[d] 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] echon endf[unction] ex files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] interface ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] 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 stj[ump] sunmenu sync tab tabfir[st] tabp[revious] tch[dir] th[row] tlnoremenu tn[ext] ts[elect] undoj[oin] uns[ilent] verb[ose] vim9script vne[w] wh[ile] wn[ext] wv[iminfo] xmenu xunme
+syn keyword vimCommand contained	abc[lear] argd[elete] as[cii] 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 el[se] endfo[r] exi[t] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] 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] stopi[nsert] sus[pend] syncbind tabN[ext] tabl[ast] tabr[ewind] tcld[o] tj[ump] tlu tno[remap] tu[nmenu] undol[ist] up[date] vert[ical] vim[grep] vs[plit] win[size] wp[revious] x[it] xnoreme xunmenu
+syn keyword vimCommand contained	abo[veleft] argdo au 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 elsei[f] endt[ry] exp filetype fix[del] for gui helpg[rep] ia imp is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs 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] sts[elect] sv[iew] syntime tabc[lose] tabm[ove] tabs tclf[ile] tl[ast] tlunmenu to[pleft] tunma[p] unh[ide] v vi[sual] vimgrepa[dd] wN[ext] winc[md] wq xa[ll] xnoremenu xwininfo
+syn keyword vimCommand contained	addd arge[dit] bN[ext] 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 em[enu] endw[hile] export filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] import isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope 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] substitutepattern sw[apname] t tabd[o] tabn[ext] tags te[aroff] tlm tm[enu] tp[revious] type unl var vie[w] viu[sage] w[rite] windo wqa[ll] xmapc[lear] xprop y[ank]
+syn keyword vimCommand contained	al[l] argg[lobal] b[uffer] 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] echoe[rr] en[dif] ene[w] exu[sage] fin[d] foldc[lose] g h[elp] hi if in iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] 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] sun[hide] sy tN[ext] tabe[dit] tabnew tc[l] ter[minal] tlmenu tma[p] tr[ewind] u[ndo]
 syn match   vimCommand contained	"\<z[-+^.=]\=\>"
 syn keyword vimStdPlugin contained	Arguments Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Winbar XMLent XMLns
 
@@ -78,11 +78,11 @@ syn match vimHLGroup contained	"Conceal"
 syn case match
 
 " Function Names {{{2
-syn keyword vimFuncName contained	abs appendbufline asin assert_fails assert_notmatch balloon_gettext bufadd bufname byteidx char2nr ch_evalexpr ch_log ch_readraw cindent complete_check cosh deepcopy diff_hlID eval exists feedkeys findfile fnameescape foldtext garbagecollect getchangelist getcmdpos getcwd getftime getloclist getpos gettabinfo getwinpos glob2regpat hasmapto hlexists index inputsave isdirectory job_getchannel job_stop json_encode line listener_flush luaeval match matchend menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setinterrupt prop_list prop_type_get pyeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setenv setpos settagstack sign_define sign_placelist sin sound_playevent split str2list strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_ignore_error test_null_job test_override test_srand_seed timer_start tr undotree wildmenumode win_execute win_gotoid winlayout winrestview winwidth
-syn keyword vimFuncName contained	acos argc assert_beeps assert_false assert_report balloon_show bufexists bufnr byteidxcomp ch_canread ch_evalraw ch_logfile ch_sendexpr clearmatches complete_info count delete echoraw eventhandler exp filereadable flatten fnamemodify foldtextresult get getchar getcmdtype getenv getftype getmarklist getqflist gettabvar getwinposx globpath histadd hlID input inputsecret isinf job_info join keys line2byte listener_remove map matchadd matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setprompt prop_remove prop_type_list pyxeval readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playfile sqrt str2nr strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_null_blob test_null_list test_refcount test_unknown timer_stop trim uniq winbufnr win_findbuf winheight winline winsaveview wordcount
-syn keyword vimFuncName contained	add argidx assert_equal assert_inrange assert_true balloon_split buflisted bufwinid call ch_close ch_getbufnr ch_open ch_sendraw col confirm cscope_connection deletebufline empty executable expand filewritable float2nr foldclosed foreground getbufinfo getcharmod getcmdwintype getfontname getimstatus getmatches getreg gettabwinvar getwinposy has histdel hostname inputdialog insert islocked job_setoptions js_decode len lispindent localtime maparg matchaddpos matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prop_add prop_type_add pum_getpos rand reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setline setreg sha256 sign_getplaced sign_unplace sort sound_stop srand strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_channel test_null_partial test_scrollbar test_void timer_stopall trunc values wincol win_getid win_id2tabwin winnr win_screenpos writefile
-syn keyword vimFuncName contained	and arglistid assert_equalfile assert_match atan browse bufload bufwinnr ceil ch_close_in ch_getjob ch_read ch_setoptions complete copy cursor did_filetype environ execute expandcmd filter floor foldclosedend funcref getbufline getcharsearch getcompletion getfperm getjumplist getmousepos getreginfo gettagstack getwinvar has_key histget iconv inputlist interrupt isnan job_start js_encode libcall list2str log mapcheck matcharg matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_clear prop_type_change pumvisible range reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcharsearch setloclist settabvar shellescape sign_jump sign_unplacelist sound_clear spellbadword state strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_dict test_null_string test_setmouse timer_info tolower type virtcol windowsversion win_gettype win_id2win winrestcmd win_splitmove xor
-syn keyword vimFuncName contained	append argv assert_exception assert_notequal atan2 browsedir bufloaded byte2line changenr chdir ch_info ch_readblob ch_status complete_add cos debugbreak diff_filler escape exepath extend finddir fmod foldlevel function getbufvar getcmdline getcurpos getfsize getline getpid getregtype getwininfo glob haslocaldir histnr indent inputrestore invert items job_status json_decode libcallnr listener_add log10 mapset matchdelete max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_setcallback prop_find prop_type_delete py3eval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcmdpos setmatches settabwinvar shiftwidth sign_place simplify soundfold spellsuggest str2float strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_function test_option_not_set test_settime timer_pause toupper undofile visualmode
+syn keyword vimFuncName contained	abs appendbufline asin assert_fails assert_notmatch balloon_gettext bufadd bufname byteidx char2nr chdir ch_info ch_readblob ch_status complete_add cos debugbreak diff_filler escape exepath extend finddir fmod foldlevel function getbufvar getcmdline getcurpos getfsize getline getpid getregtype gettext getwinvar has_key histget iconv inputlist interrupt isnan job_start js_encode libcall list2str log mapcheck matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_list prop_type_get pyeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcmdpos setmatches settabwinvar shiftwidth sign_place simplify soundfold spellsuggest str2float strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_function test_option_not_set test_settime timer_pause toupper undofile visualmode win_execute winheight winnr win_splitmove
+syn keyword vimFuncName contained	acos argc assert_beeps assert_false assert_report balloon_show bufexists bufnr byteidxcomp charclass ch_evalexpr ch_log ch_readraw cindent complete_check cosh deepcopy diff_hlID eval exists feedkeys findfile fnameescape foldtext garbagecollect getchangelist getcmdpos getcwd getftime getloclist getpos gettabinfo getwininfo glob haslocaldir histnr indent inputrestore invert items job_status json_decode libcallnr listener_add log10 mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_remove prop_type_list pyxeval readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setenv setpos settagstack sign_define sign_placelist sin sound_playevent split str2list strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_ignore_error test_null_job test_override test_srand_seed timer_start tr undotree wildmenumode win_findbuf win_id2tabwin winrestcmd winwidth
+syn keyword vimFuncName contained	add argidx assert_equal assert_inrange assert_true balloon_split buflisted bufwinid call ch_canread ch_evalraw ch_logfile ch_sendexpr clearmatches complete_info count delete echoraw eventhandler exp filereadable flatten fnamemodify foldtextresult get getchar getcmdtype getenv getftype getmarklist getqflist gettabvar getwinpos glob2regpat hasmapto hlexists index inputsave isdirectory job_getchannel job_stop json_encode line listener_flush luaeval match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_type_add pum_getpos rand reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playfile sqrt str2nr strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_null_blob test_null_list test_refcount test_unknown timer_stop trim uniq winbufnr win_getid win_id2win winrestview wordcount
+syn keyword vimFuncName contained	and arglistid assert_equalfile assert_match atan browse bufload bufwinnr ceil ch_close ch_getbufnr ch_open ch_sendraw col confirm cscope_connection deletebufline empty executable expand filewritable float2nr foldclosed foreground getbufinfo getcharmod getcmdwintype getfontname getimstatus getmatches getreg gettabwinvar getwinposx globpath histadd hlID input inputsecret isinf job_info join keys line2byte listener_remove map matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_clear prop_type_change pumvisible range reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setline setreg sha256 sign_getplaced sign_unplace sort sound_stop srand strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_channel test_null_partial test_scrollbar test_void timer_stopall trunc values wincol win_gettype winlayout winsaveview writefile
+syn keyword vimFuncName contained	append argv assert_exception assert_notequal atan2 browsedir bufloaded byte2line changenr ch_close_in ch_getjob ch_read ch_setoptions complete copy cursor did_filetype environ execute expandcmd filter floor foldclosedend funcref getbufline getcharsearch getcompletion getfperm getjumplist getmousepos getreginfo gettagstack getwinposy has histdel hostname inputdialog insert islocked job_setoptions js_decode len lispindent localtime maparg matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_find prop_type_delete py3eval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharsearch setloclist settabvar shellescape sign_jump sign_unplacelist sound_clear spellbadword state strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_dict test_null_string test_setmouse timer_info tolower type virtcol windowsversion win_gotoid winline win_screenpos xor
 
 "--- syntax here and above generated by mkvimvim ---
 " Special Vim Highlighting (not automatic) {{{1
--- a/runtime/syntax/xkb.vim
+++ b/runtime/syntax/xkb.vim
@@ -2,7 +2,7 @@
 " This is a GENERATED FILE. Please always refer to source file at the URI below.
 " Language: XKB (X Keyboard Extension) components
 " Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
-" Last Change: 2003-04-13
+" Last Change: 2020 Oct 06
 " URL: http://trific.ath.cx/Ftp/vim/syntax/xkb.vim
 
 " Setup