mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
test: add more structure to vim.bo/wo tests
This commit is contained in:

committed by
Lewis Russell

parent
a5e582dab6
commit
ac75de0d2a
@@ -149,7 +149,7 @@ describe('lua stdlib', function()
|
|||||||
vim.api.nvim_buf_set_var(0, 'nullvar', vim.NIL)
|
vim.api.nvim_buf_set_var(0, 'nullvar', vim.NIL)
|
||||||
vim.api.nvim_buf_set_var(0, 'to_delete', { hello = 'world' })
|
vim.api.nvim_buf_set_var(0, 'to_delete', { hello = 'world' })
|
||||||
_G.BUF = vim.api.nvim_create_buf(false, true)
|
_G.BUF = vim.api.nvim_create_buf(false, true)
|
||||||
vim.api.nvim_buf_set_var(BUF, 'testing', 'bye')
|
vim.api.nvim_buf_set_var(_G.BUF, 'testing', 'bye')
|
||||||
end)
|
end)
|
||||||
|
|
||||||
eq('hi', fn.luaeval 'vim.b.testing')
|
eq('hi', fn.luaeval 'vim.b.testing')
|
||||||
@@ -164,7 +164,10 @@ describe('lua stdlib', function()
|
|||||||
return { vim.b.nonexistent == vim.NIL, vim.b.nullvar == vim.NIL }
|
return { vim.b.nonexistent == vim.NIL, vim.b.nullvar == vim.NIL }
|
||||||
end)
|
end)
|
||||||
|
|
||||||
matches([[attempt to index .* nil value]], pcall_err(exec_lua, 'return vim.b[BUF][0].testing'))
|
matches(
|
||||||
|
[[attempt to index .* nil value]],
|
||||||
|
pcall_err(exec_lua, 'return vim.b[BUF][0].testing')
|
||||||
|
)
|
||||||
|
|
||||||
eq({ hello = 'world' }, fn.luaeval 'vim.b.to_delete')
|
eq({ hello = 'world' }, fn.luaeval 'vim.b.to_delete')
|
||||||
exec_lua [[
|
exec_lua [[
|
||||||
@@ -174,12 +177,18 @@ describe('lua stdlib', function()
|
|||||||
|
|
||||||
exec_lua(function()
|
exec_lua(function()
|
||||||
local counter = 0
|
local counter = 0
|
||||||
local function add_counter() counter = counter + 1 end
|
local function add_counter()
|
||||||
local function get_counter() return counter end
|
counter = counter + 1
|
||||||
|
end
|
||||||
|
local function get_counter()
|
||||||
|
return counter
|
||||||
|
end
|
||||||
vim.b.AddCounter = add_counter
|
vim.b.AddCounter = add_counter
|
||||||
vim.b.GetCounter = get_counter
|
vim.b.GetCounter = get_counter
|
||||||
vim.b.fn = {add = add_counter, get = get_counter}
|
vim.b.fn = { add = add_counter, get = get_counter }
|
||||||
vim.b.AddParens = function(s) return '(' .. s .. ')' end
|
vim.b.AddParens = function(s)
|
||||||
|
return '(' .. s .. ')'
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
eq(0, eval('b:GetCounter()'))
|
eq(0, eval('b:GetCounter()'))
|
||||||
@@ -199,12 +208,18 @@ describe('lua stdlib', function()
|
|||||||
|
|
||||||
exec_lua(function()
|
exec_lua(function()
|
||||||
local counter = 0
|
local counter = 0
|
||||||
local function add_counter() counter = counter + 1 end
|
local function add_counter()
|
||||||
local function get_counter() return counter end
|
counter = counter + 1
|
||||||
|
end
|
||||||
|
local function get_counter()
|
||||||
|
return counter
|
||||||
|
end
|
||||||
vim.api.nvim_buf_set_var(0, 'AddCounter', add_counter)
|
vim.api.nvim_buf_set_var(0, 'AddCounter', add_counter)
|
||||||
vim.api.nvim_buf_set_var(0, 'GetCounter', get_counter)
|
vim.api.nvim_buf_set_var(0, 'GetCounter', get_counter)
|
||||||
vim.api.nvim_buf_set_var(0, 'fn', {add = add_counter, get = get_counter})
|
vim.api.nvim_buf_set_var(0, 'fn', { add = add_counter, get = get_counter })
|
||||||
vim.api.nvim_buf_set_var(0, 'AddParens', function(s) return '(' .. s .. ')' end)
|
vim.api.nvim_buf_set_var(0, 'AddParens', function(s)
|
||||||
|
return '(' .. s .. ')'
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
eq(0, eval('b:GetCounter()'))
|
eq(0, eval('b:GetCounter()'))
|
||||||
@@ -261,7 +276,10 @@ describe('lua stdlib', function()
|
|||||||
eq(NIL, fn.luaeval 'vim.w.nonexistent')
|
eq(NIL, fn.luaeval 'vim.w.nonexistent')
|
||||||
eq(NIL, fn.luaeval 'vim.w[WIN].nonexistent')
|
eq(NIL, fn.luaeval 'vim.w[WIN].nonexistent')
|
||||||
|
|
||||||
matches([[attempt to index .* nil value]], pcall_err(exec_lua, 'return vim.w[WIN][0].testing'))
|
matches(
|
||||||
|
[[attempt to index .* nil value]],
|
||||||
|
pcall_err(exec_lua, 'return vim.w[WIN][0].testing')
|
||||||
|
)
|
||||||
|
|
||||||
eq({ hello = 'world' }, fn.luaeval 'vim.w.to_delete')
|
eq({ hello = 'world' }, fn.luaeval 'vim.w.to_delete')
|
||||||
exec_lua [[
|
exec_lua [[
|
||||||
@@ -456,7 +474,10 @@ describe('lua stdlib', function()
|
|||||||
eq({ 'one', 'two' }, eval('v:oldfiles'))
|
eq({ 'one', 'two' }, eval('v:oldfiles'))
|
||||||
exec_lua([[vim.v.oldfiles = {}]])
|
exec_lua([[vim.v.oldfiles = {}]])
|
||||||
eq({}, eval('v:oldfiles'))
|
eq({}, eval('v:oldfiles'))
|
||||||
eq('Setting v:oldfiles to value with wrong type', pcall_err(exec_lua, [[vim.v.oldfiles = 'a']]))
|
eq(
|
||||||
|
'Setting v:oldfiles to value with wrong type',
|
||||||
|
pcall_err(exec_lua, [[vim.v.oldfiles = 'a']])
|
||||||
|
)
|
||||||
eq({}, eval('v:oldfiles'))
|
eq({}, eval('v:oldfiles'))
|
||||||
|
|
||||||
feed('i foo foo foo<Esc>0/foo<CR>')
|
feed('i foo foo foo<Esc>0/foo<CR>')
|
||||||
@@ -504,63 +525,74 @@ describe('lua stdlib', function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
describe('options', function()
|
describe('options', function()
|
||||||
it('vim.bo', function()
|
describe('vim.bo', function()
|
||||||
eq('', fn.luaeval 'vim.bo.filetype')
|
it('can get and set options', function()
|
||||||
exec_lua(function()
|
eq('', fn.luaeval 'vim.bo.filetype')
|
||||||
_G.BUF = vim.api.nvim_create_buf(false, true)
|
exec_lua(function()
|
||||||
vim.api.nvim_set_option_value('filetype', 'markdown', {})
|
_G.BUF = vim.api.nvim_create_buf(false, true)
|
||||||
vim.api.nvim_set_option_value('modifiable', false, { buf = _G.BUF })
|
vim.api.nvim_set_option_value('filetype', 'markdown', {})
|
||||||
|
vim.api.nvim_set_option_value('modifiable', false, { buf = _G.BUF })
|
||||||
|
end)
|
||||||
|
eq(false, fn.luaeval 'vim.bo.modified')
|
||||||
|
eq('markdown', fn.luaeval 'vim.bo.filetype')
|
||||||
|
eq(false, fn.luaeval 'vim.bo[BUF].modifiable')
|
||||||
|
exec_lua(function()
|
||||||
|
vim.bo.filetype = ''
|
||||||
|
vim.bo[_G.BUF].modifiable = true
|
||||||
|
end)
|
||||||
|
eq('', fn.luaeval 'vim.bo.filetype')
|
||||||
|
eq(true, fn.luaeval 'vim.bo[BUF].modifiable')
|
||||||
end)
|
end)
|
||||||
eq(false, fn.luaeval 'vim.bo.modified')
|
|
||||||
eq('markdown', fn.luaeval 'vim.bo.filetype')
|
it('errors', function()
|
||||||
eq(false, fn.luaeval 'vim.bo[BUF].modifiable')
|
matches("Unknown option 'nosuchopt'$", pcall_err(exec_lua, 'return vim.bo.nosuchopt'))
|
||||||
exec_lua(function()
|
matches('Expected Lua string$', pcall_err(exec_lua, 'return vim.bo[0][0].autoread'))
|
||||||
vim.bo.filetype = ''
|
matches('Invalid buffer id: %-1$', pcall_err(exec_lua, 'return vim.bo[-1].filetype'))
|
||||||
vim.bo[_G.BUF].modifiable = true
|
|
||||||
end)
|
end)
|
||||||
eq('', fn.luaeval 'vim.bo.filetype')
|
|
||||||
eq(true, fn.luaeval 'vim.bo[BUF].modifiable')
|
|
||||||
matches("Unknown option 'nosuchopt'$", pcall_err(exec_lua, 'return vim.bo.nosuchopt'))
|
|
||||||
matches('Expected Lua string$', pcall_err(exec_lua, 'return vim.bo[0][0].autoread'))
|
|
||||||
matches('Invalid buffer id: %-1$', pcall_err(exec_lua, 'return vim.bo[-1].filetype'))
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('vim.wo', function()
|
describe('vim.wo', function()
|
||||||
exec_lua(function()
|
it('can get and set options', function()
|
||||||
vim.api.nvim_set_option_value('cole', 2, {})
|
exec_lua(function()
|
||||||
vim.cmd 'split'
|
vim.api.nvim_set_option_value('cole', 2, {})
|
||||||
vim.api.nvim_set_option_value('cole', 2, {})
|
vim.cmd 'split'
|
||||||
end)
|
vim.api.nvim_set_option_value('cole', 2, {})
|
||||||
eq(2, fn.luaeval 'vim.wo.cole')
|
end)
|
||||||
exec_lua(function()
|
eq(2, fn.luaeval 'vim.wo.cole')
|
||||||
vim.wo.conceallevel = 0
|
exec_lua(function()
|
||||||
end)
|
vim.wo.conceallevel = 0
|
||||||
eq(0, fn.luaeval 'vim.wo.cole')
|
end)
|
||||||
eq(0, fn.luaeval 'vim.wo[0].cole')
|
eq(0, fn.luaeval 'vim.wo.cole')
|
||||||
eq(0, fn.luaeval 'vim.wo[1001].cole')
|
eq(0, fn.luaeval 'vim.wo[0].cole')
|
||||||
matches("Unknown option 'notanopt'$", pcall_err(exec_lua, 'return vim.wo.notanopt'))
|
eq(0, fn.luaeval 'vim.wo[1001].cole')
|
||||||
matches('Invalid window id: %-1$', pcall_err(exec_lua, 'return vim.wo[-1].list'))
|
matches("Unknown option 'notanopt'$", pcall_err(exec_lua, 'return vim.wo.notanopt'))
|
||||||
eq(2, fn.luaeval 'vim.wo[1000].cole')
|
matches('Invalid window id: %-1$', pcall_err(exec_lua, 'return vim.wo[-1].list'))
|
||||||
exec_lua(function()
|
eq(2, fn.luaeval 'vim.wo[1000].cole')
|
||||||
vim.wo[1000].cole = 0
|
exec_lua(function()
|
||||||
end)
|
vim.wo[1000].cole = 0
|
||||||
eq(0, fn.luaeval 'vim.wo[1000].cole')
|
end)
|
||||||
|
eq(0, fn.luaeval 'vim.wo[1000].cole')
|
||||||
|
|
||||||
-- Can handle global-local values
|
-- Can handle global-local values
|
||||||
exec_lua [[vim.o.scrolloff = 100]]
|
exec_lua [[vim.o.scrolloff = 100]]
|
||||||
exec_lua [[vim.wo.scrolloff = 200]]
|
exec_lua [[vim.wo.scrolloff = 200]]
|
||||||
eq(200, fn.luaeval 'vim.wo.scrolloff')
|
eq(200, fn.luaeval 'vim.wo.scrolloff')
|
||||||
exec_lua [[vim.wo.scrolloff = -1]]
|
exec_lua [[vim.wo.scrolloff = -1]]
|
||||||
eq(100, fn.luaeval 'vim.wo.scrolloff')
|
eq(100, fn.luaeval 'vim.wo.scrolloff')
|
||||||
exec_lua(function()
|
exec_lua(function()
|
||||||
vim.wo[0][0].scrolloff = 200
|
vim.wo[0][0].scrolloff = 200
|
||||||
vim.cmd 'enew'
|
vim.cmd 'enew'
|
||||||
|
end)
|
||||||
|
eq(100, fn.luaeval 'vim.wo.scrolloff')
|
||||||
end)
|
end)
|
||||||
eq(100, fn.luaeval 'vim.wo.scrolloff')
|
|
||||||
|
|
||||||
matches('only bufnr=0 is supported', pcall_err(exec_lua, 'vim.wo[0][10].signcolumn = "no"'))
|
it('errors', function()
|
||||||
|
matches('only bufnr=0 is supported', pcall_err(exec_lua, 'vim.wo[0][10].signcolumn = "no"'))
|
||||||
matches('only bufnr=0 is supported', pcall_err(exec_lua, 'local a = vim.wo[0][10].signcolumn'))
|
matches(
|
||||||
|
'only bufnr=0 is supported',
|
||||||
|
pcall_err(exec_lua, 'local a = vim.wo[0][10].signcolumn')
|
||||||
|
)
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('vim.opt', function()
|
describe('vim.opt', function()
|
||||||
@@ -1065,7 +1097,10 @@ describe('lua stdlib', function()
|
|||||||
)
|
)
|
||||||
matches(
|
matches(
|
||||||
"Invalid option type 'function' for 'listchars'",
|
"Invalid option type 'function' for 'listchars'",
|
||||||
pcall_err(exec_lua, [[vim.opt.listchars = function() return "eol:~,space:.,tab:>~" end]])
|
pcall_err(
|
||||||
|
exec_lua,
|
||||||
|
[[vim.opt.listchars = function() return "eol:~,space:.,tab:>~" end]]
|
||||||
|
)
|
||||||
)
|
)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -1190,5 +1225,4 @@ describe('lua stdlib', function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
Reference in New Issue
Block a user