diff options
author | bfredl <bjorn.linse@gmail.com> | 2022-03-07 11:01:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-07 11:01:50 +0100 |
commit | c3cc17f0e61d70436c601444298fceeafbfbacb3 (patch) | |
tree | 2c76e5a9cdc0f76f4462c9ef56fe7a20af1c27db /runtime/lua/vim/_init_packages.lua | |
parent | 5f3fff62a8d6b7a9e1b693f4e4a99e3c2d90789c (diff) | |
parent | f39a12d629500bdbacb389ed593adac34d058fcb (diff) | |
download | rneovim-c3cc17f0e61d70436c601444298fceeafbfbacb3.tar.gz rneovim-c3cc17f0e61d70436c601444298fceeafbfbacb3.tar.bz2 rneovim-c3cc17f0e61d70436c601444298fceeafbfbacb3.zip |
Merge pull request #17621 from bfredl/luaindex
refactor(lua): make vim submodule lazy loading declarative
Diffstat (limited to 'runtime/lua/vim/_init_packages.lua')
-rw-r--r-- | runtime/lua/vim/_init_packages.lua | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/runtime/lua/vim/_init_packages.lua b/runtime/lua/vim/_init_packages.lua index dcb402287c..7d27741f1b 100644 --- a/runtime/lua/vim/_init_packages.lua +++ b/runtime/lua/vim/_init_packages.lua @@ -50,7 +50,25 @@ table.insert(package.loaders, 2, vim._load_package) -- builtin functions which always should be available require'vim.shared' -vim.inspect = require'vim.inspect' + +vim._submodules = {inspect=true} + +-- These are for loading runtime modules in the vim namespace lazily. +setmetatable(vim, { + __index = function(t, key) + if vim._submodules[key] then + t[key] = require('vim.'..key) + return t[key] + elseif vim.startswith(key, 'uri_') then + local val = require('vim.uri')[key] + if val ~= nil then + -- Expose all `vim.uri` functions on the `vim` module. + t[key] = val + return t[key] + end + end + end +}) --- <Docs described in |vim.empty_dict()| > ---@private |