]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(matchit): Update matchit plugin
authorChristian Brabandt <cb@256bit.org>
Sun, 31 May 2026 21:34:51 +0000 (21:34 +0000)
committerChristian Brabandt <cb@256bit.org>
Sun, 31 May 2026 21:34:51 +0000 (21:34 +0000)
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/pack/dist/opt/matchit/autoload/matchit.vim
runtime/pack/dist/opt/matchit/doc/matchit.txt
runtime/pack/dist/opt/matchit/doc/tags
runtime/pack/dist/opt/matchit/plugin/matchit.vim

index 1e660ffd3e0ec8bd0904c78009396088c31a18af..76148c6e5a887a9ca217b06543a94b44c5e01ec5 100644 (file)
@@ -1,6 +1,6 @@
 "  matchit.vim: (global plugin) Extended "%" matching
 "  autload script of matchit plugin, see ../plugin/matchit.vim
-"  Last Change: Jan 09, 2026
+"  Last Change: June 01, 2026
 
 " Neovim does not support scriptversion
 if has("vimscript-4")
@@ -124,7 +124,7 @@ function matchit#Match_wrapper(word, forward, mode) range
     let s:all = substitute(s:all, s:notslash .. '\zs\\\(:\|,\)', '\1', 'g')
     " Just in case there are too many '\(...)' groups inside the pattern, make
     " sure to use \%(...) groups, so that error E872 can be avoided
-    let s:all = substitute(s:all, '\\(', '\\%(', 'g')
+    let s:all = substitute(s:all, s:notslash .. '\zs\\(', '\\%(', 'g')
     let s:all = '\%(' .. s:all .. '\)'
     if exists("b:match_debug")
       let b:match_pat = s:pat
@@ -339,8 +339,8 @@ fun! s:InsertRefs(groupBR, prefix, group, suffix, matchline)
     if table[d] != "-"
       let backref = substitute(a:matchline, a:prefix .. word .. a:suffix,
         \ '\' .. table[d], "")
-        " Are there any other characters that should be escaped?
-      let backref = escape(backref, '*,:')
+      " escape magic pattern metacharacters and matchit special characters [,:]
+      let backref = escape(backref, '\.*[^$~,:')
       execute s:Ref(ini, d, "start", "len")
       let ini = strpart(ini, 0, start) .. backref .. strpart(ini, start+len)
       let tailBR = substitute(tailBR, s:notslash .. '\zs\\' .. d,
index e82bacdeb03bd46f0c166d4a0ed1cca12debe0a0..31fb4667397488eb111006097decc15736b58743 100644 (file)
@@ -1,4 +1,4 @@
-*matchit.txt* Extended "%" matching  Last change: 2026 Jan 06
+*matchit.txt* Extended "%" matching  Last change: 2026 Jun 01
 
                VIM REFERENCE MANUAL    by Benji Fisher et al
 
@@ -195,14 +195,6 @@ can be defined in the |filetype-plugin| or autocommand that defines
 The main variable is |b:match_words|.  It is described in the section below on
 supporting a new language.
 
-                               *MatchError* *matchit-hl* *matchit-highlight*
-MatchError is the highlight group for error messages from the script.  By
-default, it is linked to WarningMsg.  If you do not want to be bothered by
-error messages, you can define this to be something invisible.  For example,
-if you use the GUI version of Vim and your command line is normally white, you
-can do >
-       :hi MatchError guifg=white guibg=white
-<
                                                *b:match_ignorecase*
 If you >
        :let b:match_ignorecase = 1
index 008c5686d119b7935b689d6ae8608a020fa80808..f86a6721964c701e9b16bcf9185f3a3c5992e467 100644 (file)
@@ -1,7 +1,6 @@
 :MatchDebug    matchit.txt     /*:MatchDebug*
 :MatchDisable  matchit.txt     /*:MatchDisable*
 :MatchEnable   matchit.txt     /*:MatchEnable*
-MatchError     matchit.txt     /*MatchError*
 [%     matchit.txt     /*[%*
 ]%     matchit.txt     /*]%*
 b:match_col    matchit.txt     /*b:match_col*
@@ -29,8 +28,6 @@ matchit-configure     matchit.txt     /*matchit-configure*
 matchit-debug  matchit.txt     /*matchit-debug*
 matchit-details        matchit.txt     /*matchit-details*
 matchit-disable        matchit.txt     /*matchit-disable*
-matchit-highlight      matchit.txt     /*matchit-highlight*
-matchit-hl     matchit.txt     /*matchit-hl*
 matchit-intro  matchit.txt     /*matchit-intro*
 matchit-languages      matchit.txt     /*matchit-languages*
 matchit-modes  matchit.txt     /*matchit-modes*
index 947f530261d5dbda5dbbbb096f53fc8719716cdd..fef2a8ace0bed11bbb6fedf213fe54ad5edfde1c 100644 (file)
@@ -1,7 +1,7 @@
 "  matchit.vim: (global plugin) Extended "%" matching
 "  Maintainer:  Christian Brabandt
-"  Version:     1.21
-"  Last Change: 2024 May 20
+"  Version:     1.22
+"  Last Change: 2026 Jun 01
 "  Repository:  https://github.com/chrisbra/matchit
 "  Previous URL:http://www.vim.org/script.php?script_id=39
 "  Previous Maintainer:  Benji Fisher PhD   <benji@member.AMS.org>
@@ -50,7 +50,7 @@ fun MatchEnable()
   nnoremap <silent> <Plug>(MatchitNormalForward)     :<C-U>call matchit#Match_wrapper('',1,'n')<CR>
   nnoremap <silent> <Plug>(MatchitNormalBackward)    :<C-U>call matchit#Match_wrapper('',0,'n')<CR>
   xnoremap <silent> <Plug>(MatchitVisualForward)     :<C-U>call matchit#Match_wrapper('',1,'v')<CR>
-        \:if col("''") != col("$") \| exe ":normal! m'" \| endif<cr>gv``
+        \:if line("''") != line(".") \|\| col("''") != col("$") \| exe ":normal! m'" \| endif<cr>gv``
   xnoremap <silent> <Plug>(MatchitVisualBackward)    :<C-U>call matchit#Match_wrapper('',0,'v')<CR>m'gv``
   onoremap <silent> <Plug>(MatchitOperationForward)  :<C-U>call matchit#Match_wrapper('',1,'o')<CR>
   onoremap <silent> <Plug>(MatchitOperationBackward) :<C-U>call matchit#Match_wrapper('',0,'o')<CR>