nvim/ftplugin/go.vim (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
setlocal noexpandtab
setlocal autoindent
setlocal shiftwidth=4
setlocal smarttab
setlocal formatoptions=croql
setlocal tabstop=4
lua <<EOF
function org_imports(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
EOF
augroup go_lsp
autocmd!
autocmd BufWritePre *.go :silent! lua vim.lsp.buf.format()
autocmd BufWritePre *.go :silent! lua org_imports(3000)
augroup END
|