feat: golang ide config with format
This commit is contained in:
parent
06d2d1ed02
commit
7b9425ca82
@ -21,6 +21,9 @@ sudo npm install -g typescript typescript-language-server
|
|||||||
sudo npm install -g @volar/vue-language-server
|
sudo npm install -g @volar/vue-language-server
|
||||||
sudo npm install -g eslint_d
|
sudo npm install -g eslint_d
|
||||||
go install github.com/yoheimuta/protolint/cmd/protolint@latest
|
go install github.com/yoheimuta/protolint/cmd/protolint@latest
|
||||||
|
go install -v github.com/incu6us/goimports-reviser/v3@latest
|
||||||
|
go install github.com/segmentio/golines@latest
|
||||||
|
go install mvdan.cc/gofumpt@latest
|
||||||
```
|
```
|
||||||
|
|
||||||
### 记忆项
|
### 记忆项
|
||||||
|
2
init.lua
2
init.lua
@ -48,8 +48,6 @@ require("lsp.clang")
|
|||||||
require("plugins.java")
|
require("plugins.java")
|
||||||
-- lspsaga
|
-- lspsaga
|
||||||
require("plugins.lspsaga")
|
require("plugins.lspsaga")
|
||||||
-- golang lsp
|
|
||||||
require("plugins.golang")
|
|
||||||
-- rust ide
|
-- rust ide
|
||||||
require("plugins.rust")
|
require("plugins.rust")
|
||||||
-- 载入主题
|
-- 载入主题
|
||||||
|
@ -56,8 +56,8 @@ map.set("n", "qn", ":q!<CR>", noreopt)
|
|||||||
map.set("n", "qq", ":qa!<CR>", noreopt)
|
map.set("n", "qq", ":qa!<CR>", noreopt)
|
||||||
map.set("i", "jk", "<ESC>", noreopt)
|
map.set("i", "jk", "<ESC>", noreopt)
|
||||||
-- 文件页切换
|
-- 文件页切换
|
||||||
map.set("n", "<leader>ll", ":BufferLineCyclePrev<CR>", noreopt)
|
map.set("n", "<leader>hh", ":BufferLineCyclePrev<CR>", noreopt)
|
||||||
map.set("n", "<leader>hh", ":BufferLineCycleNext<CR>", noreopt)
|
map.set("n", "<leader>ll", ":BufferLineCycleNext<CR>", noreopt)
|
||||||
map.set("n", "<leader>bpi", ":BufferLineTogglePin<CR>", noreopt)
|
map.set("n", "<leader>bpi", ":BufferLineTogglePin<CR>", noreopt)
|
||||||
map.set("n", "<leader>bcl", ":BufferLineCloseLeft<CR>", noreopt)
|
map.set("n", "<leader>bcl", ":BufferLineCloseLeft<CR>", noreopt)
|
||||||
map.set("n", "<leader>bcr", ":BufferLineCloseRight<CR>", noreopt)
|
map.set("n", "<leader>bcr", ":BufferLineCloseRight<CR>", noreopt)
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
require("go").setup({
|
||||||
|
lsp_cfg = false,
|
||||||
|
})
|
||||||
|
|
||||||
local has_words_before = function()
|
local has_words_before = function()
|
||||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||||
@ -44,30 +48,5 @@ cmp.setup({
|
|||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
local capabilities = require("cmp_nvim_lsp").default_capabilities() --nvim-cmp
|
local cfg = require("go.lsp").config() -- config() return the go.nvim gopls setup
|
||||||
|
require("lspconfig").gopls.setup(cfg)
|
||||||
require("lspconfig").golangci_lint_ls.setup({
|
|
||||||
on_attach = common_lsp_on_attach,
|
|
||||||
flags = common_lsp_flags,
|
|
||||||
})
|
|
||||||
|
|
||||||
util = require("lspconfig/util")
|
|
||||||
require("lspconfig").gopls.setup({
|
|
||||||
cmd = { "gopls" },
|
|
||||||
filetypes = { "go", "gomod" },
|
|
||||||
root_dir = util.root_pattern("go.work", "go.mod", ".git"),
|
|
||||||
on_attach = common_lsp_on_attach,
|
|
||||||
flags = common_lsp_flags,
|
|
||||||
capabilities = capabilities,
|
|
||||||
settings = {
|
|
||||||
gopls = {
|
|
||||||
experimentalPostfixCompletions = true,
|
|
||||||
analyses = {
|
|
||||||
unusedparams = true,
|
|
||||||
shadow = true,
|
|
||||||
},
|
|
||||||
staticcheck = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
init_options = { usePlaceholders = true },
|
|
||||||
})
|
|
||||||
|
@ -18,7 +18,7 @@ require("nvim-tree").setup({
|
|||||||
filters = {
|
filters = {
|
||||||
custom = {},
|
custom = {},
|
||||||
dotfiles = true,
|
dotfiles = true,
|
||||||
exclude = { ".golangci*", ".protolint*", ".gitignore" },
|
exclude = { ".golangci*", ".protolint*", ".gitignore", ".eslintrc*" },
|
||||||
},
|
},
|
||||||
filesystem_watchers = {
|
filesystem_watchers = {
|
||||||
enable = true,
|
enable = true,
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
require("go").setup()
|
|
||||||
local format_sync_grp = vim.api.nvim_create_augroup("GoImport", {})
|
|
||||||
vim.api.nvim_create_autocmd("InsertLeavePre", {
|
|
||||||
pattern = "*.go",
|
|
||||||
callback = function()
|
|
||||||
require("go.format").goimport()
|
|
||||||
end,
|
|
||||||
group = format_sync_grp,
|
|
||||||
})
|
|
@ -1,15 +1,33 @@
|
|||||||
local null_ls = require("null-ls")
|
local null_ls = require("null-ls")
|
||||||
|
|
||||||
|
local sources = {
|
||||||
|
null_ls.builtins.formatting.stylua,
|
||||||
|
null_ls.builtins.formatting.goimports_reviser,
|
||||||
|
null_ls.builtins.formatting.golines.with({
|
||||||
|
extra_args = {
|
||||||
|
"--max-len=180",
|
||||||
|
"--base-formatter=gofumpt",
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
null_ls.builtins.formatting.eslint_d,
|
||||||
|
null_ls.builtins.formatting.yamlfmt,
|
||||||
|
null_ls.builtins.formatting.protolint,
|
||||||
|
-- 诊断
|
||||||
|
null_ls.builtins.diagnostics.eslint_d,
|
||||||
|
null_ls.builtins.diagnostics.protolint,
|
||||||
|
}
|
||||||
|
|
||||||
|
local gotest = require("go.null_ls").gotest()
|
||||||
|
local gotest_codeaction = require("go.null_ls").gotest_action()
|
||||||
|
local golangci_lint = require("go.null_ls").golangci_lint()
|
||||||
|
table.insert(sources, gotest)
|
||||||
|
table.insert(sources, golangci_lint)
|
||||||
|
table.insert(sources, gotest_codeaction)
|
||||||
|
|
||||||
null_ls.setup({
|
null_ls.setup({
|
||||||
debounce = 500,
|
debounce = 1000,
|
||||||
sources = {
|
default_timeout = 5000,
|
||||||
null_ls.builtins.formatting.stylua,
|
sources = sources,
|
||||||
null_ls.builtins.formatting.gofmt,
|
|
||||||
null_ls.builtins.formatting.eslint_d,
|
|
||||||
null_ls.builtins.formatting.yamlfmt,
|
|
||||||
null_ls.builtins.formatting.protolint,
|
|
||||||
-- 诊断
|
|
||||||
null_ls.builtins.diagnostics.eslint_d,
|
|
||||||
null_ls.builtins.diagnostics.protolint,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
null_ls.register(gotest)
|
||||||
|
Loading…
Reference in New Issue
Block a user