api: add nvim_win_close() to close window by id

This commit is contained in:
Björn Linse
2019-03-03 10:26:11 +01:00
parent 7a6da502b9
commit c8f310825c
4 changed files with 96 additions and 1 deletions

View File

@@ -286,4 +286,41 @@ describe('API/win', function()
ok(not window('is_valid', win))
end)
end)
describe('close', function()
it('can close current window', function()
local oldwin = meths.get_current_win()
command('split')
local newwin = meths.get_current_win()
meths.win_close(newwin,false)
eq({oldwin}, meths.list_wins())
end)
it('can close noncurrent window', function()
local oldwin = meths.get_current_win()
command('split')
local newwin = meths.get_current_win()
meths.win_close(oldwin,false)
eq({newwin}, meths.list_wins())
end)
it('handles changed buffer', function()
local oldwin = meths.get_current_win()
insert('text')
command('new')
local newwin = meths.get_current_win()
eq({false,"Vim:E37: No write since last change (add ! to override)"},
meth_pcall(meths.win_close, oldwin,false))
eq({newwin,oldwin}, meths.list_wins())
end)
it('handles changed buffer with force', function()
local oldwin = meths.get_current_win()
insert('text')
command('new')
local newwin = meths.get_current_win()
meths.win_close(oldwin,true)
eq({newwin}, meths.list_wins())
end)
end)
end)