|
|
|
# chezmoi:template:left-delimiter=--{{
|
|
|
|
--{{- /* vim: set filetype=lua: */ -}}
|
|
|
|
local M = { "neovim/nvim-lspconfig" }
|
|
|
|
|
|
|
|
M.name = "lspconfig"
|
|
|
|
M.tag = "v1.0.0"
|
|
|
|
|
|
|
|
M.dependencies = {
|
|
|
|
{ "j-hui/fidget.nvim", tag = "legacy", opts = {} },
|
|
|
|
{ "folke/trouble.nvim", tag = "v3.6.0" },
|
|
|
|
{ "folke/lazydev.nvim", tag = "v1.9.0", ft = "lua", opts = {} },
|
|
|
|
}
|
|
|
|
|
|
|
|
local function format_buffer(_)
|
|
|
|
vim.lsp.buf.format()
|
|
|
|
end
|
|
|
|
|
|
|
|
local function on_attach(_, buffer)
|
|
|
|
-- Create a command `:Format` local to the LSP buffer
|
|
|
|
vim.api.nvim_buf_create_user_command(buffer, "Format", format_buffer, {
|
|
|
|
desc = "Format current buffer with LSP",
|
|
|
|
})
|
|
|
|
end
|
|
|
|
|
|
|
|
function M.config()
|
|
|
|
local lspconfig = require("lspconfig")
|
|
|
|
|
|
|
|
local capabilities = require("cmp_nvim_lsp").default_capabilities(
|
|
|
|
vim.lsp.protocol.make_client_capabilities())
|
|
|
|
|
|
|
|
--{{ if lookPath "bash-language-server" -}}
|
|
|
|
-- npm install --global bash-language-server
|
|
|
|
lspconfig.bashls.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {},
|
|
|
|
}
|
|
|
|
--{{- end }}
|
|
|
|
--
|
|
|
|
--{{ if lookPath "buf" -}}
|
|
|
|
lspconfig.buf_ls.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {},
|
|
|
|
}
|
|
|
|
--{{- end }}
|
|
|
|
|
|
|
|
--{{ if lookPath "go" -}}
|
|
|
|
lspconfig.gopls.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {},
|
|
|
|
}
|
|
|
|
--{{- end }}
|
|
|
|
|
|
|
|
--{{ if lookPath "nu" -}}
|
|
|
|
lspconfig.nushell.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {},
|
|
|
|
}
|
|
|
|
--{{- end }}
|
|
|
|
|
|
|
|
--{{ if lookPath "templ" -}}
|
|
|
|
lspconfig.templ.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {},
|
|
|
|
}
|
|
|
|
--{{- end }}
|
|
|
|
|
|
|
|
--{{ if lookPath "vscode-eslint-language-server" -}}
|
|
|
|
-- # npm i -g vscode-langservers-extracted
|
|
|
|
lspconfig.eslint.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {},
|
|
|
|
}
|
|
|
|
|
|
|
|
lspconfig.html.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {},
|
|
|
|
}
|
|
|
|
|
|
|
|
lspconfig.cssls.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {},
|
|
|
|
}
|
|
|
|
|
|
|
|
lspconfig.jsonls.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {},
|
|
|
|
}
|
|
|
|
--{{- end }}
|
|
|
|
|
|
|
|
--{{ if lookPath "lua-language-server" -}}
|
|
|
|
lspconfig.lua_ls.setup {
|
|
|
|
capabilities = capabilities,
|
|
|
|
on_attach = on_attach,
|
|
|
|
settings = {
|
|
|
|
Lua = {
|
|
|
|
workspace = { checkThirdParty = false },
|
|
|
|
telemetry = { enable = false },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
--{{- end }}
|
|
|
|
end
|
|
|
|
|
|
|
|
return M
|