2022-09-19 13:10:07 +02:00
|
|
|
local default_workspace = {
|
2022-09-12 18:41:25 +02:00
|
|
|
library = {
|
2022-09-19 13:10:07 +02:00
|
|
|
vim.fn.expand "$VIMRUNTIME",
|
|
|
|
get_lvim_base_dir(),
|
2022-10-12 14:46:53 +02:00
|
|
|
require("lua-dev.config").types(),
|
2022-09-12 18:41:25 +02:00
|
|
|
},
|
2022-09-19 13:10:07 +02:00
|
|
|
|
2022-10-12 14:46:53 +02:00
|
|
|
maxPreload = 5000,
|
2022-09-19 13:10:07 +02:00
|
|
|
preloadFileSize = 10000,
|
2022-09-12 18:41:25 +02:00
|
|
|
}
|
|
|
|
|
2022-09-19 13:10:07 +02:00
|
|
|
local add_packages_to_workspace = function(packages, config)
|
|
|
|
-- config.settings.Lua = config.settings.Lua or { workspace = default_workspace }
|
|
|
|
local runtimedirs = vim.api.nvim__get_runtime({ "lua" }, true, { is_lua = true })
|
|
|
|
local workspace = config.settings.Lua.workspace
|
|
|
|
for _, v in pairs(runtimedirs) do
|
|
|
|
for _, pack in ipairs(packages) do
|
|
|
|
if v:match(pack) and not vim.tbl_contains(workspace.library, v) then
|
|
|
|
table.insert(workspace.library, v)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2022-09-12 18:41:25 +02:00
|
|
|
end
|
|
|
|
|
2022-09-19 13:10:07 +02:00
|
|
|
local lspconfig = require "lspconfig"
|
|
|
|
|
|
|
|
local make_on_new_config = function(on_new_config, _)
|
|
|
|
return lspconfig.util.add_hook_before(on_new_config, function(new_config, _)
|
|
|
|
local server_name = new_config.name
|
|
|
|
|
|
|
|
if server_name ~= "sumneko_lua" then
|
|
|
|
return
|
|
|
|
end
|
|
|
|
local plugins = { "plenary.nvim", "telescope.nvim", "nvim-treesitter", "LuaSnip" }
|
|
|
|
add_packages_to_workspace(plugins, new_config)
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
|
|
|
|
lspconfig.util.default_config = vim.tbl_extend("force", lspconfig.util.default_config, {
|
|
|
|
on_new_config = make_on_new_config(lspconfig.util.default_config.on_new_config),
|
|
|
|
})
|
|
|
|
|
2021-10-03 16:13:46 +02:00
|
|
|
local opts = {
|
|
|
|
settings = {
|
|
|
|
Lua = {
|
2022-09-19 13:10:07 +02:00
|
|
|
telemetry = { enable = false },
|
2022-10-03 02:56:23 +02:00
|
|
|
runtime = {
|
|
|
|
version = "LuaJIT",
|
|
|
|
special = {
|
|
|
|
reload = "require",
|
|
|
|
},
|
|
|
|
},
|
2021-10-03 16:13:46 +02:00
|
|
|
diagnostics = {
|
2022-10-03 02:56:23 +02:00
|
|
|
globals = { "vim", "lvim", "packer_plugins", "reload" },
|
2021-10-03 16:13:46 +02:00
|
|
|
},
|
2022-09-19 13:10:07 +02:00
|
|
|
workspace = default_workspace,
|
2021-10-03 16:13:46 +02:00
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
2021-12-28 10:02:26 +01:00
|
|
|
|
2022-09-12 18:41:25 +02:00
|
|
|
return opts
|