为了账号安全,请及时绑定邮箱和手机立即绑定

在 VSCode 中启用 golangci-lint 上的详细选项

在 VSCode 中启用 golangci-lint 上的详细选项

Go
慕丝7291255 2022-08-01 15:12:40
我正在使用golangci-lint。默认情况下,它禁用 golint linter。要将 golint 添加到默认 linters,该命令需要一个标志:-E golintgolangci-lint run -E golint从正常工作的命令行。但是现在我通过将此选项添加到设置中,将golangci-lint与VSCode集成在一起:"go.lintTool":"golangci-lint",默认的 linters 工作正常,但是当我添加一个标志来启用 golint 时,它会停止 linting 并且根本不返回任何输出。为了传递额外的标志,我按照golangci-lint文档并添加了:go.lintFlags"go.lintFlags": [  "--enable golint"]请注意,我不想只运行golint,而是在golangci-lint中启用所有默认的linters,并在此之上使用golint。
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

我发现提供配置更容易。golangci-lint


"go.lintTool": "golangci-lint",

"go.lintFlags": [

    "-c",

    "~/.dotfiles/.golangci.yml",

    "--issues-exit-code=0"

],

顺便说一句,您不需要启用所有默认 linters - thay 已经启用(请参阅参考)。


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


"go.lintTool": "golangci-lint",

"go.lintFlags": [

    "-E", "dogsled",

    "-E", "gochecknoglobals"

],

应用于


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)

}

将导致:


...>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)


查看完整回答
反对 回复 2022-08-01
?
精慕HU

TA贡献1845条经验 获得超8个赞

将 .golangci.toml(或 .yml 或 .json)添加到存储库的根目录,并通过该文件设置配置。如果希望该文件在所有存储库中运行,也可以将该文件放在$HOME目录中。这比尝试在 VSCode 配置中键入一堆 CLI 标志要好得多。golangci-lint将自动读取该文件并执行正确的操作。这样,如果从命令行运行它,它将使用相同的配置。


查看完整回答
反对 回复 2022-08-01
  • 2 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信