summaryrefslogtreecommitdiff
path: root/lua/lsp/go-ls.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lsp/go-ls.lua')
-rw-r--r--lua/lsp/go-ls.lua19
1 files changed, 17 insertions, 2 deletions
diff --git a/lua/lsp/go-ls.lua b/lua/lsp/go-ls.lua
index 201873a8..4af87a9d 100644
--- a/lua/lsp/go-ls.lua
+++ b/lua/lsp/go-ls.lua
@@ -1,7 +1,22 @@
-require'lspconfig'.gopls.setup{
+require'lspconfig'.gopls.setup {
cmd = {DATA_PATH .. "/lspinstall/go/gopls"},
settings = {gopls = {analyses = {unusedparams = true}, staticcheck = true}},
- root_dir = require'lspconfig'.util.root_pattern(".git","go.mod"),
+ root_dir = require'lspconfig'.util.root_pattern(".git", "go.mod"),
init_options = {usePlaceholders = true, completeUnimported = true},
on_attach = require'lsp'.common_on_attach
}
+
+if O.lang.go.autoformat then
+ require('lv-utils').define_augroups({
+ _go_format = {
+ 'BufWritePre', '*.go', 'lua vim.lsp.buf.formatting_sync(nil,1000)'
+ },
+ _go = {
+ -- Go generally requires Tabs instead of spaces.
+ {'FileType', 'go', 'setlocal tabstop=4'},
+ {'FileType', 'go', 'setlocal shiftwidth=4'},
+ {'FileType', 'go', 'setlocal softtabstop=4'},
+ {'FileType', 'go', 'setlocal noexpandtab'}
+ }
+ })
+end