golangci-server
golangci-server是一个golangci-lint语言服务器。
安装
-
安装
golangci-servergo install github.com/stephenafamo/golangci-server@latest
灵感
大部分的灵感来自于golangci-lint-langserver。
我开始试图修改它,但发现在优秀的glsp包的基础上重建更容易。
coc.nvim的配置
coc-settings.json
{
"languageserver": {
"golangci-server": {
"command": "golangci-server",
"filetypes": ["go"],
}
}
}
vim-lsp的配置
augroup vim_lsp_golangci_server
au!
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'golangci-server',
\ 'cmd': {server_info->['golangci-server']},
\ 'whitelist': ['go'],
\ })
augroup END
nvim-lspconfig的配置
local lspconfig = require 'lspconfig'
local configs = require 'lspconfig.configs'
if not configs.golangcilsp then
configs.golangcilsp = {
default_config = {
cmd = {'golangci-server'},
root_dir = lspconfig.util.root_pattern('.git', 'go.mod'),
};
}
end
lspconfig.golangcilsp.setup {
filetypes = {'go'}
}
配置lsp-mode(Emacs)
(with-eval-after-load 'lsp-mode
(lsp-register-client
(make-lsp-client :new-connection (lsp-stdio-connection
'("golangci-server"))
:major-modes '(go-mode)
:language-id "go"
:priority 0
:server-id 'golangci-lint
:add-on? t
:library-folders-fn #'lsp-go--library-default-directories
(add-to-list 'lsp-language-id-configuration '(go-mode . "golangci-lint")))