attempted fix for sumneko_lua -> lua_ls change, it didn't work

This commit is contained in:
Solomon Laing 2023-02-13 10:08:43 +10:30
parent 03104eb1bf
commit cf18461c24
2 changed files with 57 additions and 29 deletions

View File

@ -11,6 +11,11 @@ if not vim.loop.fs_stat(lazypath) then
})
end
-- map leader and register keymap for Lazy.
vim.g.mapleader = " "
vim.g.maplocalleader = " "
vim.api.nvim_set_keymap("n", "<leader>L", "<cmd>:Lazy<cr>", { desc = "Lazy GUI" })
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
if not vim.g.vscode then
@ -21,11 +26,6 @@ if not vim.g.vscode then
})
end
-- map leader and register keymap for Lazy.
vim.g.mapleader = " "
vim.g.maplocalleader = " "
vim.api.nvim_set_keymap("n", "<leader>L", "<cmd>:Lazy<cr>", { desc = "Lazy GUI" })
-- This might not be best, but it allows for easy resetting
ColorMe = function()
local colorscheme = "gruvbox-material"

View File

@ -12,9 +12,16 @@ return {
},
---@type lspconfig.options
opts = {
-- options for vim.diagnostic.config()
diagnostics = {
underline = true,
update_in_insert = false,
virtual_text = { spacing = 4, prefix = "" },
severity_sort = true,
},
servers = {
jsonls = {},
sumneko_lua = {
lua_ls = {
settings = {
Lua = {
workspace = {
@ -44,35 +51,56 @@ return {
name = "DiagnosticSign" .. name
vim.fn.sign_define(name, { text = icon, texthl = name, numhl = "" })
end
vim.diagnostic.config({
underline = true,
update_in_insert = false,
virtual_text = { spacing = 4, prefix = "" },
severity_sort = true,
})
---@type lspconfig.options
vim.diagnostic.config(opts.diagnostics)
local servers = opts.servers
local capabilities =
require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
require("mason-lspconfig").setup({ ensure_installed = vim.tbl_keys(servers) })
require("mason-lspconfig").setup_handlers({
function(server)
local server_opts = servers[server] or {}
server_opts.capabilities = capabilities
if opts.setup[server] then
if opts.setup[server](server, server_opts) then
return
end
elseif opts.setup["*"] then
if opts.setup["*"](server, server_opts) then
return
end
local function setup(server)
local server_opts = vim.tbl_deep_extend("force", {
capabilities = vim.deepcopy(capabilities),
}, servers[server] or {})
if opts.setup[server] then
if opts.setup[server](server, server_opts) then
return
end
require("lspconfig")[server].setup(server_opts)
end,
})
elseif opts.setup["*"] then
if opts.setup["*"](server, server_opts) then
return
end
end
require("lspconfig")[server].setup(server_opts)
end
-- temp fix for lspconfig rename
-- https://github.com/neovim/nvim-lspconfig/pull/2439
local mappings = require("mason-lspconfig.mappings.server")
if not mappings.lspconfig_to_package.lua_ls then
mappings.lspconfig_to_package.lua_ls = "lua-language-server"
mappings.package_to_lspconfig["lua-language-server"] = "lua_ls"
end
local mlsp = require("mason-lspconfig")
local available = mlsp.get_available_servers()
local ensure_installed = {} ---@type string[]
for server, server_opts in pairs(servers) do
if server_opts then
server_opts = server_opts == true and {} or server_opts
-- run manual setup if mason=false or if this is a server that cannot be installed with mason-lspconfig
if server_opts.mason == false or not vim.tbl_contains(available, server) then
setup(server)
else
ensure_installed[#ensure_installed + 1] = server
end
end
end
require("mason-lspconfig").setup({ ensure_installed = ensure_installed })
require("mason-lspconfig").setup_handlers({ setup })
end,
},