mirror of
https://github.com/neovim/neovim.git
synced 2025-12-16 11:25:33 +00:00
Merge pull request #29303 from lewis6991/fix/wobuf
fix(vim.wo): never allow non-zero bufnr
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user