diff --git a/runtime/ftplugin/fish.vim b/runtime/ftplugin/fish.vim index 55d7ea8dd9..685ff4d170 100644 --- a/runtime/ftplugin/fish.vim +++ b/runtime/ftplugin/fish.vim @@ -5,10 +5,15 @@ " Last Change: February 1, 2023 " 2023 Aug 28 by Vim Project (undo_ftplugin) " 2024 May 23 by Riley Bruins ('commentstring') +" 2026 Mar 16 by Phạm Bình An (add matchit support) if exists("b:did_ftplugin") finish endif + +let s:saved_cpo = &cpo +set cpo-=C + let b:did_ftplugin = 1 setlocal iskeyword=@,48-57,_,192-255,-,. @@ -17,3 +22,20 @@ setlocal commentstring=#\ %s setlocal formatoptions+=crjq let b:undo_ftplugin = "setl cms< com< fo< isk<" + +" Define patterns for the matchit plugin +if exists("loaded_matchit") && !exists("b:match_words") + let b:match_words = + \ '\<\%(else\s\+\)\@\|\<\%(switch\|begin\|function\|while\|for\)\>:' .. + \ '\\|\:' .. + \ '\' + + let b:match_ignorecase = 0 + let b:match_skip = "S:keyword" + + let b:undo_ftplugin ..= " | unlet! b:match_words b:match_ignorecase b:match_skip" +endif + +" Restore 'cpo' to its original value +let &cpo = s:saved_cpo +unlet s:saved_cpo