diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-11-26 21:08:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-26 21:08:16 +0100 |
commit | a40ae96a38f0e99947421f81511ad2f7c2d3fc2c (patch) | |
tree | fc9f79c5396894110fccd1606286a8613f914bc9 /src/nvim/lua/vim.lua | |
parent | f53822d89f727fc16a9b5578d4f5c82015f4d7aa (diff) | |
parent | a76a669ac24ec91144153b65e0a0dc5598802653 (diff) | |
download | rneovim-a40ae96a38f0e99947421f81511ad2f7c2d3fc2c.tar.gz rneovim-a40ae96a38f0e99947421f81511ad2f7c2d3fc2c.tar.bz2 rneovim-a40ae96a38f0e99947421f81511ad2f7c2d3fc2c.zip |
Merge pull request #11466 from bfredl/luaopt
lua: make vim.wo and vim.bo used nested indexing for specified handle
Diffstat (limited to 'src/nvim/lua/vim.lua')
-rw-r--r-- | src/nvim/lua/vim.lua | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua index 8019511317..e13b44a8ed 100644 --- a/src/nvim/lua/vim.lua +++ b/src/nvim/lua/vim.lua @@ -314,7 +314,7 @@ do 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(nil_wrap(a.nvim_get_option), a.nvim_set_option) + vim.o = make_meta_accessor(a.nvim_get_option, a.nvim_set_option) vim.env = make_meta_accessor(vim.fn.getenv, vim.fn.setenv) -- TODO(ashkan) if/when these are available from an API, generate them -- instead of hardcoding. @@ -344,29 +344,31 @@ do if window_options[k] then return a.nvim_err_writeln(k.." is a window option, not a buffer option") end - return a.nvim_buf_get_option(bufnr, k) + if bufnr == nil and type(k) == "number" then + return new_buf_opt_accessor(k) + end + return a.nvim_buf_get_option(bufnr or 0, k) end local function set(k, v) if window_options[k] then return a.nvim_err_writeln(k.." is a window option, not a buffer option") end - return a.nvim_buf_set_option(bufnr, k, v) + return a.nvim_buf_set_option(bufnr or 0, k, v) end - return make_meta_accessor(nil_wrap(get), set) - end - vim.bo = new_buf_opt_accessor(0) - getmetatable(vim.bo).__call = function(_, bufnr) - return new_buf_opt_accessor(bufnr) + return make_meta_accessor(get, set) end + vim.bo = new_buf_opt_accessor(nil) local function new_win_opt_accessor(winnr) - local function get(k) return a.nvim_win_get_option(winnr, k) end - local function set(k, v) return a.nvim_win_set_option(winnr, k, v) end - return make_meta_accessor(nil_wrap(get), set) - end - vim.wo = new_win_opt_accessor(0) - getmetatable(vim.wo).__call = function(_, winnr) - return new_win_opt_accessor(winnr) + local function get(k) + if winnr == nil and type(k) == "number" then + return new_win_opt_accessor(k) + end + return a.nvim_win_get_option(winnr or nil, k) + end + local function set(k, v) return a.nvim_win_set_option(winnr or nil, k, v) end + return make_meta_accessor(get, set) end + vim.wo = new_win_opt_accessor(nil) end return module |