diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 73506cc..04f0191 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 9.0.  Last change: 2022 Dec 12
+*autocmd.txt*   For Vim version 9.0.  Last change: 2023 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -64,7 +64,7 @@
 In legacy script: >
    call autocmd_add(#{replace: v:true,
 		    \ group: 'DemoGroup',
-   		    \ event: 'BufEnter',
+		    \ event: 'BufEnter',
 		    \ pattern: '*.txt',
 		    \ cmd: 'call DemoBufEnter()'
 		    \ })
@@ -398,7 +398,7 @@
 |InsertEnter|		starting Insert mode
 |InsertChange|		when typing <Insert> while in Insert or Replace mode
 |InsertLeave|		when leaving Insert mode
-|InsertLeavePre| 	just before leaving Insert mode
+|InsertLeavePre|	just before leaving Insert mode
 |InsertCharPre|		when a character was typed in Insert mode, before
 			inserting it
 
@@ -611,9 +611,11 @@
 				where the user can type a command or search
 				string; including non-interactive use of ":"
 				in a mapping, but not when using |<Cmd>|.
+				The pattern is matched against the character
+				representing the type of command-line.
+				|cmdwin-char|
 				<afile> is set to a single character,
 				indicating the type of command-line.
-				|cmdwin-char|
 							*CmdlineLeave*
 CmdlineLeave			Before leaving the command line; including
 				non-interactive use of ":" in a mapping, but
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 8b0da25..a065fce 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt*	For Vim version 9.0.  Last change: 2023 Jan 17
+*builtin.txt*	For Vim version 9.0.  Last change: 2023 Feb 14
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -266,7 +266,7 @@
 gettagstack([{nr}])		Dict	get the tag stack of window {nr}
 gettext({text})			String	lookup translation of {text}
 getwininfo([{winid}])		List	list of info about each window
-getwinpos([{timeout}])		List	X and Y coord in pixels of the Vim window
+getwinpos([{timeout}])		List	X and Y coord in pixels of Vim window
 getwinposx()			Number	X coord in pixels of the Vim window
 getwinposy()			Number	Y coord in pixels of the Vim window
 getwinvar({nr}, {varname} [, {def}])
@@ -382,7 +382,7 @@
 max({expr})			Number	maximum value of items in {expr}
 menu_info({name} [, {mode}])	Dict	get menu item information
 min({expr})			Number	minimum value of items in {expr}
-mkdir({name} [, {path} [, {prot}]])
+mkdir({name} [, {flags} [, {prot}]])
 				Number	create directory {name}
 mode([expr])			String	current editing mode
 mzeval({expr})			any	evaluate |MzScheme| expression
@@ -6261,17 +6261,20 @@
 			mylist->min()
 
 <							*mkdir()* *E739*
-mkdir({name} [, {path} [, {prot}]])
+mkdir({name} [, {flags} [, {prot}]])
 		Create directory {name}.
 
-		If {path} contains "p" then intermediate directories are
-		created as necessary.  Otherwise it must be "".
+		When {flags} is present it must be a string.  An empty string
+		has no effect.
 
-		If {path} contains "D" then {name} is deleted at the end of
+		If {flags} contains "p" then intermediate directories are
+		created as necessary.
+
+		If {flags} contains "D" then {name} is deleted at the end of
 		the current function, as with: >
 			defer delete({name}, 'd')
 <
-		If {path} contains "R" then {name} is deleted recursively at
+		If {flags} contains "R" then {name} is deleted recursively at
 		the end of the current function, as with: >
 			defer delete({name}, 'rf')
 <		Note that when {name} has more than one part and "p" is used
@@ -7958,7 +7961,7 @@
 		terminal, counted in screen cells.  The values override
 		'ambiwidth'.  Example: >
 		   call setcellwidths([
-		   		\ [0x111, 0x111, 1],
+				\ [0x111, 0x111, 1],
 				\ [0x2194, 0x2199, 2],
 				\ ])
 
@@ -7972,7 +7975,7 @@
 		{width} must be either 1 or 2, indicating the character width
 		in screen cells.			*E1112*
 		An error is given if the argument is invalid, also when a
-		range overlaps with another. 		*E1113*
+		range overlaps with another.		*E1113*
 
 		If the new value causes 'fillchars' or 'listchars' to become
 		invalid it is rejected and an error is given.
@@ -10551,7 +10554,7 @@
 <
 		'D'  Delete the file when the current function ends.  This
 		     works like: >
-		     	:defer delete({fname})
+			:defer delete({fname})
 <		     Fails when not in a function.  Also see |:defer|.
 
 		's'  fsync() is called after writing the file.  This flushes
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 5811b8e..85bacbb 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1842,9 +1842,9 @@
 
 - Set 'formatoptions' to "aw2tq" to make text with indents like this:
 
-	    bla bla foobar bla 
+	    bla bla foobar bla
 	bla foobar bla foobar bla
-	    bla bla foobar bla 
+	    bla bla foobar bla
 	bla foobar bla bla foobar
 
 - Add the 'c' flag to only auto-format comments.  Useful in source code.
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index b30271e..55b1a63 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 9.0.  Last change: 2022 Nov 11
+*cmdline.txt*   For Vim version 9.0.  Last change: 2023 Feb 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -617,6 +617,7 @@
     :read !
     :scscope
     :sign
+    :tabdo
     :tcl
     :tcldo
     :tclfile
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 40167a1..216922a 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -181,7 +181,7 @@
 loaded.  Since Vim doesn't allow having two buffers for the same file, you
 need another buffer.  This command is useful: >
 	 command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_
-	 	\ | diffthis | wincmd p | diffthis
+		\ | diffthis | wincmd p | diffthis
 (this is in |defaults.vim|).  Use ":DiffOrig" to see the differences between
 the current buffer and the file it was loaded from.
 
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index b133c5a..bee0ad6 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1372,7 +1372,7 @@
 always put spaces around the dot for String concatenation.
 
 
-expr10(expr1, ...)	|Funcref| function call  	*E1085*
+expr10(expr1, ...)	|Funcref| function call		*E1085*
 
 When expr10 is a |Funcref| type variable, invoke the function it refers to.
 
@@ -1654,7 +1654,7 @@
 
 lambda expression				*expr-lambda* *lambda*
 -----------------
-{args -> expr1}		legacy lambda expression 		*E451*
+{args -> expr1}		legacy lambda expression		*E451*
 (args) => expr1		|Vim9| lambda expression
 
 A lambda expression creates a new unnamed function which returns the result of
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index bf61e86..b8686a1 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt*  For Vim version 9.0.  Last change: 2022 Apr 09
+*filetype.txt*  For Vim version 9.0.  Last change: 2023 Feb 15
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -679,7 +679,10 @@
 
 To enable folding use this: >
 	let g:markdown_folding = 1
-<
+
+'expandtab' will be set by default.  If you do not want that use this: >
+	let g:markdown_recommended_style = 0
+
 
 PDF							*ft-pdf-plugin*
 
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 668b4d4..17fa848 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -95,11 +95,11 @@
 
 Recommended place for your personal GUI initializations:
 	Unix		    $HOME/.gvimrc or $HOME/.vim/gvimrc
-	Win32    	    $HOME/_gvimrc, $HOME/vimfiles/gvimrc
+	Win32		    $HOME/_gvimrc, $HOME/vimfiles/gvimrc
 			    or $VIM/_gvimrc
 	Amiga		    s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
 			    or $VIM/.gvimrc
-	Haiku	            $HOME/config/settings/vim/gvimrc
+	Haiku		    $HOME/config/settings/vim/gvimrc
 
 The personal initialization files are searched in the order specified above
 and only the first one that is found is read.
@@ -1181,7 +1181,7 @@
 empty Vim will attempt to find a matching double-width font and set
 'guifontwide' to it.
 
-GTK+ GUI only:  		    	*guifontwide_gtk*
+GTK+ GUI only:				*guifontwide_gtk*
 
 If set and valid, 'guifontwide' is always used for double width characters,
 even if 'encoding' is not set to "utf-8".
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index 0cf012b..d8ce03e 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -17,7 +17,7 @@
 
 Other relevant documentation:
 |gui.txt|	For generic items of the GUI.
-|os_win32.txt| 	For Win32 specific items.
+|os_win32.txt|	For Win32 specific items.
 
 
 ==============================================================================
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index 9ea6308..2f1e3be 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -101,7 +101,7 @@
 			find a tag in a file with the same language as the
 			current file.  See |help-translated|.
 
-						 	*:helpc* *:helpclose*
+							*:helpc* *:helpclose*
 :helpc[lose]		Close one help window, if there is one.
 			Vim will try to restore the window layout (including
 			cursor position) to the same layout it was before
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 0cf2b0f..c2a0094 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -857,7 +857,7 @@
 	if has('python')
 	  echo 'there is Python 2.x'
 	endif
-  	if has('python3')
+	if has('python3')
 	  echo 'there is Python 3.x'
 	endif
 
@@ -874,7 +874,7 @@
 	    echo 'Python 2.x dynamically loaded'
 	  endif
 	endif
-  	if has('python3_compiled')
+	if has('python3_compiled')
 	  echo 'compiled with Python 3.x support'
 	  if has('python3_dynamic')
 	    echo 'Python 3.x dynamically loaded'
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index c4363a8..a302c59 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -236,7 +236,7 @@
 |CTRL-\_CTRL-N|	CTRL-\ CTRL-N	   go to Normal mode (no-op)
 |CTRL-\_CTRL-G|	CTRL-\ CTRL-G	   go to mode specified with 'insertmode'
 		CTRL-\ a - z	   reserved for extensions
-		CTRL-\ others      not used
+		CTRL-\ others	   not used
 |CTRL-]|	CTRL-]		   :ta to ident under cursor
 |CTRL-^|	CTRL-^		   edit Nth alternate file (equivalent to
 				   ":e #N")
@@ -247,7 +247,7 @@
 				2  filter Nmove text through the {filter}
 				   command
 |!!|		!!{filter}	2  filter N lines through the {filter} command
