diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2020-03-31 21:44:21 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2021-05-19 19:29:19 +0200 |
commit | 7fbf3bf18ba76832af7668fd85e4bd817bb378f1 (patch) | |
tree | cb0abb8962c0a11286bfe3f2c634c31506eb3426 /src/nvim/lua/vim.lua | |
parent | 6deae3d14b59f554a352b9e3738a7a4acb254ea3 (diff) | |
download | rneovim-7fbf3bf18ba76832af7668fd85e4bd817bb378f1.tar.gz rneovim-7fbf3bf18ba76832af7668fd85e4bd817bb378f1.tar.bz2 rneovim-7fbf3bf18ba76832af7668fd85e4bd817bb378f1.zip |
lua: use proper conversion of vim.g values
Diffstat (limited to 'src/nvim/lua/vim.lua')
-rw-r--r-- | src/nvim/lua/vim.lua | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua index a678432dda..bc0770da31 100644 --- a/src/nvim/lua/vim.lua +++ b/src/nvim/lua/vim.lua @@ -341,32 +341,24 @@ do end return setmetatable({}, mt) end - local function pcall_ret(status, ...) - if status then return ... end - end - local function nil_wrap(fn) - return function(...) - return pcall_ret(pcall(fn, ...)) + local function make_dict_accessor(scope) + validate { + scope = {scope, 's'}; + } + local mt = {} + function mt:__newindex(k, v) + return vim._setvar(scope, 0, k, v) end + function mt:__index(k) + return vim._getvar(scope, 0, k) + end + return setmetatable({}, mt) 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.g = make_dict_accessor('g') + vim.v = make_dict_accessor('v') + vim.b = make_dict_accessor('b') + vim.w = make_dict_accessor('w') + vim.t = make_dict_accessor('t') vim.o = make_meta_accessor(a.nvim_get_option, a.nvim_set_option) local function getenv(k) |