mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
vim-patch:bd76c89e31ac (#24630)
update matchit (vim/vim#12611)
bd76c89e31
Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
f060f03304
commit
1cf942204f
@ -1,6 +1,6 @@
|
||||
" matchit.vim: (global plugin) Extended "%" matching
|
||||
" autload script of matchit plugin, see ../plugin/matchit.vim
|
||||
" Last Change: Jun 10, 2021
|
||||
" Last Change: Jan 24, 2022
|
||||
|
||||
" Neovim does not support scriptversion
|
||||
if has("vimscript-4")
|
||||
@ -42,6 +42,10 @@ function s:RestoreOptions()
|
||||
let restore_options = " ve=" .. &ve .. restore_options
|
||||
set ve=
|
||||
endif
|
||||
if &smartcase
|
||||
let restore_options = " smartcase " .. restore_options
|
||||
set nosmartcase
|
||||
endif
|
||||
return restore_options
|
||||
endfunction
|
||||
|
||||
@ -134,9 +138,6 @@ function matchit#Match_wrapper(word, forward, mode) range
|
||||
let curcol = match(matchline, regexp)
|
||||
" If there is no match, give up.
|
||||
if curcol == -1
|
||||
" Make sure macros abort properly
|
||||
"exe "norm! \<esc>"
|
||||
call feedkeys("\e", 'tni')
|
||||
return s:CleanUp(restore_options, a:mode, startpos)
|
||||
endif
|
||||
let endcol = matchend(matchline, regexp)
|
||||
@ -756,15 +757,15 @@ endfun
|
||||
fun! s:ParseSkip(str)
|
||||
let skip = a:str
|
||||
if skip[1] == ":"
|
||||
if skip[0] == "s"
|
||||
if skip[0] ==# "s"
|
||||
let skip = "synIDattr(synID(line('.'),col('.'),1),'name') =~? '" ..
|
||||
\ strpart(skip,2) .. "'"
|
||||
elseif skip[0] == "S"
|
||||
elseif skip[0] ==# "S"
|
||||
let skip = "synIDattr(synID(line('.'),col('.'),1),'name') !~? '" ..
|
||||
\ strpart(skip,2) .. "'"
|
||||
elseif skip[0] == "r"
|
||||
elseif skip[0] ==# "r"
|
||||
let skip = "strpart(getline('.'),0,col('.'))=~'" .. strpart(skip,2) .. "'"
|
||||
elseif skip[0] == "R"
|
||||
elseif skip[0] ==# "R"
|
||||
let skip = "strpart(getline('.'),0,col('.'))!~'" .. strpart(skip,2) .. "'"
|
||||
endif
|
||||
endif
|
||||
|
24
runtime/pack/dist/opt/matchit/doc/matchit.txt
vendored
24
runtime/pack/dist/opt/matchit/doc/matchit.txt
vendored
@ -4,7 +4,7 @@ For instructions on installing this file, type
|
||||
`:help matchit-install`
|
||||
inside Vim.
|
||||
|
||||
For Vim version 8.2. Last change: 2021 Dec 24
|
||||
For Vim version 9.0. Last change: 2023 June 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Benji Fisher et al
|
||||
@ -150,8 +150,7 @@ To use the matchit plugin add this line to your |vimrc|: >
|
||||
|
||||
The script should start working the next time you start Vim.
|
||||
|
||||
To use the matchit plugin after startup, you can use this command (note the
|
||||
omitted '!'): >
|
||||
To use the matchit plugin after Vim has started, execute this command: >
|
||||
packadd matchit
|
||||
|
||||
(Earlier versions of the script did nothing unless a |buffer-variable| named
|
||||
@ -175,6 +174,22 @@ fail to skip matching groups in comments and strings. If the |filetype|
|
||||
mechanism is turned off, the |b:match_words| variable will probably not be
|
||||
defined automatically.
|
||||
|
||||
2.1 Temporarily disable the matchit plugin *matchit-disable* *:MatchDisable*
|
||||
|
||||
To temporarily reset the plugins, that are setup you can run the following
|
||||
command: >
|
||||
:MatchDisable
|
||||
|
||||
This will delete all the defined key mappings to the Vim default.
|
||||
Now the "%" command will work like before loading the plugin |%|
|
||||
|
||||
2.2 Re-enable the matchit plugin *:MatchEnable*
|
||||
|
||||
To re-enable the plugin, after it was disabled, use the following command: >
|
||||
:MatchEnable
|
||||
|
||||
This will resetup the key mappings.
|
||||
|
||||
==============================================================================
|
||||
3. Configuration *matchit-configure*
|
||||
|
||||
@ -243,6 +258,9 @@ Examples:
|
||||
comment character) you can >
|
||||
:let b:match_skip = 'r:\(^\|[^\\]\)\(\\\\\)*%'
|
||||
<
|
||||
See the $VIMRUNTIME/ftplugin/vim.vim for an example that uses both
|
||||
syntax and a regular expression.
|
||||
|
||||
==============================================================================
|
||||
4. Supporting a New Language *matchit-newlang*
|
||||
*b:match_words*
|
||||
|
33
runtime/pack/dist/opt/matchit/plugin/matchit.vim
vendored
33
runtime/pack/dist/opt/matchit/plugin/matchit.vim
vendored
@ -1,7 +1,7 @@
|
||||
" matchit.vim: (global plugin) Extended "%" matching
|
||||
" Maintainer: Christian Brabandt
|
||||
" Version: 1.18
|
||||
" Last Change: 2020 Dec 23
|
||||
" Version: 1.19
|
||||
" Last Change: 2023, June 28th
|
||||
" 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>
|
||||
@ -46,6 +46,7 @@ let g:loaded_matchit = 1
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
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>
|
||||
@ -84,6 +85,26 @@ if !exists("g:no_plugin_maps")
|
||||
" Text object
|
||||
xmap a% <Plug>(MatchitVisualTextObject)
|
||||
endif
|
||||
endfun
|
||||
|
||||
fun MatchDisable()
|
||||
" remove all the setup keymappings
|
||||
nunmap %
|
||||
nunmap g%
|
||||
xunmap %
|
||||
xunmap g%
|
||||
ounmap %
|
||||
ounmap g%
|
||||
|
||||
nunmap [%
|
||||
nunmap ]%
|
||||
xunmap [%
|
||||
xunmap ]%
|
||||
ounmap [%
|
||||
ounmap ]%
|
||||
|
||||
xunmap a%
|
||||
endfun
|
||||
|
||||
" Call this function to turn on debugging information. Every time the main
|
||||
" script is run, buffer variables will be saved. These can be used directly
|
||||
@ -91,6 +112,14 @@ endif
|
||||
if !exists(":MatchDebug")
|
||||
command! -nargs=0 MatchDebug call matchit#Match_debug()
|
||||
endif
|
||||
if !exists(":MatchDisable")
|
||||
command! -nargs=0 MatchDisable :call MatchDisable()
|
||||
endif
|
||||
if !exists(":MatchEnable")
|
||||
command! -nargs=0 MatchEnable :call MatchEnable()
|
||||
endif
|
||||
|
||||
call MatchEnable()
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
Loading…
Reference in New Issue
Block a user