vim-patch:8.2.1984: cannot use :vimgrep in omni completion

Problem:    Cannot use :vimgrep in omni completion, causing C completion to
            fail.
Solution:   Add the EX_LOCK_OK flag to :vimgrep. (closes vim/vim#7292)
33aecb1f2c

Cherry-pick Test_resize_from_copen() indent change from patch 8.2.1432.
This commit is contained in:
zeertzjq
2022-07-17 13:11:46 +08:00
parent 7e79cb56c5
commit 656a1889ee
2 changed files with 76 additions and 16 deletions

View File

@@ -1636,13 +1636,13 @@ module.cmds = {
}, },
{ {
command='lvimgrep', command='lvimgrep',
flags=bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE), flags=bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE, LOCK_OK),
addr_type='ADDR_OTHER', addr_type='ADDR_OTHER',
func='ex_vimgrep', func='ex_vimgrep',
}, },
{ {
command='lvimgrepadd', command='lvimgrepadd',
flags=bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE), flags=bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE, LOCK_OK),
addr_type='ADDR_OTHER', addr_type='ADDR_OTHER',
func='ex_vimgrep', func='ex_vimgrep',
}, },
@@ -3073,13 +3073,13 @@ module.cmds = {
}, },
{ {
command='vimgrep', command='vimgrep',
flags=bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE), flags=bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE, LOCK_OK),
addr_type='ADDR_OTHER', addr_type='ADDR_OTHER',
func='ex_vimgrep', func='ex_vimgrep',
}, },
{ {
command='vimgrepadd', command='vimgrepadd',
flags=bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE), flags=bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE, LOCK_OK),
addr_type='ADDR_OTHER', addr_type='ADDR_OTHER',
func='ex_vimgrep', func='ex_vimgrep',
}, },

View File

@@ -3124,20 +3124,80 @@ func Test_file_from_copen()
endfunc endfunc
func Test_resize_from_copen() func Test_resize_from_copen()
augroup QF_Test
au!
au FileType qf resize 5
augroup END
try
" This should succeed without any exception. No other buffers are
" involved in the autocmd.
copen
finally
augroup QF_Test augroup QF_Test
au! au!
au FileType qf resize 5
augroup END augroup END
try augroup! QF_Test
" This should succeed without any exception. No other buffers are endtry
" involved in the autocmd. endfunc
copen
finally func Test_vimgrep_with_textlock()
augroup QF_Test new
au!
augroup END " Simple way to execute something with "textwinlock" set.
augroup! QF_Test " Check that vimgrep without jumping can be executed.
endtry au InsertCharPre * vimgrep /RunTheTest/j runtest.vim
normal ax
let qflist = getqflist()
call assert_true(len(qflist) > 0)
call assert_match('RunTheTest', qflist[0].text)
call setqflist([], 'r')
au! InsertCharPre
" Check that vimgrepadd without jumping can be executed.
au InsertCharPre * vimgrepadd /RunTheTest/j runtest.vim
normal ax
let qflist = getqflist()
call assert_true(len(qflist) > 0)
call assert_match('RunTheTest', qflist[0].text)
call setqflist([], 'r')
au! InsertCharPre
" Check that lvimgrep without jumping can be executed.
au InsertCharPre * lvimgrep /RunTheTest/j runtest.vim
normal ax
let qflist = getloclist(0)
call assert_true(len(qflist) > 0)
call assert_match('RunTheTest', qflist[0].text)
call setloclist(0, [], 'r')
au! InsertCharPre
" Check that lvimgrepadd without jumping can be executed.
au InsertCharPre * lvimgrepadd /RunTheTest/j runtest.vim
normal ax
let qflist = getloclist(0)
call assert_true(len(qflist) > 0)
call assert_match('RunTheTest', qflist[0].text)
call setloclist(0, [], 'r')
au! InsertCharPre
" trying to jump will give an error
au InsertCharPre * vimgrep /RunTheTest/ runtest.vim
call assert_fails('normal ax', 'E565:')
au! InsertCharPre
au InsertCharPre * vimgrepadd /RunTheTest/ runtest.vim
call assert_fails('normal ax', 'E565:')
au! InsertCharPre
au InsertCharPre * lvimgrep /RunTheTest/ runtest.vim
call assert_fails('normal ax', 'E565:')
au! InsertCharPre
au InsertCharPre * lvimgrepadd /RunTheTest/ runtest.vim
call assert_fails('normal ax', 'E565:')
au! InsertCharPre
bwipe!
endfunc endfunc
" Tests for the quickfix buffer b:changedtick variable " Tests for the quickfix buffer b:changedtick variable