Patch 8.1.0143
Problem: Matchit and matchparen don't handle E363.
Solution: Catch the E363 error. (Christian Brabandt)
Files: runtime/pack/dist/opt/matchit/plugin/matchit.vim,
runtime/plugin/matchparen.vim
*** ../vim-8.1.0142/runtime/pack/dist/opt/matchit/plugin/matchit.vim
2017-09-15 22:24:05.000000000 +0200
--- runtime/pack/dist/opt/matchit/plugin/matchit.vim 2018-07-03
18:08:21.939478130 +0200
***************
*** 1,5 ****
" matchit.vim: (global plugin) Extended "%" matching
! " Last Change: 2017 Sep 15
" Maintainer: Benji Fisher PhD <[email protected]>
" Version: 1.13.3, for Vim 6.3+
" Fix from Fernando Torres included.
--- 1,5 ----
" matchit.vim: (global plugin) Extended "%" matching
! " Last Change: 2018 Jul 3 by Christian Brabandt
" Maintainer: Benji Fisher PhD <[email protected]>
" Version: 1.13.3, for Vim 6.3+
" Fix from Fernando Torres included.
***************
*** 272,278 ****
" execute "normal!" . curcol . "l"
" endif
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
! let skip = "0"
else
execute "if " . skip . "| let skip = '0' | endif"
endif
--- 272,278 ----
" execute "normal!" . curcol . "l"
" endif
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
! let skip = '0'
else
execute "if " . skip . "| let skip = '0' | endif"
endif
***************
*** 719,728 ****
let openpat = substitute(openpat, ',', '\\|', 'g')
let closepat = substitute(close, '\(\\\@<!\(\\\\\)*\)\@<=\\(', '\\%(', 'g')
let closepat = substitute(closepat, ',', '\\|', 'g')
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
let skip = '0'
else
! execute "if " . skip . "| let skip = '0' | endif"
endif
mark '
while level
--- 719,734 ----
let openpat = substitute(openpat, ',', '\\|', 'g')
let closepat = substitute(close, '\(\\\@<!\(\\\\\)*\)\@<=\\(', '\\%(', 'g')
let closepat = substitute(closepat, ',', '\\|', 'g')
+
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
let skip = '0'
else
! try
! execute "if " . skip . "| let skip = '0' | endif"
! catch /^Vim\%((\a\+)\)\=:E363/
! " We won't find anything, so skip searching, should keep Vim responsive.
! return
! endtry
endif
mark '
while level
*** ../vim-8.1.0142/runtime/plugin/matchparen.vim 2018-06-25
00:05:55.897799652 +0200
--- runtime/plugin/matchparen.vim 2018-07-03 18:14:30.337154571 +0200
***************
*** 1,6 ****
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <[email protected]>
! " Last Change: 2017 Sep 30
" Exit quickly when:
" - this plugin was already loaded (or disabled)
--- 1,6 ----
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <[email protected]>
! " Last Change: 2018 Jul 3
" Exit quickly when:
" - this plugin was already loaded (or disabled)
***************
*** 103,120 ****
call cursor(c_lnum, c_col - before)
endif
! " Build an expression that detects whether the current cursor position is in
! " certain syntax types (string, comment, etc.), for use as searchpairpos()'s
! " skip argument.
! " We match "escape" for special items, such as lispEscapeSpecial.
! let s_skip = '!empty(filter(map(synstack(line("."), col(".")),
''synIDattr(v:val, "name")''), ' .
\ '''v:val =~?
"string\\|character\\|singlequote\\|escape\\|comment"''))'
! " If executing the expression determines that the cursor is currently in
! " one of the syntax types, then we want searchpairpos() to find the pair
! " within those syntax types (i.e., not skip). Otherwise, the cursor is
! " outside of the syntax types and s_skip should keep its value so we skip
any
! " matching pair inside the syntax types.
! execute 'if' s_skip '| let s_skip = "0" | endif'
" Limit the search to lines visible in the window.
let stoplinebottom = line('w$')
--- 103,130 ----
call cursor(c_lnum, c_col - before)
endif
! if !has("syntax") || !exists("g:syntax_on")
! let s_skip = "0"
! else
! " Build an expression that detects whether the current cursor position is
! " in certain syntax types (string, comment, etc.), for use as
! " searchpairpos()'s skip argument.
! " We match "escape" for special items, such as lispEscapeSpecial.
! let s_skip = '!empty(filter(map(synstack(line("."), col(".")),
''synIDattr(v:val, "name")''), ' .
\ '''v:val =~?
"string\\|character\\|singlequote\\|escape\\|comment"''))'
! " If executing the expression determines that the cursor is currently in
! " one of the syntax types, then we want searchpairpos() to find the pair
! " within those syntax types (i.e., not skip). Otherwise, the cursor is
! " outside of the syntax types and s_skip should keep its value so we skip
! " any matching pair inside the syntax types.
! " Catch if this throws E363: pattern uses more memory than
'maxmempattern'.
! try
! execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
! catch /^Vim\%((\a\+)\)\=:E363/
! " We won't find anything, so skip searching, should keep Vim responsive.
! return
! endtry
! endif
" Limit the search to lines visible in the window.
let stoplinebottom = line('w$')
*** ../vim-8.1.0142/src/version.c 2018-07-03 17:16:55.626135028 +0200
--- src/version.c 2018-07-03 18:16:06.620560417 +0200
***************
*** 791,792 ****
--- 791,794 ----
{ /* Add new patch number below this line */
+ /**/
+ 143,
/**/
--
If Microsoft would build a car...
... Occasionally, executing a maneuver such as a left turn
would cause your car to shut down and refuse to restart, in
which case you would have to reinstall the engine.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.