aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/vim_spec.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2022-06-21 17:13:01 +0100
committerLewis Russell <lewis6991@gmail.com>2022-06-22 11:08:30 +0100
commitd23465534a8ba5dac1758ffebdc7746138ee5210 (patch)
treede61e51307c2fa7ee25e84d2723fee7c6152415b /test/functional/lua/vim_spec.lua
parentdd591adf8a1d145b2fdf9115509bcc80c9ee7943 (diff)
downloadrneovim-d23465534a8ba5dac1758ffebdc7746138ee5210.tar.gz
rneovim-d23465534a8ba5dac1758ffebdc7746138ee5210.tar.bz2
rneovim-d23465534a8ba5dac1758ffebdc7746138ee5210.zip
fix(api): nvim_set_option_value for global-local options
global-local window options need to be handled specially. When `win` is given but `scope` is not, then we want to set the local version of the option but not the global one, therefore we need to force `scope='local'`. Note this does not apply to window-local only options (e.g. 'number') Example: nvim_set_option_value('scrolloff', 10, {}) -- global-local window option; set global value nvim_set_option_value('scrolloff', 20, {win=0}) -- global-local window option; set local value nvim_set_option_value('number', true, {}) -- local window option is now equivalent to: nvim_set_option_value('scrolloff', 10, {}) nvim_set_option_value('scrolloff', 20, {win=0, scope='local'}) -- changed from before nvim_set_option_value('number', true, {win=0}) -- unchanged from before Only the global-local option with a `win` provided gets forced to local scope.
Diffstat (limited to 'test/functional/lua/vim_spec.lua')
-rw-r--r--test/functional/lua/vim_spec.lua7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/functional/lua/vim_spec.lua b/test/functional/lua/vim_spec.lua
index 44e65afc78..dfbcbbe688 100644
--- a/test/functional/lua/vim_spec.lua
+++ b/test/functional/lua/vim_spec.lua
@@ -1424,6 +1424,13 @@ describe('lua stdlib', function()
vim.wo[1000].cole = 0
]]
eq(0, funcs.luaeval "vim.wo[1000].cole")
+
+ -- Can handle global-local values
+ exec_lua [[vim.o.scrolloff = 100]]
+ exec_lua [[vim.wo.scrolloff = 200]]
+ eq(200, funcs.luaeval "vim.wo.scrolloff")
+ exec_lua [[vim.wo.scrolloff = -1]]
+ eq(100, funcs.luaeval "vim.wo.scrolloff")
end)
describe('vim.opt', function()