You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
navigator.lua/lua/navigator/lazyloader.lua

69 lines
2.3 KiB
Lua

return {
init = function()
local loader = nil
packer_plugins = packer_plugins or nil -- suppress warnings
local log = require('navigator.util').log
-- packer only
if packer_plugins ~= nil then -- packer install
local lazy_plugins = {
['nvim-lspconfig'] = 'neovim/nvim-lspconfig',
['guihua.lua'] = 'ray-x/guihua.lua',
}
if _NgConfigValues.lsp_installer == true then
lazy_plugins['nvim-lsp-installer'] = 'williamboman/nvim-lsp-installer'
end
-- packer installed
loader = require('packer').loader
for plugin, url in pairs(lazy_plugins) do
if not packer_plugins[url] or not packer_plugins[url].loaded then
-- log("loading ", plugin)
loader(plugin)
end
end
else
loader = function(plugin)
local cmd = 'packadd ' .. plugin
vim.cmd(cmd)
end
end
if _NgConfigValues.lsp_installer == true then
vim.cmd('packadd nvim-lsp-installer')
local has_lspinst, lspinst = pcall(require, 'nvim-lsp-installer')
log('lsp_installer installed', has_lspinst)
if has_lspinst then
lspinst.setup()
local configs = require('lspconfig/configs')
local servers = require('nvim-lsp-installer').get_installed_servers()
for _, server in pairs(servers) do
local cfg = require('navigator.lspclient.clients').get_cfg(server)
local lsp_inst_cfg = configs[server]
if lsp_inst_cfg and lsp_inst_cfg.document_config.default_config then
lsp_inst_cfg = lsp_inst_cfg.document_config.default_config
lsp_inst_cfg = vim.tbl_deep_extend('keep', lsp_inst_cfg, cfg)
require('lspconfig')[server].setup(lsp_inst_cfg)
end
end
end
end
end,
load = function(plugin_name, path)
local loader = nil
packer_plugins = packer_plugins or nil -- suppress warnings
-- packer only
if packer_plugins ~= nil then -- packer install
local lazy_plugins = {}
lazy_plugins[plugin_name] = path
loader = require('packer').loader
for plugin, _ in pairs(lazy_plugins) do
if packer_plugins[plugin] and packer_plugins[plugin].loaded == false then
-- log("loading ", plugin)
pcall(loader, plugin)
end
end
end
end,
}