diff --git a/nvim/.config/nvim/lua/custom/configs/lspconfig.lua b/nvim/.config/nvim/lua/custom/configs/lspconfig.lua new file mode 100644 index 0000000..cf60d81 --- /dev/null +++ b/nvim/.config/nvim/lua/custom/configs/lspconfig.lua @@ -0,0 +1,22 @@ +local on_attach = require("plugins.configs.lspconfig").on_attach +local capabilities = require("plugins.configs.lspconfig").capabilities + +local lspconfig = require("lspconfig") +local util = require "lspconfig/util" + +lspconfig.gopls.setup { + on_attach = on_attach, + capabilities = capabilities, + cmd = {"gopls"}, + filetypes = { "go", "gomod", "gowork", "gotmpl" }, + root_dir = util.root_pattern("go.work", "go.mod", ".git"), + settings = { + gopls = { + completeUnimported = true, + usePlaceholders = true, + analyses = { + unusedparams = true + } + } + } +} diff --git a/nvim/.config/nvim/lua/custom/configs/null-ls.lua b/nvim/.config/nvim/lua/custom/configs/null-ls.lua new file mode 100644 index 0000000..5d6020a --- /dev/null +++ b/nvim/.config/nvim/lua/custom/configs/null-ls.lua @@ -0,0 +1,26 @@ +local null_ls = require("null-ls") +local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) + +local opts = { + sources = { + null_ls.builtins.formatting.gofumpt, + null_ls.builtins.formatting.goimports_reviser, + null_ls.builtins.formatting.golines + }, + on_attach = function(client, bufnr) + if client.supports_method("textDocument/formatting") then + vim.api.nvim_clear_autocmds({ + group = augroup, + buffer = bufnr + }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + vim.lsp.buf.format({ bufnr = bufnr }) + end + }) + end + end +} +return opts