mirror of
https://github.com/LunarVim/LunarVim.git
synced 2024-09-20 10:35:08 +02:00
fix(lsp): enforce lvim completion for lua-server (#3035)
This commit is contained in:
parent
26d493419a
commit
68fdbaa51d
2 changed files with 47 additions and 17 deletions
9
.luarc.json
Normal file
9
.luarc.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
|
||||
"Lua.diagnostics.disable": [
|
||||
"redundant-parameter",
|
||||
"param-type-mismatch",
|
||||
"missing-parameter"
|
||||
],
|
||||
"diagnostics.libraryFiles": "Disable"
|
||||
}
|
|
@ -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,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue