@@ -491,37 +491,36 @@ function! s:get_surrounding_delim(type) abort " {{{1
491491 let l: save_pos = vimtex#pos#get_cursor ()
492492 let l: pos_val_cursor = vimtex#pos#val (l: save_pos )
493493 let l: pos_val_last = l: pos_val_cursor
494- let l: pos_val_open = l: pos_val_cursor - 1
494+ let l: pos_val_current = l: pos_val_cursor - 1
495495
496496 let l: count = 0
497- while l: pos_val_open < l: pos_val_last && l: count < 100
497+ while l: pos_val_current < l: pos_val_last && l: count < 100
498498 let l: count += 1
499499 let l: open = vimtex#delim#get_prev (a: type , ' open' )
500500 if empty (l: open ) | break | endif
501501
502502 let l: env_close = vimtex#delim#get_next_after (l: open , ' env_all' , ' close' )
503+ let l: env_open = vimtex#delim#get_matching (l: env_close )
504+
505+ let l: pos_val_open = vimtex#pos#val (l: open )
506+ let l: pos_val_env_open = empty (l: env_open ) ? 0 : vimtex#pos#val (l: env_open )
503507 let l: pos_val_env_close = empty (l: env_close )
504508 \ ? l: pos_val_cursor + 1
505509 \ : vimtex#pos#val (l: env_close ) + strlen (l: env_close .match ) - 1
506- if l: pos_val_env_close > l: pos_val_cursor
507- let l: close = vimtex#delim#get_matching (l: open )
508510
509- let l: env_open = vimtex#delim#get_prev_before (l: close , ' env_all' , ' open' )
510- let l: pos_val_env_open = empty (l: env_open )
511- \ ? 0
512- \ : vimtex#pos#val (l: env_open )
513- if l: pos_val_env_open < l: pos_val_cursor
514- let l: pos_val_try = vimtex#pos#val (l: close ) + strlen (l: close .match ) - 1
515- if l: pos_val_try >= l: pos_val_cursor
516- call vimtex#pos#set_cursor (l: save_pos )
517- return [l: open , l: close ]
518- endif
511+ if l: pos_val_env_open > l: pos_val_open
512+ \ || l: pos_val_env_close > l: pos_val_cursor
513+ let l: close = vimtex#delim#get_matching (l: open )
514+ let l: pos_val_try = vimtex#pos#val (l: close ) + strlen (l: close .match ) - 1
515+ if l: pos_val_try >= l: pos_val_cursor
516+ call vimtex#pos#set_cursor (l: save_pos )
517+ return [l: open , l: close ]
519518 endif
520519 endif
521520
522521 call vimtex#pos#set_cursor (vimtex#pos#prev (l: open ))
523- let l: pos_val_last = l: pos_val_open
524- let l: pos_val_open = vimtex#pos#val ( l: open )
522+ let l: pos_val_last = l: pos_val_current
523+ let l: pos_val_current = l: pos_val_open
525524 endwhile
526525
527526 call vimtex#pos#set_cursor (l: save_pos )
0 commit comments