首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VSCode中启用关于golangci-lint的详细选项

在VSCode中启用关于golangci-lint的详细选项
EN

Stack Overflow用户
提问于 2021-01-07 12:35:18
回答 2查看 4.5K关注 0票数 0

我用的是金银花。默认情况下,它禁用金林特。要将golint添加到默认指针中,该命令需要一个-E golint标志:

代码语言:javascript
复制
golangci-lint run -E golint

在运行良好的命令行中。

但是,现在我通过将此选项添加到设置中,将golangci-lint与VSCode集成在一起:

代码语言:javascript
复制
"go.lintTool":"golangci-lint",

默认指针可以正常工作,但是当我添加一个标志以启用golint时,它将停止linting,并且根本不返回任何输出。为了传递附加标志,我遵循金银衫文献并添加了go.lintFlags

代码语言:javascript
复制
"go.lintFlags": [
  "--enable golint"
]

请注意,我不想只运行golint,而是让所有默认指针在golangci-lint和上面使用golint。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-07 17:32:44

我发现提供golangci-lint配置要容易得多。

代码语言:javascript
复制
"go.lintTool": "golangci-lint",
"go.lintFlags": [
    "-c",
    "~/.dotfiles/.golangci.yml",
    "--issues-exit-code=0"
],

顺便说一句,您不需要启用所有默认的指针--它们已经启用了(参见参考文献)。

但是,如果您想通过settings.json运行它,您可以定义(就像linter标志那样)。例如,下一个配置

代码语言:javascript
复制
"go.lintTool": "golangci-lint",
"go.lintFlags": [
    "-E", "dogsled",
    "-E", "gochecknoglobals"
],

应用于

代码语言:javascript
复制
package main

func s(i int) (int, int, int, int, int) {
    return -1, -2, -3, -4, -5
}

func fpl() {
}

var i = 0

func main() {
    _, _, _, _, _ = s(i)
}

将导致:

代码语言:javascript
复制
...>Finished running tool: /Users/0_o/go/bin/golangci-lint run -E dogsled -E gochecknoglobals --print-issued-lines=false --out-format=colored-line-number --issues-exit-code=0
.../main.go:7:6 `fpl` is unused (deadcode)
.../main.go:13:2 declaration has 5 blank identifiers (dogsled)
.../main.go:10:5 `i` is a global variable (gochecknoglobals)
票数 1
EN

Stack Overflow用户

发布于 2021-10-22 14:17:36

将.golangci.toml (或.yml或.json)添加到回购的根目录,并通过文件设置配置。如果希望该文件在所有repos中运行,也可以将该文件放在您的$HOME目录中。这比尝试在VSCode配置中键入一堆CLI标志要好得多。戈朗奇-林特会自动读取该文件,并做正确的事情。这样,如果您从命令行运行它,它将使用相同的配置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65612504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档