From 0907383db4112b78c78626ac97fc73fa5df7f9c0 Mon Sep 17 00:00:00 2001 From: Bruno Carlin Date: Wed, 27 Apr 2022 21:04:44 +0200 Subject: [PATCH] fix(nvim): update code formatting with gopls --- nvim/.config/nvim/lua/lsp/gopls.lua | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/nvim/.config/nvim/lua/lsp/gopls.lua b/nvim/.config/nvim/lua/lsp/gopls.lua index 0bf4369..d252d4d 100644 --- a/nvim/.config/nvim/lua/lsp/gopls.lua +++ b/nvim/.config/nvim/lua/lsp/gopls.lua @@ -1,5 +1,20 @@ local common = require('lsp.common') +function OrgImports(wait_ms) + local params = vim.lsp.util.make_range_params() + params.context = {only = {"source.organizeImports"}} + local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, wait_ms) + 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-16") + else + vim.lsp.buf.execute_command(r.command) + end + end + end +end + function goimports(timeout_ms) local context = { only = { "source.organizeImports" } } vim.validate { context = { context, "t", true } } @@ -38,14 +53,14 @@ function goimports(timeout_ms) end function format_with_imports(timeout_ms) - goimports(1000) + OrgImports(1000) vim.lsp.buf.formatting() end vim.cmd [[ augroup gopls autocmd! - autocmd BufWritePre *.go lua format_with_imports(1000) + autocmd BufWritePre *.go lua format_with_imports(1000, "utf-16") augroup END ]]