diff --git a/lua/plugins/lsp/config.lua b/lua/plugins/lsp/config.lua index 57335bf..b55cd81 100644 --- a/lua/plugins/lsp/config.lua +++ b/lua/plugins/lsp/config.lua @@ -13,6 +13,38 @@ lspconfig.lua_ls.setup({ }, }) +lspconfig.gopls.setup({ + on_attach = function(_, bufnr) + -- autcmd format on save + vim.api.nvim_create_autocmd("BufWritePre", { + buffer = bufnr, + callback = function() + vim.lsp.buf.format() + end, + }) + + -- autocmd Organize Imports on save + vim.api.nvim_create_autocmd("BufWritePre", { + buffer = bufnr, + callback = function() + local params = vim.lsp.util.make_range_params() + params.context = {only = {"source.organizeImports"}} + local result = vim.lsp.buf_request_sync(bufnr, "textDocument/codeAction", params, 1000) + for _, res in pairs(result or {}) do + for _, r in pairs(res.result or {}) do + if r.edit then + vim.lsp.util.apply_workspace_edit(r.edit, "utf-8") + else + vim.lsp.buf.execute_command(r.command) + end + end + end + end, + }) + end, +}) + + lspconfig.eslint.setup({ on_attach = function(_, bufnr) vim.api.nvim_create_autocmd("BufWritePre", {