diagnostic-languageserver 是一个可以与大多数的 linter 集成的 LSP 服务。
安装:
yarn global add diagnostic-languageserver
language server 对大多数的语言支持已经很完善了,但是还是有些语言没有或者是支持的比较差,比如 viml,shell 等,还是少不了使用 linter 来检查代码。所以基本都会安装一个插件,比如:ale。
不过既然 LSP 已经自带了代码检查,为什么不用 LSP 和 linter 集成?受 efm-langserver 启发,然后就有了这个项目。
下面是 shellcheck linter 配置示例,LSP 客户端使用的是 coc.nvim(你也可以选其他客户端)
coc-settings.json:
{
"languageserver": {
"dls": {
"command": "diagnostic-languageserver",
"args": ["--stdio"],
"filetypes": [ "sh" ],
"initializationOptions": {
"linters": {
"shellcheck": {
"command": "shellcheck",
"debounce": 100,
"args": [ "--format=gcc", "-"],
"offsetLine": 0,
"offsetColumn": 0,
"sourceName": "shellcheck",
"formatLines": 1,
"formatPattern": [
"^[^:]+:(\\d+):(\\d+):\\s+([^:]+):\\s+(.*)$",
{
"line": 1,
"column": 2,
"message": 4,
"security": 3
}
],
"securities": {
"error": "error",
"warning": "warning",
"note": "info"
}
},
},
"filetypes": {
"sh": "shellcheck"
}
}
}
}
}
更多配置可以看 github
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.