mirror of
https://github.com/neovim/neovim.git
synced 2025-12-09 16:12:48 +00:00
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.
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user