mirror of
https://github.com/neovim/neovim.git
synced 2025-09-09 12:58:16 +00:00

Make sure that oldwin is not invalid after splitting Revisit this when porting vim patch v8.1.0892 and related quickfix patches.
85 lines
2.8 KiB
Lua
85 lines
2.8 KiB
Lua
local helpers = require('test.functional.helpers')(after_each)
|
|
|
|
local clear = helpers.clear
|
|
local command = helpers.command
|
|
local eq = helpers.eq
|
|
local exc_exec = helpers.exc_exec
|
|
local get_cur_win_var = helpers.curwinmeths.get_var
|
|
|
|
describe('setqflist()', function()
|
|
local setqflist = helpers.funcs.setqflist
|
|
|
|
before_each(clear)
|
|
|
|
it('requires a list for {list}', function()
|
|
eq('Vim(call):E714: List required', exc_exec('call setqflist("foo")'))
|
|
eq('Vim(call):E714: List required', exc_exec('call setqflist(5)'))
|
|
eq('Vim(call):E714: List required', exc_exec('call setqflist({})'))
|
|
end)
|
|
|
|
it('requires a string for {action}', function()
|
|
eq('Vim(call):E928: String required', exc_exec('call setqflist([], 5)'))
|
|
eq('Vim(call):E928: String required', exc_exec('call setqflist([], [])'))
|
|
eq('Vim(call):E928: String required', exc_exec('call setqflist([], {})'))
|
|
end)
|
|
|
|
it('sets w:quickfix_title', function()
|
|
setqflist({''}, 'r', 'foo')
|
|
command('copen')
|
|
eq('foo', get_cur_win_var('quickfix_title'))
|
|
setqflist({}, 'r', {['title'] = 'qf_title'})
|
|
eq('qf_title', get_cur_win_var('quickfix_title'))
|
|
end)
|
|
|
|
it('allows string {what} for backwards compatibility', function()
|
|
setqflist({}, 'r', '5')
|
|
command('copen')
|
|
eq('5', get_cur_win_var('quickfix_title'))
|
|
end)
|
|
|
|
it('requires a dict for {what}', function()
|
|
eq('Vim(call):E715: Dictionary required', exc_exec('call setqflist([], "r", function("function"))'))
|
|
end)
|
|
end)
|
|
|
|
describe('setloclist()', function()
|
|
local setloclist = helpers.funcs.setloclist
|
|
|
|
before_each(clear)
|
|
|
|
it('requires a list for {list}', function()
|
|
eq('Vim(call):E714: List required', exc_exec('call setloclist(0, "foo")'))
|
|
eq('Vim(call):E714: List required', exc_exec('call setloclist(0, 5)'))
|
|
eq('Vim(call):E714: List required', exc_exec('call setloclist(0, {})'))
|
|
end)
|
|
|
|
it('requires a string for {action}', function()
|
|
eq('Vim(call):E928: String required', exc_exec('call setloclist(0, [], 5)'))
|
|
eq('Vim(call):E928: String required', exc_exec('call setloclist(0, [], [])'))
|
|
eq('Vim(call):E928: String required', exc_exec('call setloclist(0, [], {})'))
|
|
end)
|
|
|
|
it('sets w:quickfix_title for the correct window', function()
|
|
command('rightbelow vsplit')
|
|
setloclist(1, {}, 'r', 'foo')
|
|
setloclist(2, {}, 'r', 'bar')
|
|
command('lopen')
|
|
eq('bar', get_cur_win_var('quickfix_title'))
|
|
command('lclose | wincmd w | lopen')
|
|
eq('foo', get_cur_win_var('quickfix_title'))
|
|
end)
|
|
|
|
it("doesn't crash when when window is closed in the middle #13721", function()
|
|
helpers.insert([[
|
|
hello world]])
|
|
|
|
command("vsplit")
|
|
command("autocmd WinLeave * :call nvim_win_close(0, v:true)")
|
|
|
|
command("call setloclist(0, [])")
|
|
command("lopen")
|
|
|
|
helpers.assert_alive()
|
|
end)
|
|
end)
|