fix(nvim): update code formatting with gopls

This commit is contained in:
Bruno Carlin 2022-04-27 21:04:44 +02:00
parent a932b58c4f
commit 0907383db4

View file

@ -1,5 +1,20 @@
local common = require('lsp.common') 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) function goimports(timeout_ms)
local context = { only = { "source.organizeImports" } } local context = { only = { "source.organizeImports" } }
vim.validate { context = { context, "t", true } } vim.validate { context = { context, "t", true } }
@ -38,14 +53,14 @@ function goimports(timeout_ms)
end end
function format_with_imports(timeout_ms) function format_with_imports(timeout_ms)
goimports(1000) OrgImports(1000)
vim.lsp.buf.formatting() vim.lsp.buf.formatting()
end end
vim.cmd [[ vim.cmd [[
augroup gopls augroup gopls
autocmd! autocmd!
autocmd BufWritePre *.go lua format_with_imports(1000) autocmd BufWritePre *.go lua format_with_imports(1000, "utf-16")
augroup END augroup END
]] ]]