-|quote|		"{register}  	   use {register} for next delete, yank or put
+|quote|		"{register}	   use {register} for next delete, yank or put
 				   ({.%#:} only work with put)
 |#|		#		1  search backward for the Nth occurrence of
 				   the ident under the cursor
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 0db0e41..ccf5178 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -877,7 +877,7 @@
 
     func Thesaur(findstart, base)
       if a:findstart
-    	return searchpos('\<', 'bnW', line('.'))[1] - 1
+	return searchpos('\<', 'bnW', line('.'))[1] - 1
       endif
       let res = []
       let h = ''
@@ -1118,8 +1118,8 @@
 larger than the cursor column, the cursor column is used.
 
 Negative return values:
-   -2 	To cancel silently and stay in completion mode.
-   -3 	To cancel silently and leave completion mode.
+   -2	To cancel silently and stay in completion mode.
+   -3	To cancel silently and leave completion mode.
    Another negative value: completion starts at the cursor column
 
 On the second invocation the arguments are:
@@ -1176,7 +1176,7 @@
 			item with the same word is already present.
 	empty		when non-zero this match will be added even when it is
 			an empty string
-	user_data 	custom data which is associated with the item and
+	user_data	custom data which is associated with the item and
 			available in |v:completed_item|; it can be any type;
 			defaults to an empty string
 
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index c2eb76c..ef31261 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 9.0.  Last change: 2023 Jan 09
+*map.txt*       For Vim version 9.0.  Last change: 2023 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -845,7 +845,7 @@
 you type slowly, or your system is slow, reset the 'timeout' option.  Then you
 might want to set the 'ttimeout' option.
 
-			      				*map-precedence*
+							*map-precedence*
 Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
 global mappings.  When a buffer-local mapping is the same as a global mapping,
 Vim will use the buffer-local mapping.  In addition, Vim will use a complete
@@ -923,6 +923,11 @@
 
 1.10 MAPPING ALT-KEYS					*:map-alt-keys*
 
+For a readable mapping command the <A-k> form can be used.  Note that <A-k>
+and <A-K> are different, the latter will use an upper case letter.  Actually,
+<A-K> and <A-S-K> are the same.  Instead of "A" you can use "M".  If you have
+an actual Meta modifier key, please see |:map-meta-keys|.
+
 In the GUI Vim handles the Alt key itself, thus mapping keys with ALT should
 always work.  But in a terminal Vim gets a sequence of bytes and has to figure
 out whether ALT was pressed or not.
@@ -1028,7 +1033,7 @@
 To see if Vim detected such an escape sequence use `:verbose map`, the first
 line will then show "Seen modifyOtherKeys: true" (possibly translated).
 
-This automatic detection depends on receiving an escape code starting with 
+This automatic detection depends on receiving an escape code starting with
 "<1b>[27;".  This is the normal way xterm sends these key codes.  However, if
 the *formatOtherKeys* resource is set another form is used that is not
 recognized, therefore you must not set formatOtherKeys.
@@ -1069,7 +1074,7 @@
 	Disabled	protocol was used but expected to have been disabled
 			by 't_TE'
 	Cleared		protocol expected to have beeen disabled by 't_TE',
-			previous state is unknown 
+			previous state is unknown
 
 
 1.14 MAPPING AN OPERATOR				*:map-operator*
@@ -1212,7 +1217,7 @@
 Examples of strings that cannot be abbreviations: "a.b", "#def", "a b", "_$r"
 
 An abbreviation is only recognized when you type a non-keyword character.
-This can also be the <Esc> that ends insert mode or the <CR> that ends a
+This can also be the <Esc> that ends Insert mode or the <CR> that ends a
 command.  The non-keyword character which ends the abbreviation is inserted
 after the expanded abbreviation.  An exception to this is the character <C-]>,
 which is used to expand an abbreviation without inserting any extra
@@ -1723,7 +1728,7 @@
 relate to arguments, (loaded) buffers, windows or tab pages.
 
 Possible values are (second column is the short name used in listing):
-    -addr=lines		  	Range of lines (this is the default for -range)
+    -addr=lines			Range of lines (this is the default for -range)
     -addr=arguments	  arg	Range for arguments
     -addr=buffers	  buf	Range for buffers (also not loaded buffers)
     -addr=loaded_buffers  load	Range for loaded buffers
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 3d1f2ff..4f0ac45 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 9.0.  Last change: 2023 Feb 01
+*options.txt*	For Vim version 9.0.  Last change: 2023 Feb 17
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1547,7 +1547,7 @@
 			case mapping, the current locale is not effective.
 			This probably only matters for Turkish.
 
-						*'cdhome'* *'cdh'*
+				*'cdhome'* *'cdh'* *'nocdhome'* *'nocdh'*
 'cdhome' 'cdh'		boolean	(default: off)
 			global
 	When on, |:cd|, |:tcd| and |:lcd| without an argument changes the
@@ -4911,7 +4911,7 @@
 
 <	This means that when 'term' contains "kitty, "foot" or "wezterm"
 	somewhere then the "kitty" protocol is used.  When 'term' contains
-	"xterm" somewhere, then the "mok2" protocol is used. 
+	"xterm" somewhere, then the "mok2" protocol is used.
 
 	The first match is used, thus if you want to have "kitty" use the
 	kitty protocol, but "badkitty" not, then you should match "badkitty"
@@ -5665,7 +5665,7 @@
 
 	The 'mousemodel' option is set by the |:behave| command.
 
-						*'mousemoveevent'* *'mousemev'*
+	      *'mousemoveevent'* *'mousemev'* *'nomousemoveevent'* *'nomousemev'*
 'mousemoveevent' 'mousemev'  boolean	(default off)
 			global
 			{only works in the GUI}
@@ -7157,7 +7157,7 @@
 	  A	don't give the "ATTENTION" message when an existing	*shm-A*
 		swap file is found
 	  I	don't give the intro message when starting Vim,		*shm-I*
-	  	see |:intro|
+		see |:intro|
 	  c	don't give |ins-completion-menu| messages; for		*shm-c*
 		example, "-- XXX completion (YYY)", "match 1 of 2", "The only
 		match", "Pattern not found", "Back at original", etc.
@@ -7167,8 +7167,8 @@
 	  F	don't give the file info when editing a file, like	*shm-F*
 		`:silent` was used for the command; note that this also
 		affects messages from autocommands
-	  S     do not show search count message when searching, e.g.	*shm-S*
-	        "[1/5]"
+	  S	do not show search count message when searching, e.g.	*shm-S*
+		"[1/5]"
 
 	This gives you the opportunity to avoid that a change between buffers
 	requires you to hit <Enter>, but still gives as useful a message as
@@ -7345,9 +7345,9 @@
 			{not available when compiled without the |+signs|
 			feature}
 	Whether or not to draw the signcolumn. Valid values are:
-	   "auto"   	only when there is a sign to display
-	   "no"	    	never
-	   "yes"    	always
+	   "auto"	only when there is a sign to display
+	   "no"		never
+	   "yes"	always
 	   "number"	display signs in the 'number' column. If the number
 			column is not present, then behaves like "auto".
 
@@ -8234,7 +8234,7 @@
 		:set encoding=utf-8
 <	You need to do this when your system has no locale support for UTF-8.
 
-					*'termguicolors'* *'tgc'* *E954*
+		*'termguicolors'* *'tgc'* *'notermguicolors'* *'notgc'* *E954*
 'termguicolors' 'tgc'	boolean (default off)
 			global
 			{not available when compiled without the
diff --git a/runtime/doc/os_390.txt b/runtime/doc/os_390.txt
index 8dce4a5..42c8a8b 100644
--- a/runtime/doc/os_390.txt
+++ b/runtime/doc/os_390.txt
@@ -10,7 +10,7 @@
 2. Putty and Colors                     |zOS-PuTTY|
 3. Motif Problems			|zOS-Motif|
 4. Bugs					|zOS-Bugs|
-5. Limitations     			|zOS-limitations|
+5. Limitations				|zOS-limitations|
 6. Open source on z/OS UNIX		|zOS-open-source|
 
 Contributors: ~
@@ -75,7 +75,7 @@
   this occurs in both the terminal and gui versions.
 
 ==============================================================================
-5. Limitations     			*OS390-limitations* *zOS-limitations*
+5. Limitations				*OS390-limitations* *zOS-limitations*
 
 - No binary search in tag files.
   The program /bin/sort sorts by ASCII value by default.  This program is
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt
index 619f4e4..54eb63c 100644
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -203,7 +203,7 @@
 
 Example LOGIN.COM: >
 
- 	$ define/nolog VIM DKA0:[UTIL.VIM81]
+	$ define/nolog VIM DKA0:[UTIL.VIM81]
 	$ vi*m :== mcr VIM:VIM.EXE
 	$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
 	$ set disp/create/node=192.168.10.202/trans=tcpip
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index a9452c5..9e048ff 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 9.0.  Last change: 2022 Sep 24
+*pattern.txt*   For Vim version 9.0.  Last change: 2023 Feb 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -101,6 +101,8 @@
 							*gd*
 gd			Goto local Declaration.  When the cursor is on a local
 			variable, this command will jump to its declaration.
+			This was made to work for C code, in other languages
+			it may not work well.
 			First Vim searches for the start of the current
 			function, just like "[[".  If it is not found the
 			search stops in line 1.  If it is found, Vim goes back
@@ -1142,21 +1144,21 @@
 	  are supported:
 		  Name	      Func	Contents ~
 *[:alnum:]*	  [:alnum:]   isalnum	ASCII letters and digits
-*[:alpha:]*	  [:alpha:]   isalpha  	ASCII letters
-*[:blank:]*	  [:blank:]     	space and tab
-*[:cntrl:]*	  [:cntrl:]   iscntrl 	ASCII control characters
-*[:digit:]*	  [:digit:]     	decimal digits '0' to '9'
+*[:alpha:]*	  [:alpha:]   isalpha	ASCII letters
+*[:blank:]*	  [:blank:]		space and tab
+*[:cntrl:]*	  [:cntrl:]   iscntrl	ASCII control characters
+*[:digit:]*	  [:digit:]		decimal digits '0' to '9'
 *[:graph:]*	  [:graph:]   isgraph	ASCII printable characters excluding
 					space
 *[:lower:]*	  [:lower:]   (1)	lowercase letters (all letters when
 					'ignorecase' is used)
-*[:print:]*	  [:print:]   (2) 	printable characters including space
+*[:print:]*	  [:print:]   (2)	printable characters including space
 *[:punct:]*	  [:punct:]   ispunct	ASCII punctuation characters
-*[:space:]*	  [:space:]     	whitespace characters: space, tab, CR,
+*[:space:]*	  [:space:]		whitespace characters: space, tab, CR,
 					NL, vertical tab, form feed
 *[:upper:]*	  [:upper:]   (3)	uppercase letters (all letters when
 					'ignorecase' is used)
-*[:xdigit:]*	  [:xdigit:]    	hexadecimal digits: 0-9, a-f, A-F
+*[:xdigit:]*	  [:xdigit:]		hexadecimal digits: 0-9, a-f, A-F
 *[:return:]*	  [:return:]		the <CR> character
 *[:tab:]*	  [:tab:]		the <Tab> character
 *[:escape:]*	  [:escape:]		the <Esc> character
diff --git a/runtime/doc/pi_getscript.txt b/runtime/doc/pi_getscript.txt
index 87d4a4a..7780588 100644
--- a/runtime/doc/pi_getscript.txt
+++ b/runtime/doc/pi_getscript.txt
@@ -24,7 +24,7 @@
 
 ==============================================================================
 1. Contents				*glvs-contents* *glvs* *getscript*
-   					*GetLatestVimScripts*
+					*GetLatestVimScripts*
 
 	1. Contents........................................: |glvs-contents|
 	2. GetLatestVimScripts -- Getting Started..........: |glvs-install|
@@ -116,7 +116,7 @@
 
 ==============================================================================
 4. GetLatestVimScripts Data File		*getscript-data* *glvs-data*
- 						*:GetLatestVimScripts_dat*
+						*:GetLatestVimScripts_dat*
 The data file <GetLatestVimScripts.dat> must have for its first two lines
 the following text:
 >
@@ -330,7 +330,7 @@
 		This variable holds the options to be used with the
 		g:GetLatestVimScripts_wget command.
 >
- 	g:GetLatestVimScripts_allowautoinstall
+	g:GetLatestVimScripts_allowautoinstall
 <	default= 1
 		This variable indicates whether GetLatestVimScripts is allowed
 		to attempt to automatically install scripts.  Furthermore, the
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 71c752a..f242430 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1085,8 +1085,8 @@
 	 <c-tab> Shrink/expand a netrw/explore window                |netrw-c-tab|
 	   -	Makes Netrw go up one directory                      |netrw--|
 	   a	Cycles between normal display,                       |netrw-a|
-	    	hiding (suppress display of files matching g:netrw_list_hide)
-	    	and showing (display only files which match g:netrw_list_hide)
+		hiding (suppress display of files matching g:netrw_list_hide)
+		and showing (display only files which match g:netrw_list_hide)
 	   cd	Make browsing directory the current directory        |netrw-cd|
 	   C	Setting the editing window                           |netrw-C|
 	   d	Make a directory                                     |netrw-d|
@@ -1118,7 +1118,7 @@
 	   mX	Apply arbitrary shell command to marked files en bloc|netrw-mX|
 	   mz	Compress/decompress marked files                     |netrw-mz|
 	   o	Enter the file/directory under the cursor in a new   |netrw-o|
-	    	browser window.  A horizontal split is used.
+		browser window.  A horizontal split is used.
 	   O	Obtain a file specified by cursor                    |netrw-O|
 	   p	Preview the file                                     |netrw-p|
 	   P	Browse in the previously used window                 |netrw-P|
@@ -1134,7 +1134,7 @@
 	   u	Change to recently-visited directory                 |netrw-u|
 	   U	Change to subsequently-visited directory             |netrw-U|
 	   v	Enter the file/directory under the cursor in a new   |netrw-v|
-	    	browser window.  A vertical split is used.
+		browser window.  A vertical split is used.
 	   x	View file with an associated program                 |netrw-x|
 	   X	Execute filename under cursor via |system()|           |netrw-X|
 
@@ -2271,7 +2271,7 @@
 	...
 
 
-MARKED FILES, ARBITRARY SHELL COMMAND, EN BLOC 			*netrw-mX* {{{2
+MARKED FILES, ARBITRARY SHELL COMMAND, EN BLOC			*netrw-mX* {{{2
 	    (See |netrw-mf| and |netrw-mr| for how to mark files)
 		      (uses the global marked-file list)
 
@@ -2620,7 +2620,7 @@
 				Used to change access permission for a file.
 
   *g:netrw_clipboard*		=1
-  				By default, netrw will attempt to insure that
+				By default, netrw will attempt to insure that
 				the clipboard's values will remain unchanged.
 				However, some users report that they have
 				speed problems with this; consequently, this
@@ -2768,7 +2768,7 @@
 				escaped before applying glob()
 
   *g:netrw_gx*			="<cfile>"
- 				This option controls how gx (|netrw-gx|) picks
+				This option controls how gx (|netrw-gx|) picks
 				up the text under the cursor.  See |expand()|
 				for possibilities.
 
@@ -2834,11 +2834,11 @@
 				directory (|netrw-mt|, |netrw-mc|)
 
   *g:netrw_localcopycmdopt*	=''             Linux/Unix/MacOS/Cygwin
-  				=' \c copy'                     Windows
+				=' \c copy'                     Windows
 				Options for the |g:netrw_localcopycmd|
 
   *g:netrw_localcopydircmd*	="cp"           Linux/Unix/MacOS/Cygwin
- 				=expand("$COMSPEC")             Windows
+				=expand("$COMSPEC")             Windows
 				Copies directories to target directory.
 				(|netrw-mc|, |netrw-mt|)
 
@@ -2864,7 +2864,7 @@
 				Options for |g:netrw_localmovecmd|
 
   *g:netrw_localrmdir*		="rmdir"        Linux/Unix/MacOS/Cygwin
- 				=expand("$COMSPEC")             Windows
+				=expand("$COMSPEC")             Windows
 				Remove directory command (rmdir)
 				This variable is only used if your vim is
 				earlier than 7.4 or if your vim doesn't
@@ -2900,10 +2900,10 @@
 				(see |'ballooneval'|)
 
  *g:netrw_sizestyle*		not defined: actual bytes (default)
- 				="b" : actual bytes       (default)
- 				="h" : human-readable (ex. 5k, 4m, 3g)
+				="b" : actual bytes       (default)
+				="h" : human-readable (ex. 5k, 4m, 3g)
 				       uses 1000 base
- 				="H" : human-readable (ex. 5K, 4M, 3G)
+				="H" : human-readable (ex. 5K, 4M, 3G)
 				       uses 1024 base
 				The long listing (|netrw-i|) and query-file
 				maps (|netrw-qf|) will display file size
@@ -2951,7 +2951,7 @@
 				 default: "NETRWSERVER"
 
   *g:netrw_sort_by*		sort by "name", "time", "size", or
-  				"exten".
+				"exten".
 				 default: "name"
 
   *g:netrw_sort_direction*	sorting direction: "normal" or "reverse"
@@ -3008,7 +3008,7 @@
 					.vim/after/syntax/netrw.vim.
 <				 The netrwGray highlighting is set up by
 				netrw when >
-	       				* netrwGray has not been previously
+					* netrwGray has not been previously
 					  defined
 					* the gui is running
 <				 As an example, I myself use a dark-background
@@ -3266,7 +3266,7 @@
     name, applying that substitute, and renaming each file to the result.
     As an example : >
 
-    	mr  [query: reply with *.c]
+	mr  [query: reply with *.c]
 	R   [query: reply with s/^\(.*\)\.c$/\1.cpp/]
 <
     This example will mark all *.c files and then rename them to *.cpp
@@ -3275,7 +3275,7 @@
 
     The ctrl-X character has special meaning for renaming files: >
 
-    	<c-x>      : a single ctrl-x tells netrw to ignore the portion of the response
+	<c-x>      : a single ctrl-x tells netrw to ignore the portion of the response
 	             lying between the last '/' and the ctrl-x.
 
 	<c-x><c-x> : a pair of contiguous ctrl-x's tells netrw to ignore any
@@ -3843,7 +3843,7 @@
 	  Decho.vim is provided as a "vimball"; see |vimball-intro|.  You
 	  should edit the Decho.vba.gz file and source it in: >
 
-	  	vim Decho.vba.gz
+		vim Decho.vba.gz
 		:so %
 		:q
 <
@@ -3885,7 +3885,7 @@
 	   To save the file: under linux, the output will be in a separate
 	   remote server window; in it, just save the file with >
 
-	   	:w! DBG
+		:w! DBG
 
 <	   Under a vim that doesn't support clientserver, your debugging
 	   output will appear in another tab: >
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index f611fd9..463bc9a 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -770,7 +770,7 @@
 	cursorline	TRUE:	 Highlight the cursor line. Also scrolls the
 				 text to show this line (only works properly
 				 when 'wrap' is off).
-			zero: 	 Do not highlight the cursor line.
+			zero:	 Do not highlight the cursor line.
 			Default is zero, except for |popup_menu()|.
 	filter		A callback that can filter typed characters, see
 			|popup-filter|.
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 438cc6f..96ba382 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1277,7 +1277,7 @@
 may be limited to include only errors, by setting the g:dotnet_errors_only
 variable to |v:true|.
 
-The associated project name is included in each error and warning. To supress
+The associated project name is included in each error and warning. To suppress
 the project name, set the g:dotnet_show_project_file variable to |v:false|.
 
 Example: limit output to only display errors, and suppress the project name: >
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index e38a6dd..724b58c 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -64,7 +64,7 @@
 				below).  The name used will be uppercase.
 								*--remote-send*
    --remote-send {keys}		Send {keys} to server and exit.  The {keys}
-   				are not mapped.  Special key names are
+				are not mapped.  Special key names are
 				recognized, e.g., "<CR>" results in a CR
 				character.
 								*--remote-expr*
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 0f79afd..56e9ad8 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -267,7 +267,7 @@
 			When [where] is omitted only 'runtimepath' is used.
 			Other values:
 				START	search under "start" in 'packpath'
-				OPT 	search under "opt" in 'packpath'
+				OPT	search under "opt" in 'packpath'
 				PACK	search under "start" and "opt" in
 					'packpath'
 				ALL	first use 'runtimepath', then search
@@ -729,15 +729,15 @@
 You can do both, github can automatically create an archive for a release.
 
 Your directory layout would be like this:
-   start/foobar/plugin/foo.vim    	" always loaded, defines commands
-   start/foobar/plugin/bar.vim    	" always loaded, defines commands
-   start/foobar/autoload/foo.vim  	" loaded when foo command used
-   start/foobar/doc/foo.txt       	" help for foo.vim
-   start/foobar/doc/tags          	" help tags
-   opt/fooextra/plugin/extra.vim  	" optional plugin, defines commands
-   opt/fooextra/autoload/extra.vim  	" loaded when extra command used
-   opt/fooextra/doc/extra.txt  	        " help for extra.vim
-   opt/fooextra/doc/tags  	        " help tags
+   start/foobar/plugin/foo.vim		" always loaded, defines commands
+   start/foobar/plugin/bar.vim		" always loaded, defines commands
+   start/foobar/autoload/foo.vim	" loaded when foo command used
+   start/foobar/doc/foo.txt		" help for foo.vim
+   start/foobar/doc/tags		" help tags
+   opt/fooextra/plugin/extra.vim	" optional plugin, defines commands
+   opt/fooextra/autoload/extra.vim	" loaded when extra command used
+   opt/fooextra/doc/extra.txt		" help for extra.vim
+   opt/fooextra/doc/tags		" help tags
 
 This allows for the user to do: >
 	mkdir ~/.vim/pack
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index c698499..1a500a4 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -629,7 +629,7 @@
 				be placed. For the accepted values, see
 				|line()|.
 		    name	name of the sign to place. See |sign_define()|
-		    		for more information.
+			for more information.
 		    priority	priority of the sign. When multiple signs are
 				placed on a line, the sign with the highest
 				priority is used. If not specified, the
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 27c65da..eed82f1 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 9.0.  Last change: 2022 Dec 26
+*syntax.txt*	For Vim version 9.0.  Last change: 2023 Feb 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1307,18 +1307,32 @@
 
 DOSBATCH				*dosbatch.vim* *ft-dosbatch-syntax*
 
-There is one option with highlighting DOS batch files.	This covers new
-extensions to the Command Interpreter introduced with Windows 2000 and
-is controlled by the variable dosbatch_cmdextversion.  For Windows NT
-this should have the value 1, and for Windows 2000 it should be 2.
+Select the set of Windows Command interpreter extensions that should be
+supported with the variable dosbatch_cmdextversion.  For versions of Windows
+NT (before Windows 2000) this should have the value of 1.  For Windows 2000
+and later it should be 2.
 Select the version you want with the following line: >
 
    :let dosbatch_cmdextversion = 1
 
 If this variable is not defined it defaults to a value of 2 to support
-Windows 2000.
+Windows 2000 and later.
 
-A second option covers whether *.btm files should be detected as type
+The original MS-DOS supports an idiom of using a double colon (::) as an
+alternative way to enter a comment line.  This idiom can be used with the
+current Windows Command Interpreter, but it can lead to problems when used
+inside ( ... ) command blocks.  You can find a discussion about this on
+Stack Overflow -
+
+https://stackoverflow.com/questions/12407800/which-comment-style-should-i-use-in-batch-files
+
+To allow the use of the :: idiom for comments in the Windows Command
+Interpreter or working with MS-DOS bat files, set the
+dosbatch_colons_comment variable to anything: >
+
+   :let dosbatch_colons_comment = 1
+
+There is an option that covers whether *.btm files should be detected as type
 "dosbatch" (MS-DOS batch files) or type "btm" (4DOS batch files).  The latter
 is used by default.  You may select the former with the following line: >
 
@@ -3836,7 +3850,7 @@
 
 	clear:		Syntax specific iskeyword setting is disabled and the
 			buffer-local 'iskeyword' setting is used.
-	{option}       	Set the syntax 'iskeyword' option to a new value.
+	{option}	Set the syntax 'iskeyword' option to a new value.
 
 	Example: >
   :syntax iskeyword @,48-57,192-255,$,_
@@ -5283,7 +5297,7 @@
 	(guisp) color to use in the GUI.  "guisp" is used for undercurl and
 	strikethrough.
 	There are a few special names:
-		NONE		no color (transparent)
+		NONE		no color (transparent)		*E1361*
 		bg		use normal background color
 		background	use normal background color
 		fg		use normal foreground color
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 051c74b..3a83101 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -568,6 +568,8 @@
 'nobreakindent'	options.txt	/*'nobreakindent'*
 'nobri'	options.txt	/*'nobri'*
 'nobuflisted'	options.txt	/*'nobuflisted'*
+'nocdh'	options.txt	/*'nocdh'*
+'nocdhome'	options.txt	/*'nocdhome'*
 'nocf'	options.txt	/*'nocf'*
 'noci'	options.txt	/*'noci'*
 'nocin'	options.txt	/*'nocin'*
@@ -676,6 +678,8 @@
 'nomousef'	options.txt	/*'nomousef'*
 'nomousefocus'	options.txt	/*'nomousefocus'*
 'nomousehide'	options.txt	/*'nomousehide'*
+'nomousemev'	options.txt	/*'nomousemev'*
+'nomousemoveevent'	options.txt	/*'nomousemoveevent'*
 'nonu'	options.txt	/*'nonu'*
 'nonumber'	options.txt	/*'nonumber'*
 'noodev'	options.txt	/*'noodev'*
@@ -745,10 +749,12 @@
 'notbidi'	options.txt	/*'notbidi'*
 'notbs'	options.txt	/*'notbs'*
 'notermbidi'	options.txt	/*'notermbidi'*
+'notermguicolors'	options.txt	/*'notermguicolors'*
 'noterse'	options.txt	/*'noterse'*
 'notextauto'	options.txt	/*'notextauto'*
 'notextmode'	options.txt	/*'notextmode'*
 'notf'	options.txt	/*'notf'*
+'notgc'	options.txt	/*'notgc'*
 'notgst'	options.txt	/*'notgst'*
 'notildeop'	options.txt	/*'notildeop'*
 'notimeout'	options.txt	/*'notimeout'*
@@ -2842,6 +2848,7 @@
 :map-commands	map.txt	/*:map-commands*
 :map-expression	map.txt	/*:map-expression*
 :map-local	map.txt	/*:map-local*
+:map-meta-keys	map.txt	/*:map-meta-keys*
 :map-modes	map.txt	/*:map-modes*
 :map-nowait	map.txt	/*:map-nowait*
 :map-operator	map.txt	/*:map-operator*
@@ -4424,6 +4431,8 @@
 E1358	vim9class.txt	/*E1358*
 E1359	vim9class.txt	/*E1359*
 E136	starting.txt	/*E136*
+E1360	vim9class.txt	/*E1360*
+E1361	syntax.txt	/*E1361*
 E137	starting.txt	/*E137*
 E138	starting.txt	/*E138*
 E139	message.txt	/*E139*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index e7a522f..f90632c 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt*   For Vim version 9.0.  Last change: 2020 Dec 19
+*tagsrch.txt*   For Vim version 9.0.  Last change: 2023 Feb 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -98,7 +98,7 @@
 - when 'tagcase' is "followscs" and 'ignorecase' is on or the 'smartcase'
   option is on and the pattern does not contain an upper case character
 - when 'tagcase' is "ignore"
-- when 'tagcase' is "smart" and the patter does not contain an upper case
+- when 'tagcase' is "smart" and the pattern does not contain an upper case
   character
 
 Note that using ignore-case tag searching disables binary searching in the
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index a089ef9..7bd062f 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -30,9 +30,9 @@
       Using the client-server feature		|terminal-client-server|
 4. Remote testing			|terminal-testing|
 5. Diffing screen dumps			|terminal-diff|
-      Writing a screen dump test for Vim  	|terminal-dumptest|
-      Creating a screen dump		  	|terminal-screendump|
-      Comparing screen dumps		  	|terminal-diffscreendump|
+      Writing a screen dump test for Vim	|terminal-dumptest|
+      Creating a screen dump			|terminal-screendump|
+      Comparing screen dumps			|terminal-diffscreendump|
 6. Debugging				|terminal-debug|
       Starting					|termdebug-starting|
       Example session				|termdebug-example|
@@ -240,7 +240,7 @@
 					in a session file.
 			++shell		Instead of executing {command}
 					directly, use a shell, like with
-					`:!command` 		*E279*
+					`:!command`		*E279*
 					{only works on Unix and MS-Windows}
 			++kill={how}	When trying to close the terminal
 					window kill the job with {how}.  See
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index 71e5f7c..2f6387d 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -197,7 +197,7 @@
 		  Inject an event to select a tabline menu entry. The
 		  supported items in {args} are:
 		    tabnr:	tab page number
-		    item: 	tab page menu item number. 1 for the first
+		    item:	tab page menu item number. 1 for the first
 				menu item, 2 for the second item and so on.
 
 		After injecting the GUI events you probably should call
@@ -369,7 +369,7 @@
 			     string is detected
 		ui_delay     time in msec to use in ui_delay(); overrules a
 			     wait time of up to 3 seconds for messages
-		uptime 	     overrules sysinfo.uptime
+		uptime	     overrules sysinfo.uptime
 		vterm_title  setting the window title by a job running in a
 			     terminal window
 		ALL	     clear all overrides, except alloc_lines ({val} is
diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt
index 3d0be6a..8c9c0c6 100644
--- a/runtime/doc/textprop.txt
+++ b/runtime/doc/textprop.txt
@@ -56,7 +56,7 @@
 			priority will be used.
 	"start_incl"	when TRUE inserts at the start position will be
 			included in the text property
-	"end_incl"    	when TRUE inserts at the end position will be
+	"end_incl"	when TRUE inserts at the end position will be
 			included in the text property
 
 
@@ -107,14 +107,14 @@
 
 Manipulating text properties:
 
-prop_add({lnum}, {col}, {props})  	add a text property
+prop_add({lnum}, {col}, {props})	add a text property
 prop_add_list({props}, [{item}, ...])
 					add a text property at multiple
 					positions.
 prop_clear({lnum} [, {lnum-end} [, {bufnr}]])
 					remove all text properties
 prop_find({props} [, {direction}])	search for a text property
-prop_list({lnum} [, {props}])  		text properties in {lnum}
+prop_list({lnum} [, {props}])		text properties in {lnum}
 prop_remove({props} [, {lnum} [, {lnum-end}]])
 					remove a text property
 
@@ -149,7 +149,7 @@
 				highlighting; cannot be used with "length",
 				"end_lnum" and "end_col"
 				See |virtual-text| for more information.
-		   					*E1294*
+							*E1294*
 		   text_align	when "text" is present and {col} is zero;
 				specifies where to display the text:
 				   after   after the end of the line
@@ -172,7 +172,7 @@
 				fit:
 				   wrap      wrap the text to the next line
 				   truncate  truncate the text to make it fit
-		   		When omitted "truncate" is used.
+				When omitted "truncate" is used.
 				Note that this applies to the individual text
 				property, the 'wrap' option sets the overall
 				behavior
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 4e58fa5..87aa88e 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 9.0.  Last change: 2023 Feb 02
+*todo.txt*      For Vim version 9.0.  Last change: 2023 Feb 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,6 +38,17 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Crash when splitting window: #11961.  Set RedrawingDisabled in
+win_split_ins().
+
+Do not use tt_member for class_T, add tt_class.
+
+CI: include #12008 end of February.
+
+In runtime/autoload/dist/script.vim change "set ft=" to "setlocal ft=" ?
+
+Include #11952 after a runtime files update.
+
 Errors when running tests with valgrind:
 - test_codestyle.vim:  e.g.:
     command line..script /home/mool/vim/vim90/src/testdir/runtest.vim[569]..function RunTheTest[52]..Test_test_files line 6: keycode_check.vim: space before tab: Expected 0 but got 7
@@ -68,13 +79,17 @@
 	    or: def _Func()
     Perhaps use "private" keyword instead of "_" prefix?
   - "final" object members - can only be set in the constructor.
+  - accept line breaks in member initialization.  #11957
   - object empty(), len() - can class define a method to be used for them?
+  - add to help: when using a default new() method then reordering object
+    members may cause trouble.  Can define new() without arguments to avoid.
+  - TODO items: check types for "implements" - members and methods
   - how about lock/unlock?
   - When checking "implements" also check types of members and function args.
   - For chaining, allow using the class name as type for function return
     value.
   - Implement generics
-  - Add "instanceof"
+  - Add "instanceof" (exact class name).  And "assignable" (class or child)?
   - More efficient way for interface member index than iterating over list?
   - a variant of type() that returns a different type for each class?
       list<number> and list<string> should also differ.
@@ -90,6 +105,8 @@
 - Implement as part of an expression: ++expr, --expr, expr++, expr--.
 
 Information missing in terminfo:
+- Accept "hyper" and "meta" modifiers (16 and 32) from Kitty like Meta?
+    8 is actually "super".
 - t_RV	request terminal version string; xterm:	"\033[>c"
     change in terminfo for "RV" uses the wrong escape sequence 7 - 14 Jan only
 Codes used for focus gained and lost (currently using use_xterm_like_mouse())
@@ -101,7 +118,6 @@
 - t_fe	enable focus-event tracking
 - t_fd	disable focus-event tracking
 Modifiers for various keys
-- Decode kitty key protocol Meta and use MOD_MASK_META.  Document <T-k>
 - flag to indicate "xterm compatible modifiers" ?
 Underline and similar:
 - t_AU - Set underline color: like "AF" and "AB" entries.
@@ -145,8 +161,6 @@
 - t_RK	request terminal keyboard protocol state; sent after |t_TI|
 Already working, not properly documented:
 - t_u7	request cursor position
-Also, with Alt-b we get â, with Alt-Shift-b we should bet another character.
-That does not appear to work with Kitty.  #11913
 
 Popup windows:
 - Add a function to redraw a specific popup window.  Esp. to be used when
@@ -301,6 +315,9 @@
 Issue #10512: Dynamic loading broken with Perl 5.36
 Damien has a patch (2022 Dec 4)
 
+Request #11965: Allow severaql "%=" items in 'statusline', makes it possible
+to have text in the center.
+
 Add some kind of ":whathappend" command and functions to make visible what the
 last few typed keys and executed commands are.  To be used when the user
 wonders what went wrong.
@@ -340,7 +357,7 @@
     "xterm" and then add "kitty" entries.
 
 Using "A" and "o" in manually created fold (in empty buffer) does not behave
-consistenly (James McCoy, #10698)
+consistently (James McCoy, #10698)
 
 In a timer callback, when using ":echo" and then input() the message is
 overwritten.  Could use ":echowin" and call redraw_cmd() in get_user_input().
@@ -385,8 +402,6 @@
 When converting screen column to text position use this.
 The line number can be obtained from win->w_lines[].
 
-MS-Windows: did path modifier :p:8 stop working?  #8600
-
 Version of getchar() that does not move the cursor - #10603 Use a separate
 argument for the new flag.
 
@@ -468,6 +483,9 @@
 Can we detect true color support?  https://gist.github.com/XVilka/8346728
 Try setting a color then request the current color, like using t_u7.
 
+Add a v:register_used variable, which has the name of the register used for
+the last command, e.g. put.  #12003
+
 Make the jumplist behave like a tag stack. (#7738)  Should there be a more
 time bound navigation, like with undo?
 
@@ -1173,9 +1191,6 @@
 Patch to make v:shell_error writable. (Christian Brabandt, 2016 Sep 27)
 Useful to restore it.  Is there another solution?
 
-"ci[" does not look for next [ like ci" does look for next ".
-(J.F. 2017 Jan 7)
-
 Patch for wrong cursor position on wrapped line, involving breakindent.
 (Ozaki Kiichi, 2016 Nov 25)
 
@@ -1199,9 +1214,6 @@
 
 Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
 
-Add "unicode true" to NSIS installer.  Doesn't work with Windows 95, which we
-no longer support.
-
 Support sort(l, 'F'), convert strings to float. (#7857)
 
 sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
@@ -1387,9 +1399,6 @@
 Feature request: add the "al" text object, to manipulate a screen line.
 Especially useful when using 'linebreak'
 
-":cd C:\Windows\System32\drivers\etc*" does not work, even though the
-directory exists. (Sergio Gallelli, 2013 Dec 29)
-
 Patch to avoid redrawing tabline when the popup menu is visible.
 (Christian Brabandt, 2016 Jan 28)
 
@@ -2974,10 +2983,6 @@
     console, go back to Vim and click "reload" in the dialog for the changed
     file: Window moves with the cursor!
     Put focus event in input buffer and let generic Vim code handle it?
-8   Win32 GUI: With maximized window, ":set go-=r" doesn't use the space that
-    comes available. (Poucet)  It works OK on Win 98 but doesn't work on Win
-    NT 4.0.  Leaves a grey area where the scrollbar was.  ":set go+=r" also
-    doesn't work properly.
 8   When Vim is minimized and when maximizing it a file-changed dialog pops
     up, Vim isn't maximized.  It should be done before the dialog, so that it
     appears in the right position. (Webb)
@@ -3501,8 +3506,6 @@
     input method called from GDK code.  Without Perl it doesn't crash.
 -   VMS: Vimdiff doesn't work with the VMS diff, because the output looks
     different.  This makes test 47 fail.  Install a Unix-compatible diff.
--   Win32 GUI: mouse wheel always scrolls rightmost window.  The events arrive
-    in Vim as if the rightmost scrollbar was used.
 -   GTK with Gnome: Produces an error message when starting up:
 	Gdk-WARNING **: locale not supported by C library
     This is caused by the gnome library gnome_init() setting $LC_CTYPE to
@@ -4459,8 +4462,6 @@
 Win32 GUI:
 8   Make debug mode work while starting up (vim -D).  Open console window for
     the message and input?
-7   GvimExt: when there are several existing Vims, move the list to a submenu.
-    (Mike McCollister)
 8   When using "Edit with Vim" for one file it changes directory, when several
     files are selected and using "Edit with single Vim" the directory isn't
     changed.  At least change directory when the path is the same for all
@@ -6005,7 +6006,7 @@
     many percent down the windows).
 -   Make it possible for the 'showbreak' to be displayed at the end of the
     line.  Use a comma to separate the part at the end and the start of the
-    line?  Highlight the linebreak characters, add flag in 'highlight'.
+    line?  #754  Highlight the linebreak characters, add flag in 'highlight'.
     Make 'showbreak' local to a window.
 -   Some string options should be expanded if they have wildcards, e.g.
     'dictionary' when it is "*.h".
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index 13c705a..093da30 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -250,7 +250,7 @@
 		    Bram@iccf-holland.org
 
 Others:		Transfer to this account if possible:
-		    ING bank: 	IBAN: NL95 INGB 0004 5487 74
+		    ING bank:	IBAN: NL95 INGB 0004 5487 74
 				Swift code: INGBNL2A
 		    under the name "stichting ICCF Holland", Amersfoort
 		Checks are not accepted.
diff --git a/runtime/doc/userfunc.txt b/runtime/doc/userfunc.txt
index fe7e906..210c2c5 100644
--- a/runtime/doc/userfunc.txt
+++ b/runtime/doc/userfunc.txt
@@ -1,4 +1,4 @@
-*userfunc.txt*	For Vim version 9.0.  Last change: 2023 Jan 09
+*userfunc.txt*	For Vim version 9.0.  Last change: 2023 Feb 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -211,7 +211,8 @@
 
 						*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).
+be used as "a:name" ("a:" for argument) (in a `:def` function "a:" is not
+used).
 					*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
@@ -246,9 +247,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.
+call, not when the function is defined.  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
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index b6cc527..680a4e6 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -505,7 +505,7 @@
 	:help E37
 
 
-Summary: 					*help-summary*  >
+Summary:					*help-summary*  >
 
 1) Use Ctrl-D after typing a topic and let Vim show all available topics.
    Or press Tab to complete: >
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index 06fb03b..bc68e61 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -409,7 +409,7 @@
 	   package.
 	2. unpack the archive in that directory.  This assumes the top
 	   directory in the archive is "start": >
-	   	cd ~/.vim/pack/fancy
+		cd ~/.vim/pack/fancy
 		unzip /tmp/fancy.zip
 <	   If the archive layout is different make sure that you end up with a
 	   path like this:
diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt
index d8f47bc..8ed1028 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -77,25 +77,25 @@
     9. Directory Browsing	 netrw-browse   netrw-dir   netrw-list   netrw-help
 
     MAPS								 netrw-maps
-     	 <F1>.............Help.......................................|netrw-help|
-     	 <cr>.............Browsing...................................|netrw-cr|
-     	 <del>............Deleting Files or Directories..............|netrw-delete|
-     	 -................Going Up...................................|netrw--|
-     	 a................Hiding Files or Directories................|netrw-a|
-     	 mb...............Bookmarking a Directory....................|netrw-mb|
-     	 gb...............Changing to a Bookmarked Directory.........|netrw-gb|
-     	 cd...............Make Browsing Directory The Current Dir....|netrw-c|
-     	 d................Make A New Directory.......................|netrw-d|
-     	 D................Deleting Files or Directories..............|netrw-D|
-     	 <c-h>............Edit File/Directory Hiding List............|netrw-ctrl-h|
-     	 i................Change Listing Style.......................|netrw-i|
-     	 <c-l>............Refreshing the Listing.....................|netrw-ctrl-l|
-     	 o................Browsing with a Horizontal Split...........|netrw-o|
-     	 p................Use Preview Window.........................|netrw-p|
-     	 P................Edit in Previous Window....................|netrw-p|
-     	 q................Listing Bookmarks and History..............|netrw-qb|
-     	 r................Reversing Sorting Order....................|netrw-r|
-<    	(etc)
+	 <F1>.............Help.......................................|netrw-help|
+	 <cr>.............Browsing...................................|netrw-cr|
+	 <del>............Deleting Files or Directories..............|netrw-delete|
+	 -................Going Up...................................|netrw--|
+	 a................Hiding Files or Directories................|netrw-a|
+	 mb...............Bookmarking a Directory....................|netrw-mb|
+	 gb...............Changing to a Bookmarked Directory.........|netrw-gb|
+	 cd...............Make Browsing Directory The Current Dir....|netrw-c|
+	 d................Make A New Directory.......................|netrw-d|
+	 D................Deleting Files or Directories..............|netrw-D|
+	 <c-h>............Edit File/Directory Hiding List............|netrw-ctrl-h|
+	 i................Change Listing Style.......................|netrw-i|
+	 <c-l>............Refreshing the Listing.....................|netrw-ctrl-l|
+	 o................Browsing with a Horizontal Split...........|netrw-o|
+	 p................Use Preview Window.........................|netrw-p|
+	 P................Edit in Previous Window....................|netrw-p|
+	 q................Listing Bookmarks and History..............|netrw-qb|
+	 r................Reversing Sorting Order....................|netrw-r|
+<	(etc)
 
 The <F1> key thus brings you to a netrw directory browsing contents help page.
 It's a regular help page; use the usual |CTRL-]| to jump to tagged help items
@@ -106,7 +106,7 @@
 	<enter>		Open the file in the current window.	   |netrw-cr|
 	o		Horizontally split window and display file |netrw-o|
 	v		Vertically split window and display file   |netrw-v|
-	p		Use the |preview-window| 		   |netrw-p|
+	p		Use the |preview-window|		   |netrw-p|
 	P		Edit in the previous window		   |netrw-P|
 	t		Open file in a new tab			   |netrw-t|
 
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index 3ae5ed4..fd30bbc 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -342,11 +342,11 @@
 |v:mouse_winid|		Window ID for a mouse click obtained with |getchar()|
 |v:none|		an empty String, used for JSON
 |v:null|		an empty String, used for JSON
-|v:option_new|    	new value of the option, used by |OptionSet|
-|v:option_old|    	old value of the option, used by |OptionSet|
+|v:option_new|		new value of the option, used by |OptionSet|
+|v:option_old|		old value of the option, used by |OptionSet|
 |v:option_oldlocal|	old local value of the option, used by |OptionSet|
 |v:option_oldglobal|	old global value of the option, used by |OptionSet|
-|v:option_type|   	scope of the set command, used by |OptionSet|
+|v:option_type|		scope of the set command, used by |OptionSet|
 |v:option_command|	command used to set the option, used by |OptionSet|
 |v:progpath|		the command with which Vim was invoked
 |v:t_bool|		value of Boolean type
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index eb26982..c6c04a9 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -113,7 +113,7 @@
 	:%s/this/that
 - Executing a register with "@r" does not work, you can prepend a colon or use
   `:exe`: >
-  	:exe @a
+	:exe @a
 - Unless mentioned specifically, the highest |scriptversion| is used.
 - When defining an expression mapping, the expression will be evaluated in the
   context of the script where it was defined.
@@ -622,7 +622,7 @@
 	    }
 This can be useful for a timer, for example: >
 	var count = 0
- 	var timer = timer_start(500, (_) => {
+	var timer = timer_start(500, (_) => {
 		 count += 1
 		 echom 'Handler called ' .. count
 	     }, {repeat: 3})
@@ -824,7 +824,7 @@
 
 White space is required in a sublist (list slice) around the ":", except at
 the start and end: >
-	otherlist = mylist[v : count]  	# v:count has a different meaning
+	otherlist = mylist[v : count]	# v:count has a different meaning
 	otherlist = mylist[:]		# make a copy of the List
 	otherlist = mylist[v :]
 	otherlist = mylist[: v]
@@ -879,7 +879,7 @@
 use another character, use a single or double quoted string: >
 	var dict = {'key with space': value}
 	var dict = {"key\twith\ttabs": value}
-	var dict = {'': value}  		# empty key
+	var dict = {'': value}			# empty key
 <							*E1139*
 In case the key needs to be an expression, square brackets can be used, just
 like in JavaScript: >
@@ -1402,7 +1402,7 @@
 	  echo line(1) .. line(2)
 
 - line continuation does not always require a backslash: >
-  	echo ['one',
+	echo ['one',
 		\ 'two',
 		\ 'three'
 		\ ]
diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt
index 250e675..1f6c57f 100644
--- a/runtime/doc/vim9class.txt
+++ b/runtime/doc/vim9class.txt
@@ -1,4 +1,4 @@
-*vim9class.txt*	For Vim version 9.0.  Last change: 2023 Jan 17
+*vim9class.txt*	For Vim version 9.0.  Last change: 2023 Feb 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -471,14 +471,14 @@
 						*E1318* *E1325* *E1326*
 Inside a class, in betweeen `:class` and `:endclass`, these items can appear:
 - An object member declaration: >
-  	this._memberName: memberType
-  	this.memberName: memberType
+	this._memberName: memberType
+	this.memberName: memberType
 	public this.memberName: memberType
 - A constructor method: >
-  	def new(arguments)
-  	def newName(arguments)
+	def new(arguments)
+	def newName(arguments)
 - An object method: >
-  	def SomeMethod(arguments)
+	def SomeMethod(arguments)
 <							*E1329*
 For the object member the type must be specified.  The best way is to do this
 explicitly with ": {type}".  For simple types you can also use an initializer,
@@ -520,6 +520,15 @@
 An interface can only be defined in a |Vim9| script file.  *E1342*
 
 
+null object ~
+
+When a variable is decleared to have the type of an object, but it is not
+initialized, the value is null.  When trying to use this null object Vim often
+does not know what class was supposed to be used.  Vim then cannot check if
+a member name is correct and you will get an "Using a null object" error,
+even when the member name is invalid. *E1360*
+
+
 Default constructor ~
 
 In case you define a class without a new() method, one will be automatically
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index ac82fe3..be92fb8 100644
--- 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:	2023 Feb 02
+" Last Change:	2023 Feb 07
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
diff --git a/runtime/ftplugin/dosbatch.vim b/runtime/ftplugin/dosbatch.vim
index 0c5cde2..f02f26b 100644
--- a/runtime/ftplugin/dosbatch.vim
+++ b/runtime/ftplugin/dosbatch.vim
@@ -1,7 +1,10 @@
 " Vim filetype plugin file
-" Language:    MS-DOS .bat files
-" Maintainer:  Mike Williams <mrw@eandem.co.uk>
-" Last Change: 7th May 2020
+" Language:    MS-DOS/Windows .bat files
+" Maintainer:  Mike Williams <mrmrdubya@gmail.com>
+" Last Change: 12th February 2023
+"
+" Options Flags:
+" dosbatch_colons_comment       - any value to treat :: as comment line
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -15,8 +18,13 @@
 set cpo&vim
 
 " BAT comment formatting
-setlocal comments=b:rem,b:@rem,b:REM,b:@REM,:::
-setlocal commentstring=::\ %s
+setlocal comments=b:rem,b:@rem,b:REM,b:@REM
+if exists("dosbatch_colons_comment")
+  setlocal comments+=:::
+  setlocal commentstring=::\ %s
+else
+  setlocal commentstring=REM\ %s
+endif
 setlocal formatoptions-=t formatoptions+=rol
 
 " Lookup DOS keywords using Windows command help.
diff --git a/runtime/ftplugin/fish.vim b/runtime/ftplugin/fish.vim
new file mode 100644
index 0000000..7acbf44
--- /dev/null
+++ b/runtime/ftplugin/fish.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin file
+" Language:     fish
+" Maintainer:   Nicholas Boyle (github.com/nickeb96)
+" Repository:   https://github.com/nickeb96/fish.vim
+" Last Change:  February 1, 2023
+
+if exists("b:did_ftplugin")
+    finish
+endif
+let b:did_ftplugin = 1
+
+setlocal iskeyword=@,48-57,_,192-255,-,.
+setlocal comments=:#
+setlocal commentstring=#%s
+setlocal formatoptions+=crjq
diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim
index 0247c5e..1ae1d23 100644
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:	Vim
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2022 Nov 27
+" Last Change:	2023 Feb 07
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -99,18 +99,23 @@
   "   func name
   " require a parenthesis following, then there can be an "endfunc".
   let b:match_words =
-	\ '\<\%(fu\%[nction]\|def\)!\=\s\+\S\+\s*(:\%(\%(^\||\)\s*\)\@<=\<retu\%[rn]\>:\%(\%(^\||\)\s*\)\@<=\<\%(endf\%[unction]\|enddef\)\>,' .
- 	\ '\<\(wh\%[ile]\|for\)\>:\%(\%(^\||\)\s*\)\@<=\<brea\%[k]\>:\%(\%(^\||\)\s*\)\@<=\<con\%[tinue]\>:\%(\%(^\||\)\s*\)\@<=\<end\(w\%[hile]\|fo\%[r]\)\>,' .
-	\ '\<if\>:\%(\%(^\||\)\s*\)\@<=\<el\%[seif]\>:\%(\%(^\||\)\s*\)\@<=\<en\%[dif]\>,' .
-	\ '{:},' .
-	\ '\<try\>:\%(\%(^\||\)\s*\)\@<=\<cat\%[ch]\>:\%(\%(^\||\)\s*\)\@<=\<fina\%[lly]\>:\%(\%(^\||\)\s*\)\@<=\<endt\%[ry]\>,' .
-	\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,'
+	\ '\<\%(fu\%[nction]\|def\)!\=\s\+\S\+\s*(:\%(\%(^\||\)\s*\)\@<=\<retu\%[rn]\>:\%(\%(^\||\)\s*\)\@<=\<\%(endf\%[unction]\|enddef\)\>,' ..
+	\ '\<\%(wh\%[ile]\|for\)\>:\%(\%(^\||\)\s*\)\@<=\<brea\%[k]\>:\%(\%(^\||\)\s*\)\@<=\<con\%[tinue]\>:\%(\%(^\||\)\s*\)\@<=\<end\%(w\%[hile]\|fo\%[r]\)\>,' ..
+	\ '\<if\>:\%(\%(^\||\)\s*\)\@<=\<el\%[seif]\>:\%(\%(^\||\)\s*\)\@<=\<en\%[dif]\>,' ..
+	\ '{:},' ..
+	\ '\<try\>:\%(\%(^\||\)\s*\)\@<=\<cat\%[ch]\>:\%(\%(^\||\)\s*\)\@<=\<fina\%[lly]\>:\%(\%(^\||\)\s*\)\@<=\<endt\%[ry]\>,' ..
+	\ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' ..
+	\ '\<class\>:\<endclass\>,' ..
+	\ '\<inte\%[rface]\>:\<endinterface\>,' ..
+	\ '\<enu\%[m]\>:\<endenum\>,'
+
   " Ignore syntax region commands and settings, any 'en*' would clobber
   " if-endif.
   " - set spl=de,en
   " - au! FileType javascript syntax region foldBraces start=/{/ end=/}/ …
-  let b:match_skip = 'synIDattr(synID(line("."),col("."),1),"name")
-        \ =~? "comment\\|string\\|vimLetHereDoc\\|vimSynReg\\|vimSet"'
+  " Also ignore here-doc and dictionary keys (vimVar).
+  let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
+	\ =~? "comment\\|string\\|vimSynReg\\|vimSet\\|vimLetHereDoc\\|vimVar"'
 endif
 
 let &cpo = s:cpo_save
diff --git a/runtime/indent/fish.vim b/runtime/indent/fish.vim
new file mode 100644
index 0000000..7455287
--- /dev/null
+++ b/runtime/indent/fish.vim
@@ -0,0 +1,82 @@
+" Vim indent file
+" Language:     fish
+" Maintainer:   Nicholas Boyle (github.com/nickeb96)
+" Repository:   https://github.com/nickeb96/fish.vim
+" Last Change:  February 4, 2023
+
+if exists("b:did_indent")
+    finish
+endif
+let b:did_indent = 1
+
+setlocal indentexpr=GetFishIndent(v:lnum)
+setlocal indentkeys+==end,=else,=case
+
+function s:PrevCmdStart(linenum)
+    let l:linenum = a:linenum
+    " look for the first line that isn't a line continuation
+    while l:linenum > 1 && getline(l:linenum - 1) =~# '\\$'
+        let l:linenum = l:linenum - 1
+    endwhile
+    return l:linenum
+endfunction
+
+function GetFishIndent(lnum)
+    let l:shiftwidth = shiftwidth()
+
+    let l:prevlnum = prevnonblank(a:lnum - 1)
+    if l:prevlnum ==# 0
+        return 0
+    endif
+
+    " if the previous line ended with a line continuation
+    if getline(a:lnum - 1) =~# '\\$'
+        if a:lnum ==# 0 || getline(a:lnum - 2) !~# '\\$'
+            " this is the first line continuation in a chain, so indent it
+            return indent(a:lnum - 1) + l:shiftwidth
+        else
+            " use the same indentation as the previous continued line
+            return indent(a:lnum - 1)
+        endif
+    endif
+
+    let l:prevlnum = s:PrevCmdStart(l:prevlnum)
+
+    let l:prevline = getline(l:prevlnum)
+    if l:prevline =~# '^\s*\(begin\|if\|else\|while\|for\|function\|case\|switch\)\>'
+        let l:indent = l:shiftwidth
+    else
+        let l:indent = 0
+    endif
+
+    let l:line = getline(a:lnum)
+    if l:line =~# '^\s*end\>'
+        " find end's matching start
+        let l:depth = 1
+        let l:currentlnum = a:lnum
+        while l:depth > 0 && l:currentlnum > 0
+            let l:currentlnum = s:PrevCmdStart(prevnonblank(l:currentlnum - 1))
+            let l:currentline = getline(l:currentlnum)
+            if l:currentline =~# '^\s*end\>'
+                let l:depth = l:depth + 1
+            elseif l:currentline =~# '^\s*\(begin\|if\|while\|for\|function\|switch\)\>'
+                let l:depth = l:depth - 1
+            endif
+        endwhile
+        if l:currentline =~# '^\s*switch\>'
+            return indent(l:currentlnum)
+        else
+            return indent(l:prevlnum) + l:indent - l:shiftwidth
+        endif
+    elseif l:line =~# '^\s*else\>'
+        return indent(l:prevlnum) + l:indent - l:shiftwidth
+    elseif l:line =~# '^\s*case\>'
+        if getline(l:prevlnum) =~# '^\s*switch\>'
+            return indent(l:prevlnum) + l:indent
+        else
+            return indent(l:prevlnum) + l:indent - l:shiftwidth
+        endif
+    else
+        return indent(l:prevlnum) + l:indent
+    endif
+endfunction
diff --git a/runtime/indent/vim.vim b/runtime/indent/vim.vim
index 2cb3237..7b45d41 100644
--- a/runtime/indent/vim.vim
+++ b/runtime/indent/vim.vim
@@ -3,7 +3,7 @@
 # Vim indent file
 # Language:	Vim script
 # Maintainer:	Bram Moolenaar <Bram@vim.org>
-# Last Change:	2022 Oct 5
+# Last Change:	2023 Feb 02
 
 # Only load this indent file when no other was loaded.
 if exists('b:did_indent')
@@ -16,7 +16,7 @@
 import autoload '../autoload/dist/vimindent.vim'
 
 setlocal indentexpr=vimindent.Expr()
-setlocal indentkeys+==endif,=enddef,=endfu,=endfor,=endwh,=endtry,=},=else,=cat,=finall,=END,0\\
+setlocal indentkeys+==endif,=enddef,=endfu,=endfor,=endwh,=endtry,=endclass,=endinterface,=endenum,=},=else,=cat,=finall,=END,0\\
 execute('setlocal indentkeys+=0=\"\\\ ,0=#\\\ ')
 setlocal indentkeys-=0#
 setlocal indentkeys-=:
diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim
index 69900c7..cbb3b36 100644
--- a/runtime/syntax/debsources.vim
+++ b/runtime/syntax/debsources.vim
@@ -2,7 +2,7 @@
 " Language:     Debian sources.list
 " Maintainer:   Debian Vim Maintainers
 " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
-" Last Change: 2023 Jan 16
+" Last Change: 2023 Feb 06
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debsources.vim
 
 " Standard syntax initialization
@@ -14,7 +14,9 @@
 syn case match
 
 " A bunch of useful keywords
-syn match debsourcesKeyword        /\(deb-src\|deb\|main\|contrib\|non-free\|non-free-firmware\|restricted\|universe\|multiverse\)/
+syn match debsourcesType               /\(deb-src\|deb\)/
+syn match debsourcesFreeComponent      /\(main\|universe\)/
+syn match debsourcesNonFreeComponent   /\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)/
 
 " Match comments
 syn match debsourcesComment        /#.*/  contains=@Spell
@@ -48,7 +50,9 @@
 
 " Associate our matches and regions with pretty colours
 hi def link debsourcesLine                    Error
-hi def link debsourcesKeyword                 Statement
+hi def link debsourcesType                    Statement
+hi def link debsourcesFreeComponent           Statement
+hi def link debsourcesNonFreeComponent        Statement
 hi def link debsourcesDistrKeyword            Type
 hi def link debsourcesUnsupportedDistrKeyword WarningMsg
 hi def link debsourcesComment                 Comment
diff --git a/runtime/syntax/dosbatch.vim b/runtime/syntax/dosbatch.vim
index f003a65..a75771b 100644
--- a/runtime/syntax/dosbatch.vim
+++ b/runtime/syntax/dosbatch.vim
@@ -1,12 +1,12 @@
 " Vim syntax file
-" Language:	MS-DOS batch file (with NT command extensions)
-" Maintainer:	Mike Williams <mrw@eandem.co.uk>
+" Language:	MS-DOS/Windows batch file (with NT command extensions)
+" Maintainer:	Mike Williams <mrmrdubya@gmail.com>
 " Filenames:    *.bat
-" Last Change:	6th September 2009
-" Web Page:     http://www.eandem.co.uk/mrw/vim
+" Last Change:	12th February 2023
 "
 " Options Flags:
 " dosbatch_cmdextversion	- 1 = Windows NT, 2 = Windows 2000 [default]
+" dosbatch_colons_comment       - any value to treat :: as comment line
 "
 
 " quit when a syntax file was already loaded
@@ -92,7 +92,11 @@
 syn match dosbatchComment	"^@rem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 syn match dosbatchComment	"\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 syn match dosbatchComment	"\s@rem\($\|\s.*$\)"lc=5 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
-syn match dosbatchComment	"\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+if exists("dosbatch_colons_comment")
+  syn match dosbatchComment	"\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+else
+  syn match dosbatchError       "\s*:\s*:.*$"
+endif
 
 " Comments in ()'s - still to handle spaces before rem
 syn match dosbatchComment	"(rem\([^)]\|\^\@<=)\)*"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
@@ -110,34 +114,35 @@
 " Define the default highlighting.
 " Only when an item doesn't have highlighting yet
 
-hi def link dosbatchTodo		Todo
+hi def link dosbatchTodo	Todo
+hi def link dosbatchError	Error
 
 hi def link dosbatchStatement	Statement
 hi def link dosbatchCommands	dosbatchStatement
-hi def link dosbatchLabel		Label
+hi def link dosbatchLabel	Label
 hi def link dosbatchConditional	Conditional
-hi def link dosbatchRepeat		Repeat
+hi def link dosbatchRepeat	Repeat
 
-hi def link dosbatchOperator       Operator
-hi def link dosbatchEchoOperator   dosbatchOperator
-hi def link dosbatchIfOperator     dosbatchOperator
+hi def link dosbatchOperator	Operator
+hi def link dosbatchEchoOperator dosbatchOperator
+hi def link dosbatchIfOperator	dosbatchOperator
 
 hi def link dosbatchArgument	Identifier
-hi def link dosbatchIdentifier     Identifier
+hi def link dosbatchIdentifier	Identifier
 hi def link dosbatchVariable	dosbatchIdentifier
 
 hi def link dosbatchSpecialChar	SpecialChar
-hi def link dosbatchString		String
-hi def link dosbatchNumber		Number
+hi def link dosbatchString	String
+hi def link dosbatchNumber	Number
 hi def link dosbatchInteger	dosbatchNumber
 hi def link dosbatchHex		dosbatchNumber
-hi def link dosbatchBinary		dosbatchNumber
-hi def link dosbatchOctal		dosbatchNumber
+hi def link dosbatchBinary	dosbatchNumber
+hi def link dosbatchOctal	dosbatchNumber
 
 hi def link dosbatchComment	Comment
 hi def link dosbatchImplicit	Function
 
-hi def link dosbatchSwitch		Special
+hi def link dosbatchSwitch	Special
 
 hi def link dosbatchCmd		PreProc
 
diff --git a/runtime/syntax/fish.vim b/runtime/syntax/fish.vim
new file mode 100644
index 0000000..266878b
--- /dev/null
+++ b/runtime/syntax/fish.vim
@@ -0,0 +1,225 @@
+" Vim syntax file
+" Language:     fish
+" Maintainer:   Nicholas Boyle (github.com/nickeb96)
+" Repository:   https://github.com/nickeb96/fish.vim
+" Last Change:  February 1, 2023
+
+if exists("b:current_syntax")
+    finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+
+" Statements
+syn cluster fishStatement contains=fishKeywordAndOr,fishNot,fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand,fishVariable
+
+syn keyword fishKeywordAndOr and or nextgroup=fishNot,fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand
+hi def link fishKeywordAndOr fishOperator
+
+syn keyword fishNot not skipwhite nextgroup=fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand
+syn match   fishNot /!/ skipwhite nextgroup=fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand
+hi def link fishNot fishOperator
+
+syn keyword fishSelectStatement command builtin skipwhite nextgroup=fishKeyword,fishKeywordIf,fishCommand,fishOption
+hi def link fishSelectStatement fishKeyword
+
+syn keyword fishKeyword end skipwhite nextgroup=@fishTerminator
+
+syn keyword fishKeywordIf if skipwhite nextgroup=@fishStatement
+syn keyword fishKeyword else skipwhite nextgroup=fishKeywordIf,fishSemicolon
+hi def link fishKeywordIf fishKeyword
+
+syn keyword fishKeyword switch skipwhite nextgroup=@fishArgument
+syn keyword fishKeyword case skipwhite nextgroup=@fishArgument
+
+syn keyword fishKeyword while skipwhite nextgroup=@fishStatement
+
+syn keyword fishKeyword for skipwhite nextgroup=fishForVariable
+syn match   fishForVariable /[[:alnum:]_]\+/ contained skipwhite nextgroup=fishKeywordIn
+syn keyword fishKeywordIn in contained skipwhite nextgroup=@fishArgument
+hi def link fishForVariable fishParameter
+hi def link fishKeywordIn fishKeyword
+
+syn keyword fishKeyword _ abbr argparse begin bg bind block break breakpoint cd commandline
+    \ complete continue count disown echo emit eval exec exit false fg function functions
+    \ history jobs math printf pwd random read realpath return set set_color source status
+    \ string test time true type ulimit wait
+    \ skipwhite nextgroup=@fishNext
+syn match   fishKeyword /\<contains\>/ skipwhite nextgroup=@fishNext
+
+syn match   fishCommand /[[:alnum:]_\/[][[:alnum:]+._-]*/ skipwhite nextgroup=@fishNext
+
+
+" Internally Nested Arguments
+
+syn cluster fishSubscriptArgs contains=fishInnerVariable,fishIndexNum,fishIndexRange,fishInnerCommandSub
+
+syn match   fishInnerVariable /\$\+[[:alnum:]_]\+/ contained
+syn match   fishInnerVariable /\$\+[[:alnum:]_]\+\[/me=e-1,he=e-1 contained nextgroup=fishInnerSubscript
+hi def link fishInnerVariable fishVariable
+
+syn region  fishInnerSubscript matchgroup=fishVariable start=/\[/ end=/]/ contained
+    \ keepend contains=@fishSubscriptArgs
+hi def link fishInnerSubscript fishSubscript
+
+syn match   fishIndexNum /[+-]?[[:digit:]]\+/ contained
+hi def link fishIndexNum fishParameter
+
+syn match   fishIndexRange /\.\./ contained
+hi def link fishIndexRange fishParameter
+
+syn region  fishInnerCommandSub matchgroup=fishOperator start=/(/ start=/\$(/ end=/)/ contained
+    \ contains=@fishStatement
+hi def link fishInnerCommandSub fishCommandSub
+
+syn region  fishQuotedCommandSub matchgroup=fishOperator start=/\$(/ end=/)/ contained
+    \ contains=@fishStatement
+hi def link fishQuotedCommandSub fishCommandSub
+
+syn match   fishBraceExpansionComma /,/ contained
+hi def link fishBraceExpansionComma fishOperator
+
+syn match   fishBracedParameter '[[:alnum:]\u5b\u5d@:=+.%/!_-]\+' contained contains=fishInnerPathGlob
+hi def link fishBracedParameter fishParameter
+
+syn region  fishBracedQuote start=/'/ skip=/\\'/ end=/'/ contained
+    \ contains=fishEscapedEscape,fishEscapedSQuote
+syn region  fishBracedQuote start=/"/ skip=/\\"/ end=/"/ contained
+    \ contains=fishEscapedEscape,fishEscapedDQuote,fishEscapedDollar,fishInnerVariable,fishInnerCommandSub
+hi def link fishBracedQuote fishQuote
+
+
+" Arguments
+
+syn cluster fishArgument contains=fishParameter,fishOption,fishVariable,fishPathGlob,fishBraceExpansion,fishQuote,fishCharacter,fishCommandSub,fishRedirection,fishSelfPid
+
+syn match   fishParameter '[[:alnum:]\u5b\u5d@:=+.,%/!_-]\+' contained skipwhite nextgroup=@fishNext
+
+syn match   fishOption /-[[:alnum:]=_-]*/ contained skipwhite nextgroup=@fishNext
+
+syn match   fishPathGlob /\(\~\|*\|?\)/ contained skipwhite nextgroup=@fishNext
+
+syn region  fishBraceExpansion matchgroup=fishOperator start=/{/ end=/}/ contained
+    \ contains=fishBraceExpansionComma,fishInnerVariable,fishInnerCommandSub,fishBracedParameter,fishBracedQuote
+    \ skipwhite nextgroup=@fishNext
+
+syn match   fishVariable /\$\+[[:alnum:]_]\+/ skipwhite nextgroup=@fishNext
+syn match   fishVariable /\$\+[[:alnum:]_]\+\[/me=e-1,he=e-1 nextgroup=fishSubscript
+
+syn region  fishSubscript matchgroup=fishVariable start=/\[/ end=/]/ contained
+    \ keepend contains=@fishSubscriptArgs
+    \ skipwhite nextgroup=@fishNext
+
+syn region  fishCommandSub matchgroup=fishOperator start=/(/ start=/\$(/ end=/)/ contained
+    \ contains=@fishStatement
+    \ skipwhite nextgroup=@fishNext
+
+syn region  fishQuote start=/'/ skip=/\\'/ end=/'/ contained
+    \ contains=fishEscapedEscape,fishEscapedSQuote
+    \ skipwhite nextgroup=@fishNext
+syn region  fishQuote start=/"/ skip=/\\"/ end=/"/ contained
+    \ contains=fishEscapedEscape,fishEscapedDQuote,fishEscapedDollar,fishInnerVariable,fishQuotedCommandSub
+    \ skipwhite nextgroup=@fishNext
+
+syn match   fishEscapedEscape /\\\\/ contained
+syn match   fishEscapedSQuote /\\'/ contained
+syn match   fishEscapedDQuote /\\"/ contained
+syn match   fishEscapedDollar /\\\$/ contained
+hi def link fishEscapedEscape fishCharacter
+hi def link fishEscapedSQuote fishCharacter
+hi def link fishEscapedDQuote fishCharacter
+hi def link fishEscapedDollar fishCharacter
+
+syn match   fishCharacter /\\[0-7]\{1,3}/                          contained skipwhite nextgroup=@fishNext
+syn match   fishCharacter /\\u[0-9a-fA-F]\{4}/                     contained skipwhite nextgroup=@fishNext
+syn match   fishCharacter /\\U[0-9a-fA-F]\{8}/                     contained skipwhite nextgroup=@fishNext
+syn match   fishCharacter /\\x[0-7][0-9a-fA-F]\|\\x[0-9a-fA-F]/    contained skipwhite nextgroup=@fishNext
+syn match   fishCharacter /\\X[0-9a-fA-F]\{1,2}/                   contained skipwhite nextgroup=@fishNext
+syn match   fishCharacter /\\[abcefnrtv[\](){}<>\\*?~%#$|&;'" ]/   contained skipwhite nextgroup=@fishNext
+
+syn match   fishRedirection /</ contained skipwhite nextgroup=fishRedirectionTarget
+syn match   fishRedirection /[0-9&]\?>[>?]\?/ contained skipwhite nextgroup=fishRedirectionTarget
+syn match   fishRedirection /[0-9&]\?>&[0-9-]/ contained skipwhite nextgroup=@fishNext
+
+syn match   fishRedirectionTarget /[[:alnum:]$~*?{,}"'\/._-]\+/ contained contains=fishInnerVariable skipwhite nextgroup=@fishNext
+hi def link fishRedirectionTarget fishRedirection
+
+syn match fishSelfPid /%self\>/ contained nextgroup=@fishNext
+hi def link fishSelfPid fishOperator
+
+
+" Terminators
+
+syn cluster fishTerminator contains=fishPipe,fishBackgroundJob,fishSemicolon,fishSymbolicAndOr
+
+syn match   fishPipe /\(1>\|2>\|&\)\?|/ contained skipwhite nextgroup=@fishStatement
+hi def link fishPipe fishEnd
+
+syn match   fishBackgroundJob /&$/ contained skipwhite nextgroup=@fishStatement
+syn match   fishBackgroundJob /&[^<>&|]/me=s+1,he=s+1 contained skipwhite nextgroup=@fishStatement
+hi def link fishBackgroundJob fishEnd
+
+syn match   fishSemicolon /;/ skipwhite nextgroup=@fishStatement
+hi def link fishSemicolon fishEnd
+
+syn match   fishSymbolicAndOr /\(&&\|||\)/ contained skipwhite skipempty nextgroup=@fishStatement
+hi def link fishSymbolicAndOr fishOperator
+
+
+" Other
+
+syn cluster fishNext contains=fishEscapedNl,@fishArgument,@fishTerminator
+
+syn match   fishEscapedNl /\\$/ skipnl skipwhite contained nextgroup=@fishNext
+
+syn match   fishComment /#.*/ contains=fishTodo,@Spell
+
+syn keyword fishTodo TODO contained
+
+
+
+syn sync minlines=200
+syn sync maxlines=300
+
+
+" Intermediate highlight groups matching $fish_color_* variables
+
+hi def link fishCommand                 fish_color_command
+hi def link fishComment                 fish_color_comment
+hi def link fishEnd                     fish_color_end
+hi def link fishCharacter               fish_color_escape
+hi def link fishKeyword                 fish_color_keyword
+hi def link fishEscapedNl               fish_color_normal
+hi def link fishOperator                fish_color_operator
+hi def link fishVariable                fish_color_operator
+hi def link fishInnerVariable           fish_color_operator
+hi def link fishPathGlob                fish_color_operator
+hi def link fishOption                  fish_color_option
+hi def link fishParameter               fish_color_param
+hi def link fishQuote                   fish_color_quote
+hi def link fishRedirection             fish_color_redirection
+
+
+" Default highlight groups 
+
+hi def link fish_color_param        Normal
+hi def link fish_color_normal       Normal
+hi def link fish_color_option       Normal
+hi def link fish_color_command      Function
+hi def link fish_color_keyword      Keyword
+hi def link fish_color_end          Delimiter
+hi def link fish_color_operator     Operator
+hi def link fish_color_redirection  Type
+hi def link fish_color_quote        String
+hi def link fish_color_escape       Character
+hi def link fish_color_comment      Comment
+
+hi def link fishTodo                Todo
+
+
+let b:current_syntax = 'fish'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/fstab.vim b/runtime/syntax/fstab.vim
index 7e18c26..91150bc 100644
--- a/runtime/syntax/fstab.vim
+++ b/runtime/syntax/fstab.vim
@@ -2,8 +2,8 @@
 " Language: fstab file
 " Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
 " URL: https://raw.github.com/rid9/vim-fstab/master/syntax/fstab.vim
-" Last Change: 2022 Dec 11
-" Version: 1.6.2
+" Last Change: 2023 Feb 19
+" Version: 1.6.3
 "
 " Credits:
 "   David Necas (Yeti) <yeti@physics.muni.cz>
@@ -389,7 +389,7 @@
 syn match fsDevice /^\s*\zs.\{-1,}\s/me=e-1 nextgroup=fsMountPoint contains=@fsDeviceCluster,@fsGeneralCluster
 syn match fsMountPoint /\s\+.\{-}\s/me=e-1 nextgroup=fsType contains=@fsMountPointCluster,@fsGeneralCluster contained
 syn match fsType /\s\+.\{-}\s/me=e-1 nextgroup=fsOptions contains=@fsTypeCluster,@fsGeneralCluster contained
-syn match fsOptions /\s\+.\{-}\s/me=e-1 nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained
+syn match fsOptions /\s\+.\{-}\%(\s\|$\)/ nextgroup=fsFreqPass contains=@fsOptionsCluster,@fsGeneralCluster contained
 syn match fsFreqPass /\s\+.\{-}$/ contains=@fsFreqPassCluster,@fsGeneralCluster contained
 
 " Whole line comments
@@ -491,4 +491,4 @@
 let &cpo = s:cpo_save
 unlet s:cpo_save
 
-" vim: ts=8 ft=vim
+" vim: ts=8 noet ft=vim
diff --git a/runtime/syntax/go.vim b/runtime/syntax/go.vim
index 904c8ad..bf967fd 100644
--- a/runtime/syntax/go.vim
+++ b/runtime/syntax/go.vim
@@ -5,7 +5,7 @@
 " go.vim: Vim syntax file for Go.
 " Language:             Go
 " Maintainer:           Billie Cleek <bhcleek@gmail.com>
-" Latest Revision:      2022-11-17
+" Latest Revision:      2023-02-19
 " License:              BSD-style. See LICENSE file in source repository.
 " Repository:           https://github.com/fatih/vim-go
 
@@ -136,8 +136,11 @@
 syn keyword     goPredefinedIdentifiers    nil iota
 
 hi def link     goBuiltins                 Identifier
+hi def link     goPredefinedIdentifiers    Constant
+" Boolean links to Constant by default by vim: goBoolean and goPredefinedIdentifiers
+" will be highlighted the same, but having the separate groups allows users to
+" have separate highlighting for them if they desire.
 hi def link     goBoolean                  Boolean
-hi def link     goPredefinedIdentifiers    goBoolean
 
 " Comments; their contents
 syn keyword     goTodo              contained TODO FIXME XXX BUG
diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim
index 605db3a..82c829a 100644
--- a/runtime/syntax/html.vim
+++ b/runtime/syntax/html.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Doug Kearns <dougkearns@gmail.com>
 " Previous Maintainers: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
 "			Claudio Fleiner <claudio@fleiner.com>
-" Last Change:		2022 Nov 18
+" Last Change:		2023 Feb 20
 
 " Please check :help html.vim for some comments and a description of the options
 
@@ -221,7 +221,7 @@
   " JAVA SCRIPT
   syn include @htmlJavaScript syntax/javascript.vim
   unlet b:current_syntax
-  syn region  javaScript start=+<script\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
+  syn region  javaScript start=+<script\>\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
   syn region  htmlScriptTag	contained start=+<script+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
   hi def link htmlScriptTag htmlTag
 
diff --git a/runtime/syntax/poefilter.vim b/runtime/syntax/poefilter.vim
index f7e9203..6561f7a 100644
--- a/runtime/syntax/poefilter.vim
+++ b/runtime/syntax/poefilter.vim
@@ -2,7 +2,7 @@
 " Language:	PoE item filter
 " Maintainer:	ObserverOfTime <chronobserver@disroot.org>
 " Filenames:	*.filter
-" Last Change:	2022 Oct 07
+" Last Change:	2023 Feb 10
 
 if exists('b:current_syntax')
     finish
@@ -17,7 +17,7 @@
 syn match poefilterComment /#.*$/ contains=poefilterTodo,poefilterCommentTag,@Spell
 
 " Blocks
-syn keyword poefilterBlock Show Hide
+syn keyword poefilterBlock Show Hide Minimal
 
 " Conditions
 syn keyword poefilterCondition
