Simplify LSP configuration
This commit is contained in:
parent
f04a4d385c
commit
7912f00231
|
@ -20,16 +20,6 @@ local buf_inoremap = function(opts)
|
||||||
imap(opts)
|
imap(opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
local default_capabilities = vim.lsp.protocol.make_client_capabilities()
|
|
||||||
default_capabilities = require("cmp_nvim_lsp").default_capabilities(default_capabilities)
|
|
||||||
|
|
||||||
local custom_init = function(client)
|
|
||||||
client.config.flags = client.config.flags or {}
|
|
||||||
client.config.flags.allow_incremental_sync = true
|
|
||||||
end
|
|
||||||
|
|
||||||
local handlers = require "opdavies.lsp.handlers"
|
|
||||||
|
|
||||||
local custom_attach = function(client)
|
local custom_attach = function(client)
|
||||||
local filetype = vim.api.nvim_buf_get_option(0, "filetype")
|
local filetype = vim.api.nvim_buf_get_option(0, "filetype")
|
||||||
|
|
||||||
|
@ -42,6 +32,9 @@ local custom_attach = function(client)
|
||||||
buf_nnoremap { "<leader>rr", "<cmd>LspRestart<cr>" }
|
buf_nnoremap { "<leader>rr", "<cmd>LspRestart<cr>" }
|
||||||
buf_nnoremap { "[d", vim.diagnostic.goto_prev }
|
buf_nnoremap { "[d", vim.diagnostic.goto_prev }
|
||||||
buf_nnoremap { "]d", vim.diagnostic.goto_next }
|
buf_nnoremap { "]d", vim.diagnostic.goto_next }
|
||||||
|
|
||||||
|
local handlers = require "opdavies.lsp.handlers"
|
||||||
|
|
||||||
buf_nnoremap { "gD", vim.lsp.buf.declaration }
|
buf_nnoremap { "gD", vim.lsp.buf.declaration }
|
||||||
buf_nnoremap { "gd", handlers.definition }
|
buf_nnoremap { "gd", handlers.definition }
|
||||||
buf_nnoremap { "gi", vim.lsp.buf.implementation }
|
buf_nnoremap { "gi", vim.lsp.buf.implementation }
|
||||||
|
@ -99,9 +92,11 @@ local servers = {
|
||||||
tailwindcss = {
|
tailwindcss = {
|
||||||
filetypes = { "html", "html.twig", "javascript", "typescript", "vue" },
|
filetypes = { "html", "html.twig", "javascript", "typescript", "vue" },
|
||||||
|
|
||||||
init_options = {
|
settings = {
|
||||||
userLanguages = {
|
init_options = {
|
||||||
["html.twig"] = "html",
|
userLanguages = {
|
||||||
|
["html.twig"] = "html",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -117,27 +112,19 @@ local servers = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
local setup_server = function(server, config)
|
local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
config = vim.tbl_deep_extend("force", {
|
|
||||||
on_init = custom_init,
|
for server_name in pairs(servers) do
|
||||||
|
lspconfig[server_name].setup {
|
||||||
|
capabilities = capabilities,
|
||||||
|
filetypes = (servers[server_name] or {}).filetypes,
|
||||||
on_attach = custom_attach,
|
on_attach = custom_attach,
|
||||||
capabilities = default_capabilities,
|
settings = (servers[server_name] or {}).settings,
|
||||||
flags = {
|
}
|
||||||
debounce_text_changes = nil,
|
|
||||||
},
|
|
||||||
}, config)
|
|
||||||
|
|
||||||
lspconfig[server].setup(config)
|
|
||||||
end
|
|
||||||
|
|
||||||
for server, config in pairs(servers) do
|
|
||||||
setup_server(server, config)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.diagnostic.config {
|
vim.diagnostic.config {
|
||||||
float = {
|
float = { source = true },
|
||||||
source = true,
|
|
||||||
},
|
|
||||||
signs = true,
|
signs = true,
|
||||||
underline = false,
|
underline = false,
|
||||||
update_in_insert = false,
|
update_in_insert = false,
|
||||||
|
|
Reference in a new issue