lua: Add buffer, window and tab accessors (#12268)

* Add buffer, window and tab accessors

* Fix deletion and add tests
This commit is contained in:
TJ DeVries
2020-05-07 15:22:24 -04:00
committed by GitHub
parent 7432b3ca4c
commit 1407899c32
2 changed files with 103 additions and 0 deletions

View File

@@ -332,9 +332,26 @@ do
return pcall_ret(pcall(fn, ...))
end
end
vim.b = make_meta_accessor(
nil_wrap(function(v) return a.nvim_buf_get_var(0, v) end),
function(v, k) return a.nvim_buf_set_var(0, v, k) end,
function(v) return a.nvim_buf_del_var(0, v) end
)
vim.w = make_meta_accessor(
nil_wrap(function(v) return a.nvim_win_get_var(0, v) end),
function(v, k) return a.nvim_win_set_var(0, v, k) end,
function(v) return a.nvim_win_del_var(0, v) end
)
vim.t = make_meta_accessor(
nil_wrap(function(v) return a.nvim_tabpage_get_var(0, v) end),
function(v, k) return a.nvim_tabpage_set_var(0, v, k) end,
function(v) return a.nvim_tabpage_del_var(0, v) end
)
vim.g = make_meta_accessor(nil_wrap(a.nvim_get_var), a.nvim_set_var, a.nvim_del_var)
vim.v = make_meta_accessor(nil_wrap(a.nvim_get_vvar), a.nvim_set_vvar)
vim.o = make_meta_accessor(a.nvim_get_option, a.nvim_set_option)
local function getenv(k)
local v = vim.fn.getenv(k)
if v == vim.NIL then