changeset 20965:59f93c2d2551

Update runtime files Commit: https://github.com/vim/vim/commit/73fef33014dbf21fc59e7e47fb091117868d82fb Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 21 22:12:03 2020 +0200 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Sun, 21 Jun 2020 22:15:04 +0200
parents be672fa6d129
children 0ee7de260208
files runtime/doc/eval.txt runtime/doc/mlang.txt runtime/doc/tags runtime/doc/testing.txt runtime/doc/todo.txt runtime/doc/usr_11.txt runtime/doc/usr_46.txt runtime/doc/usr_toc.txt runtime/doc/vim9.txt runtime/filetype.vim runtime/ftplugin/vim.vim runtime/indent/html.vim runtime/indent/testdir/html.in runtime/indent/testdir/html.ok runtime/plugin/matchparen.vim
diffstat 15 files changed, 105 insertions(+), 59 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2020 Jun 14
+*eval.txt*	For Vim version 8.2.  Last change: 2020 Jun 17
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3667,7 +3667,7 @@ complete_info([{what}])
 		   "function"	     User defined completion |i_CTRL-X_CTRL-U|
 		   "omni"	     Omni completion |i_CTRL-X_CTRL-O|
 		   "spell"	     Spelling suggestions |i_CTRL-X_s|
-		   "eval"            |complete()| completion
+		   "eval"	     |complete()| completion
 		   "unknown"	     Other internal modes
 
 		If the optional {what} list argument is supplied, then only
@@ -4536,7 +4536,7 @@ flatten({list} [, {maxdepth}])					*flat
 		a very large number.
 		The {list} is changed in place, make a copy first if you do
 		not want that.
-							        *E900*
+								*E900*
 		{maxdepth} means how deep in nested lists changes are made.
 		{list} is not modified when {maxdepth} is 0.
 		{maxdepth} must be positive number.
