From 575023a95397394a0a219969fc974ec0dcfd9ae5 Mon Sep 17 00:00:00 2001 From: TJ DeVries Date: Thu, 28 Jan 2021 22:46:45 -0500 Subject: [PATCH] WIP: Starting --- lua/telescope/_extensions/init.lua | 45 ++++++++++++++++++------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/lua/telescope/_extensions/init.lua b/lua/telescope/_extensions/init.lua index b2775dc..7aa71dd 100644 --- a/lua/telescope/_extensions/init.lua +++ b/lua/telescope/_extensions/init.lua @@ -3,24 +3,6 @@ local extensions = {} extensions._loaded = {} extensions._config = {} -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 - - t[k] = ext.exports or {} - - return t[k] - end, -}) - --- Register an extension module. --- --- Extensions have several important keys. @@ -57,6 +39,33 @@ end extensions.set_config = function(extensions_config) extensions._config = extensions_config or {} + + for ext in pairs(extensions._config) do + extensions.load(ext) + end end +extensions._setup_extension = function(name, ext, conf) + if ext.setup then + print("Calling setup for ext: ", name) + ext.setup(conf or {}, require('telescope.config').values) + end +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 + + extensions._setup_extension(k, ext, extensions._config[k]) + + t[k] = ext.exports or {} + return t[k] + end, +}) + + return extensions