forked from aniani/vim
patch 8.1.0284: 'cursorline' highlighting wrong with 'incsearch'
Problem: 'cursorline' highlighting wrong with 'incsearch'. Solution: Move the cursor back if the match is outside the range.
This commit is contained in:
@@ -480,8 +480,11 @@ may_do_incsearch_highlighting(
|
||||
|
||||
if (curwin->w_cursor.lnum < search_first_line
|
||||
|| curwin->w_cursor.lnum > search_last_line)
|
||||
{
|
||||
// match outside of address range
|
||||
i = 0;
|
||||
curwin->w_cursor = is_state->search_start;
|
||||
}
|
||||
|
||||
// if interrupted while searching, behave like it failed
|
||||
if (got_int)
|
||||
|
||||
9
src/testdir/dumps/Test_incsearch_substitute_07.dump
Normal file
9
src/testdir/dumps/Test_incsearch_substitute_07.dump
Normal file
@@ -0,0 +1,9 @@
|
||||
|f+0&#ffffff0|o@1| |4| @64
|
||||
|f|o@1| |5| @64
|
||||
|f|o@1| |6| @64
|
||||
|f|o@1| |7| @64
|
||||
|f|o@1| |8| @64
|
||||
|f|o@1| |9| @64
|
||||
|f|o@1| |1|0| @63
|
||||
|b+9&&|a|r| +8&&|1@1| @63
|
||||
|:+0&&|9|,|1@1|s|/|b|a|r> @59
|
||||
9
src/testdir/dumps/Test_incsearch_substitute_08.dump
Normal file
9
src/testdir/dumps/Test_incsearch_substitute_08.dump
Normal file
@@ -0,0 +1,9 @@
|
||||
|f+0&#ffffff0|o@1| |4| @64
|
||||
|f|o@1| |5| @64
|
||||
|f|o@1| |6| @64
|
||||
|f|o@1| |7| @64
|
||||
|f|o@1| |8| @64
|
||||
|f+8&&|o@1| |9| @64
|
||||
|f+0&&|o@1| |1|0| @63
|
||||
|b|a|r| |1@1| @63
|
||||
|:|9|,|1|0|s|/|b|a|r> @59
|
||||
@@ -839,6 +839,7 @@ func Test_incsearch_substitute_dump()
|
||||
\ 'for n in range(1, 10)',
|
||||
\ ' call setline(n, "foo " . n)',
|
||||
\ 'endfor',
|
||||
\ 'call setline(11, "bar 11")',
|
||||
\ '3',
|
||||
\ ], 'Xis_subst_script')
|
||||
let buf = RunVimInTerminal('-S Xis_subst_script', {'rows': 9, 'cols': 70})
|
||||
@@ -890,6 +891,20 @@ func Test_incsearch_substitute_dump()
|
||||
call VerifyScreenDump(buf, 'Test_incsearch_substitute_06', {})
|
||||
call term_sendkeys(buf, "\<Esc>")
|
||||
|
||||
" Cursorline highlighting at match
|
||||
call term_sendkeys(buf, ":set cursorline\<CR>")
|
||||
call term_sendkeys(buf, 'G9G')
|
||||
call term_sendkeys(buf, ':9,11s/bar')
|
||||
sleep 100m
|
||||
call VerifyScreenDump(buf, 'Test_incsearch_substitute_07', {})
|
||||
call term_sendkeys(buf, "\<Esc>")
|
||||
|
||||
" Cursorline highlighting at cursor when no match
|
||||
call term_sendkeys(buf, ':9,10s/bar')
|
||||
sleep 100m
|
||||
call VerifyScreenDump(buf, 'Test_incsearch_substitute_08', {})
|
||||
call term_sendkeys(buf, "\<Esc>")
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xis_subst_script')
|
||||
endfunc
|
||||
|
||||
@@ -794,6 +794,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
284,
|
||||
/**/
|
||||
283,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user