31 lines
887 B
Lua
31 lines
887 B
Lua
-- инициализация LSP для различных ЯП
|
|
local lspconfig = require("lspconfig")
|
|
local util = require("lspconfig/util")
|
|
|
|
local function config(_config)
|
|
return vim.tbl_deep_extend("force", {
|
|
capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()),
|
|
}, _config or {})
|
|
end
|
|
-- иницализация gopls LSP для Go
|
|
-- https://github.com/golang/tools/blob/master/gopls/doc/vim.md#neovim-install
|
|
lspconfig.gopls.setup(config({
|
|
cmd = { "gopls", "serve" },
|
|
filetypes = { "go", "go.mod" },
|
|
root_dir = util.root_pattern("go.work", "go.mod", ".git"),
|
|
settings = {
|
|
gopls = {
|
|
analyses = {
|
|
unusedparams = true,
|
|
},
|
|
staticcheck = true,
|
|
gofumpt = true,
|
|
},
|
|
},
|
|
}))
|
|
|
|
lspconfig.templ.setup(config({
|
|
cmd = {"templ", "lsp"},
|
|
filetypes = {"templ"},
|
|
root_markers = { "go.work", "go.mod", ".git" },
|
|
}))
|