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

我正在使用golangci-lint。默认情况下,它禁用 golint linter。要将 golint 添加到默认 linters,该命令需要一个标志:-E golint


golangci-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。


慕丝7291255
浏览 239回答 2
2回答

慕哥6287543

我发现提供配置更容易。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 mainfunc s(i int) (int, int, int, int, int) {    return -1, -2, -3, -4, -5}func fpl() {}var i = 0func 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)

精慕HU

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

相关分类

Go