@@ -5163,7 +5163,7 @@ getcompletion({pat}, {type} [, {filtered
 		highlight	highlight groups
 		history		:history suboptions
 		locale		locale names (as output of locale -a)
-		mapclear        buffer argument
+		mapclear	buffer argument
 		mapping		mapping name
 		menu		menus
 		messages	|:messages| suboptions
@@ -5189,7 +5189,7 @@ getcompletion({pat}, {type} [, {filtered
 		If {type} is "cmdline", then the |cmdline-completion| result is
 		returned.  For example, to complete the possible values after
 		a ":call" command: >
-                	echo getcompletion('call ', 'cmdline')
+			echo getcompletion('call ', 'cmdline')
 <
 		If there are no matches, an empty list is returned.  An
 		invalid value for {type} produces an error.
@@ -5770,8 +5770,8 @@ getwininfo([{winid}])					*getwininfo()*
 		Returns information about windows as a List with Dictionaries.
 
 		If {winid} is given Information about the window with that ID
-		is returned.  If the window does not exist the result is an
-		empty list.
+		is returned, as a List with one item.  If the window does not
+		exist the result is an empty list.
 
 		Without {winid} information about all the windows in all the
 		tab pages is returned.
@@ -8606,14 +8606,14 @@ searchcount([{options}])					*searchcoun
 			    if result.total > result.maxcount &&
 			    \  result.current > result.maxcount
 			      return printf(' /%s [>%d/>%d]', @/,
-			      \             result.current, result.total)
+			      \		    result.current, result.total)
 			    elseif result.total > result.maxcount
 			      return printf(' /%s [%d/>%d]', @/,
-			      \             result.current, result.total)
+			      \		    result.current, result.total)
 			    endif
 			  endif
 			  return printf(' /%s [%d/%d]', @/,
-			  \             result.current, result.total)
+			  \		result.current, result.total)
 			endfunction
 			let &statusline .= '%{LastSearchCount()}'
 
@@ -9386,7 +9386,9 @@ simplify({filename})					*simplify()*
 		Unix) are not resolved.  If the first path component in
 		{filename} designates the current directory, this will be
 		valid for the result as well.  A trailing path separator is
-		not removed either.
+		not removed either. On Unix "//path" is unchanged, but
+		"///path" is simplified to "/path" (this follows the Posix
+		standard).
 		Example: >
 			simplify("./dir/.././/file/") == "./file/"
 <		Note: The combination "dir/.." is only removed if "dir" is
@@ -9696,7 +9698,7 @@ state([{what}])						*state()*
 		    m	halfway a mapping, :normal command, feedkeys() or
 			stuffed command
 		    o	operator pending or waiting for a command argument,
-		        e.g. after |f|
+			e.g. after |f|
 		    a	Insert mode autocomplete active
 		    x	executing an autocommand
 		    w	blocked on waiting, e.g. ch_evalexpr(), ch_read() and
@@ -10450,9 +10452,9 @@ terminalprops()						*terminalprops()*
 		If the |+termresponse| feature is missing then the result is
 		an empty dictionary.
 
-		If "cursor_style" is 'y' then |t_RS| will be send to request the
+		If "cursor_style" is 'y' then |t_RS| will be sent to request the
 		current cursor style.
-		If "cursor_blink_mode" is 'y' then |t_RC| will be send to
+		If "cursor_blink_mode" is 'y' then |t_RC| will be sent to
 		request the cursor blink status.
 		"cursor_style" and "cursor_blink_mode" are also set if |t_u7|
 		is not empty, Vim will detect the working of sending |t_RS|
@@ -10916,7 +10918,7 @@ win_screenpos({nr})					*win_screenpos()
 			GetWinid()->win_screenpos()
 <
 win_splitmove({nr}, {target} [, {options}])		*win_splitmove()*
-	        Move the window {nr} to a new split of the window {target}.
+		Move the window {nr} to a new split of the window {target}.
 		This is similar to moving to {target}, creating a new window
 		using |:split| but having the same contents as window {nr}, and
 		then closing {nr}.
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -1,4 +1,4 @@
-*mlang.txt*     For Vim version 8.2.  Last change: 2019 May 05
+*mlang.txt*     For Vim version 8.2.  Last change: 2020 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3897,6 +3897,7 @@ E105	mbyte.txt	/*E105*
 E107	eval.txt	/*E107*
 E108	eval.txt	/*E108*
 E109	eval.txt	/*E109*
+E1094	vim9.txt	/*E1094*
 E11	cmdline.txt	/*E11*
 E110	eval.txt	/*E110*
 E111	eval.txt	/*E111*
@@ -5798,6 +5799,7 @@ coding-style	develop.txt	/*coding-style*
 col()	eval.txt	/*col()*
 coldfusion.vim	syntax.txt	/*coldfusion.vim*
 collapse	tips.txt	/*collapse*
+collate-variable	eval.txt	/*collate-variable*
 color-xterm	syntax.txt	/*color-xterm*
 coloring	syntax.txt	/*coloring*
 colortest.vim	syntax.txt	/*colortest.vim*
@@ -9723,6 +9725,7 @@ v:charconvert_from	eval.txt	/*v:charconv
 v:charconvert_to	eval.txt	/*v:charconvert_to*
 v:cmdarg	eval.txt	/*v:cmdarg*
 v:cmdbang	eval.txt	/*v:cmdbang*
+v:collate	eval.txt	/*v:collate*
 v:completed_item	eval.txt	/*v:completed_item*
 v:count	eval.txt	/*v:count*
 v:count1	eval.txt	/*v:count1*
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt*	For Vim version 8.2.  Last change: 2020 Jun 13
+*testing.txt*	For Vim version 8.2.  Last change: 2020 Jun 15
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2020 Jun 14
+*todo.txt*      For Vim version 8.2.  Last change: 2020 Jun 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -40,16 +40,16 @@ browser use: https://github.com/vim/vim/
 
 Include src/po/vim.pot ?
 
+See if resizing a terminal can be fixed.
+
 Vim9 script:
 Making everything work:
-- assignment to script var should check type
-- Compile: let [var, var] = expr
-  share code for :let between compiled and uncompiled?
-- do not allow "let g:var = value", must drop "let"
+- Error for "g:var: string = 'value'" 
+- Make func()->append('$') work - value is last argument, not first. #6305
 - possible memory leak in test_vim9_func through compile_nested_function.
 - memory leaks in test_vim9_expr
 - memory leaks in test_vim9_script
-- Test that a script-local function in Vim9 script cannot be deleted.
+- more return types depending on the first argument, like sort().
 - Check that when sourcing a Vim9 script, only the global items can be used.
 - Make "true" and "false" work in vim9script
 - Test that a function defined inside a :def function is local to that
@@ -240,10 +240,12 @@ Terminal emulator window:
   conversions.
 
 Error numbers available:
-E489, E610, E611, E653, E856, E857, E861
+E489, E610, E611, E653, E856
 
 Remove SPACE_IN_FILENAME ? It is only used for completion.
 
+Patch to use collaction based sorting. (Christian Brabandt, #6229)
+
 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.
 
@@ -272,6 +274,8 @@ The buffer list and windows are locked, 
 How about removing Atari MiNT support?
     src/Make_mint.mak, src/os_mint.h, matches with __MINT__
 
+Patch to make :q work with local arglist. (Christian Brabandt, #6286)
+
 Patch to fix drawing error with DirectX. (James Grant, #5688)
 Causes flicker on resizing. Workaround from Ken Takata.
 How about only setting the attribute when part of the Vim window is offscreen?
@@ -285,6 +289,8 @@ Motif: Build on Ubuntu can't enter any t
 Running test_gui and test_gui_init with Motif sometimes kills the window
 manager.  Problem with Motif?
 
+Patch to add :argdedupe. (Nir Lichtman, #6235)
+
 :map output does not clear the reset of the command line.
 (#5623, also see #5962)
 
@@ -1402,9 +1408,6 @@ the system encoding (usually utf-8).
 MS-Windows: use WS_HIDE instead of SW_SHOWMINNOACTIVE in os_win32.c?
 Otherwise task flickers in taskbar.
 
-Should make ":@r" handle line continuation. (Cesar Romani, 2016 Jun 26)
-Also for ":@.".
-
 Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
 
 Have a way to get the call stack, in a function and from an exception.
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -211,7 +211,7 @@ will automatically delete it:
 - The flag that the file was modified is not set.
 - The process is not running.
 
-You can programatically deal with this situation with the |FileChangedShell|
+You can programmatically deal with this situation with the |FileChangedShell|
 autocommand event.
 
 
--- a/runtime/doc/usr_46.txt
+++ b/runtime/doc/usr_46.txt
@@ -112,7 +112,7 @@ Although it's shorter to do: >
 
 Legacy Vim script does have type checking, but this happens at runtime, when
 the code is executed.  And it's permissive, often a computation gives an
-unexpected value instead of reporting an error .  Thus you can define a
+unexpected value instead of reporting an error.  Thus you can define a
 function and think it's fine, but see a problem only later when it is called: >
 	let s:collected = ''
 	func ExtendAndReturn(add)
@@ -142,7 +142,7 @@ you did wrong: >
 
 Vim9 script is strict, it uses the "+" operator only for numbers and floats.
 For string concatenation ".." must be used.  This avoids mistakes and avoids
-the automatic conversion that gave a suprising result above.  So you change
+the automatic conversion that gave a surprising result above.  So you change
 the first line of the function to: >
 	   s:collected ..= add
 And now it works.
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -1,4 +1,4 @@
-*usr_toc.txt*	For Vim version 8.2.  Last change: 2020 Jun 11
+*usr_toc.txt*	For Vim version 8.2.  Last change: 2020 Jun 15
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -340,6 +340,12 @@ Make Vim work as you like it.
 		|45.4|	Editing files with a different encoding
 		|45.5|	Entering language text
 
+|usr_46.txt|  Write plugins using Vim9 script
+		|46.1|	Introduction
+		|46.2|	Variable declarations
+		|46.3|	Functions and types
+		|46.?|	Using a Vim9 script from legacy script
+
 ==============================================================================
 Making Vim Run ~
 
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2020 Jun 14
+*vim9.txt*	For Vim version 8.2.  Last change: 2020 Jun 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,7 +30,7 @@ THIS IS STILL UNDER DEVELOPMENT - ANYTHI
 
 Vim script has been growing over time, while preserving backwards
 compatibility.  That means bad choices from the past often can't be changed
-and compability with Vi restricts possible solutions.  Execution is quite
+and compatibility with Vi restricts possible solutions.  Execution is quite
 slow, each line is parsed every time it is executed.
 
 The main goal of Vim9 script is to drastically improve performance.  This is
@@ -68,7 +68,7 @@ In Vim script comments normally start wi
 start of a string, thus in many places it cannot be used.  In Vim9 script a
 comment can also start with #.  In Vi this is a command to list text with
 numbers, but you can also use `:number` for that. >
-	let count = 0  # number of occurences
+	let count = 0  # number of occurrences
 
 To improve readability there must be a space between the command and the #
 that starts a comment.  Note that #{ is the start of a dictionary, therefore
@@ -269,6 +269,13 @@ possible AFTER the operators.  For examp
 			PosFunc(arg) :
 			NegFunc(arg)
 
+A special case is "->" for function call chains, it can appear in the next
+line: >
+	let result = GetBuilder()
+			->BuilderSetWidth(333)
+			->BuilderSetHeight(777)
+			->BuilderBuild()
+
 Note that "enddef" cannot be used at the start of a continuation line, it ends
 the current function.
 
@@ -566,7 +573,7 @@ defined (otherwise script-local) items: 
 
 
 Import ~
-							*:import* *:imp*
+						*:import* *:imp* *E1094*
 The exported items can be imported individually in another Vim9 script: >
 	import EXPORTED_CONST from "thatscript.vim"
 	import MyClass from "myclass.vim"
@@ -692,7 +699,7 @@ A, B and C, where A calls B, B calls C, 
 to reorder the functions to avoid forward references.
 
 An alternative would be to first scan through the file to locate items and
-figure out their type, so that forward refeferences are found, and only then
+figure out their type, so that forward references are found, and only then
 execute the script and compile the functions.  This means the script has to be
 parsed twice, which is slower, and some conditions at the script level, such
 as checking if a feature is supported, are hard to use.  An attempt was made
--- 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 Jun 07
+" Last Change:	2020 Jun 15
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -237,7 +237,7 @@ au BufNewFile,BufRead */etc/blkid.tab,*/
 au BufNewFile,BufRead *bsd,*.bsdl		setf bsdl
 
 " Bazel (http://bazel.io)
-autocmd BufRead,BufNewFile *.bzl,WORKSPACE,BUILD.bazel 	setf bzl
+autocmd BufRead,BufNewFile *.bzl,WORKSPACE,BUILD.bazel	setf bzl
 if has("fname_case")
   " There is another check for BUILD further below.
   autocmd BufRead,BufNewFile BUILD		setf bzl
@@ -625,8 +625,8 @@ au BufNewFile,BufRead *.mo,*.gdmo		setf 
 au BufNewFile,BufRead *.ged,lltxxxxx.txt	setf gedcom
 
 " Git
-au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG 	setf gitcommit
-au BufNewFile,BufRead *.git/config,.gitconfig,/etc/gitconfig 	setf gitconfig
+au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG	setf gitcommit
+au BufNewFile,BufRead *.git/config,.gitconfig,/etc/gitconfig	setf gitconfig
 au BufNewFile,BufRead */.config/git/config			setf gitconfig
 au BufNewFile,BufRead .gitmodules,*.git/modules/*/config	setf gitconfig
 if !empty($XDG_CONFIG_HOME)
@@ -770,11 +770,11 @@ au BufNewFile,BufRead *.inf,*.INF		setf 
 au BufNewFile,BufRead */etc/initng/*/*.i,*.ii	setf initng
 
 " Innovation Data Processing
-au BufRead,BufNewFile upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c 	setf upstreamdat
-au BufRead,BufNewFile fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c 	setf upstreamlog
+au BufRead,BufNewFile upstream.dat\c,upstream.*.dat\c,*.upstream.dat\c	setf upstreamdat
+au BufRead,BufNewFile fdrupstream.log,upstream.log\c,upstream.*.log\c,*.upstream.log\c,UPSTREAM-*.log\c	setf upstreamlog
 au BufRead,BufNewFile upstreaminstall.log\c,upstreaminstall.*.log\c,*.upstreaminstall.log\c setf upstreaminstalllog
-au BufRead,BufNewFile usserver.log\c,usserver.*.log\c,*.usserver.log\c 	setf usserverlog
-au BufRead,BufNewFile usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c 	setf usw2kagtlog
+au BufRead,BufNewFile usserver.log\c,usserver.*.log\c,*.usserver.log\c	setf usserverlog
+au BufRead,BufNewFile usw2kagt.log\c,usw2kagt.*.log\c,*.usw2kagt.log\c	setf usw2kagtlog
 
 " Ipfilter
 au BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules	setf ipfilter
@@ -1073,7 +1073,7 @@ au BufNewFile,BufRead Mutt{ng,}rc		setf 
 au BufRead,BufNewfile *.n1ql,*.nql		setf n1ql
 
 " Nano
-au BufNewFile,BufRead */etc/nanorc,*.nanorc  	setf nanorc
+au BufNewFile,BufRead */etc/nanorc,*.nanorc	setf nanorc
 
 " Nastran input/DMAP
 "au BufNewFile,BufRead *.dat			setf nastran
@@ -1156,7 +1156,7 @@ au BufNewFile,BufRead *.dpr			setf pasca
 au BufNewFile,BufRead *.pdf			setf pdf
 
 " PCMK - HAE - crm configure edit
-au BufNewFile,BufRead *.pcmk 			setf pcmk
+au BufNewFile,BufRead *.pcmk			setf pcmk
 
 " Perl
 if has("fname_case")
@@ -1646,10 +1646,10 @@ au BufNewFile,BufRead *.cm			setf voscm
 
 " Swift
 au BufNewFile,BufRead *.swift			setf swift
-au BufNewFile,BufRead *.swift.gyb 		setf swiftgyb
+au BufNewFile,BufRead *.swift.gyb		setf swiftgyb
 
 " Swift Intermediate Language
-au BufNewFile,BufRead *.sil 			setf sil
+au BufNewFile,BufRead *.sil			setf sil
 
 " Sysctl
 au BufNewFile,BufRead */etc/sysctl.conf,*/etc/sysctl.d/*.conf	setf sysctl
@@ -2066,7 +2066,7 @@ au BufNewFile,BufRead *fvwm2rc*
 au BufNewFile,BufRead */tmp/lltmp*		call s:StarSetf('gedcom')
 
 " Git
-au BufNewFile,BufRead */.gitconfig.d/*,/etc/gitconfig.d/* 	call s:StarSetf('gitconfig')
+au BufNewFile,BufRead */.gitconfig.d/*,/etc/gitconfig.d/*	call s:StarSetf('gitconfig')
 
 " Gitolite
 au BufNewFile,BufRead */gitolite-admin/conf/*	call s:StarSetf('gitolite')
--- 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:	2020 May 17
+" Last Change:	2020 Jun 16
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -83,8 +83,7 @@ endif
 if exists("loaded_matchit")
   let b:match_ignorecase = 0
   let b:match_words =
-	\ '\<fu\%[nction]\>:\<retu\%[rn]\>:\<endf\%[unction]\>,' .
-	\ '\<def\>:\<retu\%[rn]\>:\<enddef\>,' .
+	\ '\<\%(fu\%[nction]\|def\)\>:\<retu\%[rn]\>:\<\%(endf\%[unction]\|enddef\)\>,' .
  	\ '\<\(wh\%[ile]\|for\)\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<end\(w\%[hile]\|fo\%[r]\)\>,' .
 	\ '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>,' .
 	\ '{:},' .
--- a/runtime/indent/html.vim
+++ b/runtime/indent/html.vim
@@ -2,7 +2,7 @@
 " Header: "{{{
 " Maintainer:	Bram Moolenaar
 " Original Author: Andy Wokula <anwoku@yahoo.de>
-" Last Change:	2019 Mar 20
+" Last Change:	2020 Jun 18
 " Version:	1.0
 " Description:	HTML indent script with cached state for faster indenting on a
 "		range of lines.
@@ -223,7 +223,7 @@ endfunc "}}}
 call s:AddITags(s:indent_tags, [
     \ 'a', 'abbr', 'acronym', 'address', 'b', 'bdo', 'big',
     \ 'blockquote', 'body', 'button', 'caption', 'center', 'cite', 'code',
-    \ 'colgroup', 'del', 'dfn', 'dir', 'div', 'dl', 'em', 'fieldset', 'font',
+    \ 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', 'font',
     \ 'form', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'html',
     \ 'i', 'iframe', 'ins', 'kbd', 'label', 'legend', 'li',
     \ 'map', 'menu', 'noframes', 'noscript', 'object', 'ol',
--- a/runtime/indent/testdir/html.in
+++ b/runtime/indent/testdir/html.in
@@ -23,4 +23,14 @@ bar">
 text
 </div>
 
+<dl>
+<dd>
+dd text
+</dd>
+<dt>
+dt text
+</dt>
+</dl>
+
+
 " END_INDENT
--- a/runtime/indent/testdir/html.ok
+++ b/runtime/indent/testdir/html.ok
@@ -23,4 +23,14 @@
     text
 </div>
 
+<dl>
+    <dd>
+	dd text
+    </dd>
+    <dt>
+	dt text
+    </dt>
+</dl>
+
+
 " END_INDENT
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
 " Vim plugin for showing matching parens
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2019 Oct 28
+" Last Change: 2020 Jun 18
 
 " Exit quickly when:
 " - this plugin was already loaded (or disabled)
@@ -21,6 +21,7 @@ endif
 augroup matchparen
   " Replace all matchparen autocommands
   autocmd! CursorMoved,CursorMovedI,WinEnter * call s:Highlight_Matching_Pair()
+  autocmd! WinLeave * call s:Remove_Matches()
   if exists('##TextChanged')
     autocmd! TextChanged,TextChangedI * call s:Highlight_Matching_Pair()
   endif
@@ -38,10 +39,7 @@ set cpo-=C
 " for any matching paren.
 func s:Highlight_Matching_Pair()
   " Remove any previous match.
-  if exists('w:paren_hl_on') && w:paren_hl_on
-    silent! call matchdelete(3)
-    let w:paren_hl_on = 0
-  endif
+  call s:Remove_Matches()
 
   " Avoid that we remove the popup menu.
   " Return when there are no colors (looks like the cursor jumps).
@@ -195,6 +193,14 @@ func s:Highlight_Matching_Pair()
   endif
 endfunction
 
+func s:Remove_Matches()
+  if exists('w:paren_hl_on') && w:paren_hl_on
+    silent! call matchdelete(3)
+    let w:paren_hl_on = 0
+  endif
+endfunc
+
+
 " Define commands that will disable and enable the plugin.
 command DoMatchParen call s:DoMatchParen()
 command NoMatchParen call s:NoMatchParen()