fix(nvim): update config for gopls
This commit is contained in:
parent
b8eb57b652
commit
9b7da8ef75
1 changed files with 26 additions and 6 deletions
|
@ -1,15 +1,28 @@
|
||||||
vim.api.nvim_create_autocmd('BufWritePre', {
|
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||||
pattern = '*.go',
|
pattern = "*.go",
|
||||||
callback = function()
|
callback = function()
|
||||||
vim.lsp.buf.code_action({ context = { only = { 'source.organizeImports' } }, apply = true })
|
local params = vim.lsp.util.make_range_params()
|
||||||
vim.lsp.buf.format()
|
params.context = {only = {"source.organizeImports"}}
|
||||||
|
-- buf_request_sync defaults to a 1000ms timeout. Depending on your
|
||||||
|
-- machine and codebase, you may want longer. Add an additional
|
||||||
|
-- argument after params if you find that you have to write the file
|
||||||
|
-- twice for changes to be saved.
|
||||||
|
-- E.g., vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, 3000)
|
||||||
|
local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params)
|
||||||
|
for cid, res in pairs(result or {}) do
|
||||||
|
for _, r in pairs(res.result or {}) do
|
||||||
|
if r.edit then
|
||||||
|
local enc = (vim.lsp.get_client_by_id(cid) or {}).offset_encoding or "utf-16"
|
||||||
|
vim.lsp.util.apply_workspace_edit(r.edit, enc)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.lsp.buf.format({async = false})
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
|
||||||
|
|
||||||
require('lspconfig').gopls.setup {
|
require('lspconfig').gopls.setup {
|
||||||
capabilities = capabilities,
|
|
||||||
flags = {
|
flags = {
|
||||||
debounce_text_changes = 150,
|
debounce_text_changes = 150,
|
||||||
},
|
},
|
||||||
|
@ -20,7 +33,9 @@ require('lspconfig').gopls.setup {
|
||||||
gofumpt = true,
|
gofumpt = true,
|
||||||
usePlaceholders = true,
|
usePlaceholders = true,
|
||||||
completeUnimported = true,
|
completeUnimported = true,
|
||||||
|
completeFunctionCalls = true,
|
||||||
experimentalPostfixCompletions = true,
|
experimentalPostfixCompletions = true,
|
||||||
|
allExperiments = true,
|
||||||
analyses = {
|
analyses = {
|
||||||
assign = true,
|
assign = true,
|
||||||
atomic = true,
|
atomic = true,
|
||||||
|
@ -56,6 +71,11 @@ require('lspconfig').gopls.setup {
|
||||||
useany = true,
|
useany = true,
|
||||||
nonewvars = true,
|
nonewvars = true,
|
||||||
},
|
},
|
||||||
|
codelenses = {
|
||||||
|
generate = true,
|
||||||
|
gc_details = true,
|
||||||
|
run_govulncheck = true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue