runtime(sh): set b:match_skip to ignore matches for matchit
related: #16801
closes: chrisbra/matchit#50
closes: #16834
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/ftplugin/sh.vim b/runtime/ftplugin/sh.vim
index 54ae73b..0038ee7 100644
--- a/runtime/ftplugin/sh.vim
+++ b/runtime/ftplugin/sh.vim
@@ -6,6 +6,7 @@
" Eisuke Kawashima
" Last Change: 2024 Sep 19 by Vim Project (compiler shellcheck)
" 2024 Dec 29 by Vim Project (improve setting shellcheck compiler)
+" 2025 Mar 09 by Vim Project (set b:match_skip)
if exists("b:did_ftplugin")
finish
@@ -30,7 +31,8 @@
\ s:sol .. '\%(for\|while\)\>:' .. s:sol .. 'done\>,' ..
\ s:sol .. 'case\>:' .. s:sol .. 'esac\>'
unlet s:sol
- let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words"
+ let b:match_skip = "synIDattr(synID(line('.'),col('.'),0),'name') =~ 'shSnglCase'"
+ let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:match_skip"
endif
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")