fix(lua): not using global value in vim.opt_global (#25196)

This commit is contained in:
Phelipe Teles 2023-09-16 19:35:12 -03:00 committed by GitHub
parent 054839437e
commit 4ab9c5fa46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 3 deletions

View File

@ -727,7 +727,10 @@ local function create_option_accessor(scope)
return setmetatable({}, {
__index = function(_, k)
return make_option(k, api.nvim_get_option_value(k, {}))
-- vim.opt_global must get global value only
-- vim.opt_local may fall back to global value like vim.opt
local opts = { scope = scope == 'global' and 'global' or nil }
return make_option(k, api.nvim_get_option_value(k, opts))
end,
__newindex = function(_, k, v)

View File

@ -2257,8 +2257,8 @@ describe('lua stdlib', function()
end)
end) -- vim.opt
describe('opt_local', function()
it('should be able to append to an array list type option', function()
describe('vim.opt_local', function()
it('appends into global value when changing local option value', function()
eq({ "foo,bar,baz,qux" }, exec_lua [[
local result = {}
@ -2273,6 +2273,19 @@ describe('lua stdlib', function()
end)
end)
describe('vim.opt_global', function()
it('gets current global option value', function()
eq({ "yes" }, exec_lua [[
local result = {}
vim.cmd "setglobal signcolumn=yes"
table.insert(result, vim.opt_global.signcolumn:get())
return result
]])
end)
end)
it('vim.cmd', function()
exec_lua [[
vim.cmd "autocmd BufNew * ++once lua BUF = vim.fn.expand('<abuf>')"