12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- local default_workspace = {
- library = {
- vim.fn.expand "$VIMRUNTIME",
- get_lvim_base_dir(),
- require("lua-dev.config").types(),
- },
- maxPreload = 5000,
- preloadFileSize = 10000,
- }
- 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 },
- runtime = {
- version = "LuaJIT",
- special = {
- reload = "require",
- },
- },
- diagnostics = {
- globals = { "vim", "lvim", "packer_plugins", "reload" },
- },
- workspace = default_workspace,
- },
- },
- }
- return opts
|