|
@@ -1,32 +1,53 @@
|
|
|
-local dev_opts = {
|
|
|
+local default_workspace = {
|
|
|
library = {
|
|
|
- vimruntime = true, -- runtime path
|
|
|
- types = true, -- full signature, docs and completion of vim.api, vim.treesitter, vim.lsp and others
|
|
|
- -- plugins = true, -- installed opt or start plugins in packpath
|
|
|
- -- you can also specify the list of plugins to make available as a workspace library
|
|
|
- plugins = { "plenary.nvim" },
|
|
|
+ vim.fn.expand "$VIMRUNTIME",
|
|
|
+ get_lvim_base_dir(),
|
|
|
+ require("lua-dev.sumneko").types(),
|
|
|
},
|
|
|
- override = nil, -- function(root_dir, options) end,
|
|
|
+
|
|
|
+ maxPreload = 1000,
|
|
|
+ preloadFileSize = 10000,
|
|
|
}
|
|
|
|
|
|
-local lua_dev_loaded, lua_dev = pcall(require, "lua-dev")
|
|
|
-if lua_dev_loaded then
|
|
|
- lua_dev.setup(dev_opts)
|
|
|
+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
|
|
|
end
|
|
|
|
|
|
+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),
|
|
|
+})
|
|
|
+
|
|
|
local opts = {
|
|
|
settings = {
|
|
|
Lua = {
|
|
|
+ telemetry = { enable = false },
|
|
|
diagnostics = {
|
|
|
globals = { "vim", "lvim", "packer_plugins" },
|
|
|
},
|
|
|
- workspace = {
|
|
|
- library = {
|
|
|
- [require("lvim.utils").join_paths(get_runtime_dir(), "lvim", "lua")] = true,
|
|
|
- },
|
|
|
- maxPreload = 100000,
|
|
|
- preloadFileSize = 10000,
|
|
|
- },
|
|
|
+ workspace = default_workspace,
|
|
|
},
|
|
|
},
|
|
|
}
|