diff options
| author | fdschmidt93 <39233597+fdschmidt93@users.noreply.github.com> | 2021-12-27 17:55:43 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-27 17:55:43 +0100 |
| commit | 3dafcb419b9b15855731f52965143ad6006726d4 (patch) | |
| tree | a0d8126d2b49bd292d83257a51b886a0c8ed17ed /lua/telescope/_extensions/init.lua | |
| parent | 88437804e157196f053d0fa62dc891facd9ab746 (diff) | |
fix: too early setup on initial extension access (#1601)
Diffstat (limited to 'lua/telescope/_extensions/init.lua')
| -rw-r--r-- | lua/telescope/_extensions/init.lua | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/lua/telescope/_extensions/init.lua b/lua/telescope/_extensions/init.lua index c3349ff..38a9963 100644 --- a/lua/telescope/_extensions/init.lua +++ b/lua/telescope/_extensions/init.lua @@ -4,18 +4,17 @@ extensions._loaded = {} extensions._config = {} extensions._health = {} +local load_extension = function(name) + local ok, ext = pcall(require, "telescope._extensions." .. name) + if not ok then + error("This extension doesn't exist or is not installed: " .. name .. "\n" .. ext) + end + return ext +end + extensions.manager = setmetatable({}, { __index = function(t, k) - -- See if this extension exists. - local ok, ext = pcall(require, "telescope._extensions." .. k) - if not ok then - error("This extension doesn't exist or is not installed: " .. k .. "\n" .. ext) - end - - if ext.setup then - ext.setup(extensions._config[k] or {}, require("telescope.config").values) - end - + local ext = load_extension(k) t[k] = ext.exports or {} extensions._health[k] = ext.health @@ -57,7 +56,10 @@ extensions.register = function(mod) end extensions.load = function(name) - return extensions.manager[name] + local ext = load_extension(name) + if ext.setup then + ext.setup(extensions._config[name] or {}, require("telescope.config").values) + end end extensions.set_config = function(extensions_config) |
