diff --git a/test/functional/lua/option_and_var_spec.lua b/test/functional/lua/option_and_var_spec.lua index b6de056bb8..69fc47d93c 100644 --- a/test/functional/lua/option_and_var_spec.lua +++ b/test/functional/lua/option_and_var_spec.lua @@ -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, 'to_delete', { hello = 'world' }) _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) 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 } 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') exec_lua [[ @@ -174,12 +177,18 @@ describe('lua stdlib', function() exec_lua(function() local counter = 0 - local function add_counter() counter = counter + 1 end - local function get_counter() return counter end + local function add_counter() + counter = counter + 1 + end + local function get_counter() + return counter + end vim.b.AddCounter = add_counter vim.b.GetCounter = get_counter - vim.b.fn = {add = add_counter, get = get_counter} - vim.b.AddParens = function(s) return '(' .. s .. ')' end + vim.b.fn = { add = add_counter, get = get_counter } + vim.b.AddParens = function(s) + return '(' .. s .. ')' + end end) eq(0, eval('b:GetCounter()')) @@ -199,12 +208,18 @@ describe('lua stdlib', function() exec_lua(function() local counter = 0 - local function add_counter() counter = counter + 1 end - local function get_counter() return counter end + local function add_counter() + 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, 'GetCounter', 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, 'fn', { add = add_counter, get = get_counter }) + vim.api.nvim_buf_set_var(0, 'AddParens', function(s) + return '(' .. s .. ')' + end) end) 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[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') exec_lua [[ @@ -456,7 +474,10 @@ describe('lua stdlib', function() eq({ 'one', 'two' }, eval('v:oldfiles')) exec_lua([[vim.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')) feed('i foo foo foo0/foo') @@ -504,63 +525,74 @@ describe('lua stdlib', function() end) describe('options', function() - it('vim.bo', function() - eq('', fn.luaeval 'vim.bo.filetype') - exec_lua(function() - _G.BUF = vim.api.nvim_create_buf(false, true) - vim.api.nvim_set_option_value('filetype', 'markdown', {}) - vim.api.nvim_set_option_value('modifiable', false, { buf = _G.BUF }) + describe('vim.bo', function() + it('can get and set options', function() + eq('', fn.luaeval 'vim.bo.filetype') + exec_lua(function() + _G.BUF = vim.api.nvim_create_buf(false, true) + 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) - 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 + + it('errors', function() + 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) - 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) - it('vim.wo', function() - exec_lua(function() - vim.api.nvim_set_option_value('cole', 2, {}) - vim.cmd 'split' - vim.api.nvim_set_option_value('cole', 2, {}) - end) - eq(2, fn.luaeval 'vim.wo.cole') - exec_lua(function() - vim.wo.conceallevel = 0 - end) - eq(0, fn.luaeval 'vim.wo.cole') - eq(0, fn.luaeval 'vim.wo[0].cole') - eq(0, fn.luaeval 'vim.wo[1001].cole') - matches("Unknown option 'notanopt'$", pcall_err(exec_lua, 'return vim.wo.notanopt')) - matches('Invalid window id: %-1$', pcall_err(exec_lua, 'return vim.wo[-1].list')) - eq(2, fn.luaeval 'vim.wo[1000].cole') - exec_lua(function() - vim.wo[1000].cole = 0 - end) - eq(0, fn.luaeval 'vim.wo[1000].cole') + describe('vim.wo', function() + it('can get and set options', function() + exec_lua(function() + vim.api.nvim_set_option_value('cole', 2, {}) + vim.cmd 'split' + vim.api.nvim_set_option_value('cole', 2, {}) + end) + eq(2, fn.luaeval 'vim.wo.cole') + exec_lua(function() + vim.wo.conceallevel = 0 + end) + eq(0, fn.luaeval 'vim.wo.cole') + eq(0, fn.luaeval 'vim.wo[0].cole') + eq(0, fn.luaeval 'vim.wo[1001].cole') + matches("Unknown option 'notanopt'$", pcall_err(exec_lua, 'return vim.wo.notanopt')) + matches('Invalid window id: %-1$', pcall_err(exec_lua, 'return vim.wo[-1].list')) + eq(2, fn.luaeval 'vim.wo[1000].cole') + exec_lua(function() + vim.wo[1000].cole = 0 + end) + eq(0, fn.luaeval 'vim.wo[1000].cole') - -- Can handle global-local values - exec_lua [[vim.o.scrolloff = 100]] - exec_lua [[vim.wo.scrolloff = 200]] - eq(200, fn.luaeval 'vim.wo.scrolloff') - exec_lua [[vim.wo.scrolloff = -1]] - eq(100, fn.luaeval 'vim.wo.scrolloff') - exec_lua(function() - vim.wo[0][0].scrolloff = 200 - vim.cmd 'enew' + -- Can handle global-local values + exec_lua [[vim.o.scrolloff = 100]] + exec_lua [[vim.wo.scrolloff = 200]] + eq(200, fn.luaeval 'vim.wo.scrolloff') + exec_lua [[vim.wo.scrolloff = -1]] + eq(100, fn.luaeval 'vim.wo.scrolloff') + exec_lua(function() + vim.wo[0][0].scrolloff = 200 + vim.cmd 'enew' + end) + eq(100, fn.luaeval 'vim.wo.scrolloff') end) - eq(100, fn.luaeval 'vim.wo.scrolloff') - 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')) + 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') + ) + end) end) describe('vim.opt', function() @@ -1065,7 +1097,10 @@ describe('lua stdlib', function() ) matches( "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) @@ -1190,5 +1225,4 @@ describe('lua stdlib', function() end) end) end) - end)