summaryrefslogtreecommitdiff
path: root/ftplugin/go.lua
diff options
context:
space:
mode:
Diffstat (limited to 'ftplugin/go.lua')
-rw-r--r--ftplugin/go.lua22
1 files changed, 22 insertions, 0 deletions
diff --git a/ftplugin/go.lua b/ftplugin/go.lua
new file mode 100644
index 00000000..b2d6a82a
--- /dev/null
+++ b/ftplugin/go.lua
@@ -0,0 +1,22 @@
+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"),
+ 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