summaryrefslogtreecommitdiff
path: root/config/nvim/lua/lsp.lua
diff options
context:
space:
mode:
Diffstat (limited to 'config/nvim/lua/lsp.lua')
-rw-r--r--config/nvim/lua/lsp.lua31
1 files changed, 31 insertions, 0 deletions
diff --git a/config/nvim/lua/lsp.lua b/config/nvim/lua/lsp.lua
new file mode 100644
index 0000000..f12ecae
--- /dev/null
+++ b/config/nvim/lua/lsp.lua
@@ -0,0 +1,31 @@
+-- инициализация 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" },
+}))