Merge pull request #29303 from lewis6991/fix/wobuf

fix(vim.wo): never allow non-zero bufnr
This commit is contained in:
Lewis Russell
2024-06-12 17:30:11 +01:00
committed by GitHub
2 changed files with 20 additions and 12 deletions

View File

@@ -174,6 +174,11 @@ local function new_buf_opt_accessor(bufnr)
end end
local function new_win_opt_accessor(winid, bufnr) local function new_win_opt_accessor(winid, bufnr)
-- TODO(lewis6991): allow passing both buf and win to nvim_get_option_value
if bufnr ~= nil and bufnr ~= 0 then
error('only bufnr=0 is supported')
end
return setmetatable({}, { return setmetatable({}, {
__index = function(_, k) __index = function(_, k)
if bufnr == nil and type(k) == 'number' then if bufnr == nil and type(k) == 'number' then
@@ -184,11 +189,6 @@ local function new_win_opt_accessor(winid, bufnr)
end end
end end
if bufnr ~= nil and bufnr ~= 0 then
error('only bufnr=0 is supported')
end
-- TODO(lewis6991): allow passing both buf and win to nvim_get_option_value
return api.nvim_get_option_value(k, { return api.nvim_get_option_value(k, {
scope = bufnr and 'local' or nil, scope = bufnr and 'local' or nil,
win = winid or 0, win = winid or 0,
@@ -196,7 +196,6 @@ local function new_win_opt_accessor(winid, bufnr)
end, end,
__newindex = function(_, k, v) __newindex = function(_, k, v)
-- TODO(lewis6991): allow passing both buf and win to nvim_set_option_value
return api.nvim_set_option_value(k, v, { return api.nvim_set_option_value(k, v, {
scope = bufnr and 'local' or nil, scope = bufnr and 'local' or nil,
win = winid or 0, win = winid or 0,

View File

@@ -135,14 +135,15 @@ describe('lua stdlib', function()
-- See MAINTAIN.md for the soft/hard deprecation policy -- See MAINTAIN.md for the soft/hard deprecation policy
describe(('vim.deprecate prerel=%s,'):format(prerel or 'nil'), function() describe(('vim.deprecate prerel=%s,'):format(prerel or 'nil'), function()
local curver = exec_lua('return vim.version()') --[[@as {major:number, minor:number}]] local curver --- @type {major:number, minor:number}
-- "0.10" or "0.10-dev+xxx"
local curstr = ('%s.%s%s'):format(curver.major, curver.minor, prerel or '') before_each(function()
-- "0.10" or "0.11" curver = exec_lua('return vim.version()')
local nextver = ('%s.%s'):format(curver.major, curver.minor + (prerel and 0 or 1)) end)
local was_removed = prerel and 'was removed' or 'will be removed'
it('plugin=nil, same message skipped', function() it('plugin=nil, same message skipped', function()
-- "0.10" or "0.10-dev+xxx"
local curstr = ('%s.%s%s'):format(curver.major, curver.minor, prerel or '')
eq( eq(
dedent( dedent(
[[ [[
@@ -162,6 +163,10 @@ describe('lua stdlib', function()
end) end)
it('plugin=nil, show error if hard-deprecated', function() it('plugin=nil, show error if hard-deprecated', function()
-- "0.10" or "0.11"
local nextver = ('%s.%s'):format(curver.major, curver.minor + (prerel and 0 or 1))
local was_removed = prerel and 'was removed' or 'will be removed'
eq( eq(
dedent( dedent(
[[ [[
@@ -2023,6 +2028,10 @@ describe('lua stdlib', function()
vim.cmd "enew" vim.cmd "enew"
]] ]]
eq(100, fn.luaeval 'vim.wo.scrolloff') 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'))
end) end)
describe('vim.opt', function() describe('vim.opt', function()