summaryrefslogtreecommitdiff
path: root/lua/telescope/_extensions/init.lua
diff options
context:
space:
mode:
authorfdschmidt93 <39233597+fdschmidt93@users.noreply.github.com>2021-12-27 17:55:43 +0100
committerGitHub <noreply@github.com>2021-12-27 17:55:43 +0100
commit3dafcb419b9b15855731f52965143ad6006726d4 (patch)
treea0d8126d2b49bd292d83257a51b886a0c8ed17ed /lua/telescope/_extensions/init.lua
parent88437804e157196f053d0fa62dc891facd9ab746 (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.lua24
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)