vim-patch:8.2.3583: the "gd" and "gD" commands do not update search stats

Problem:    The "gd" and "gD" commands do not update search stats. (Gary
            Johnson)
Solution:   Clear search stats.
0c71114aed
This commit is contained in:
zeertzjq 2022-02-04 18:47:20 +08:00
parent b9def4ae10
commit ab7ae8806e
2 changed files with 33 additions and 2 deletions

View File

@ -3098,8 +3098,14 @@ static void nv_gd(oparg_T *oap, int nchar, int thisblock)
if ((len = find_ident_under_cursor(&ptr, FIND_IDENT)) == 0
|| !find_decl(ptr, len, nchar == 'd', thisblock, SEARCH_START)) {
clearopbeep(oap);
} else if ((fdo_flags & FDO_SEARCH) && KeyTyped && oap->op_type == OP_NOP) {
foldOpenCursor();
} else {
if ((fdo_flags & FDO_SEARCH) && KeyTyped && oap->op_type == OP_NOP) {
foldOpenCursor();
}
// clear any search statistics
if (messaging() && !msg_silent && !shortmess(SHM_SEARCHCOUNT)) {
clear_cmdline = true;
}
}
}

View File

@ -347,4 +347,29 @@ func! Test_search_stat_screendump()
call delete('Xsearchstat')
endfunc
func Test_search_stat_then_gd()
CheckScreendump
let lines =<< trim END
call setline(1, ['int cat;', 'int dog;', 'cat = dog;'])
set shortmess-=S
set hlsearch
END
call writefile(lines, 'Xsearchstatgd')
let buf = RunVimInTerminal('-S Xsearchstatgd', #{rows: 10})
call term_sendkeys(buf, "/dog\<CR>")
call TermWait(buf)
call VerifyScreenDump(buf, 'Test_searchstatgd_1', {})
call term_sendkeys(buf, "G0gD")
call TermWait(buf)
call VerifyScreenDump(buf, 'Test_searchstatgd_2', {})
call StopVimInTerminal(buf)
call delete('Xsearchstatgd')
endfunc
" vim: shiftwidth=2 sts=2 expandtab