如何在VS Code上使golint在键入时运行而不是保存时运行?

6
我正在使用VS Code和lukehoban的Go扩展:https://github.com/Microsoft/vscode-go
似乎在保存文件时运行golint,有没有办法让我在开始输入时运行golint?通常,在其他扩展和语言(如jslint和tslint)上键入时会发生linting,也可以在VS Code中使用。希望能够通过golint实现此选项。
我该怎么做才能实现这一点呢?

2
如果文件没有保存,go lint 应该如何运行? - Jonathan Hall
配置您的编辑器以在每次按键时保存? - icza
@DmitryGashko:我不知道其他语言是否以及如何处理它。但是Go工具链可以在磁盘上处理文件。 - Jonathan Hall
2个回答

5

这方面的Go让我感到疯狂...

因此,我找到了一个名为 "go.useLanguageServer" 的选项(很可能我早些时候已经找到过它,但由于某种原因,这个选项并不容易找到)。

"go.useLanguageServer": true,

另外,还有以下选项:

"go.languageServerExperimentalFeatures": {
    "diagnostics": true,
    "documentLink": true
},
"go.liveErrors": {
    "enabled": true,
    "delay": 500,
},

似乎开箱即用,效果很好。这应该是被接受的答案。 - mandarin

5
似乎完全不可能。
关于golint,唯一可用的配置如下:
  // Run Lint tool on save.
  "go.lintOnSave": true,

  // Specifies Lint tool name.
  "go.lintTool": "golint",

  // Flags to pass to Lint tool (e.g. ["-min_confidence=.8"])
  "go.lintFlags": [],

也许你可以通过更改这些选项来进行黑客攻击:
  // Controls auto save of dirty files. Accepted values:  "off", "afterDelay", "onFocusChange" (editor loses focus), "onWindowChange" (window loses focus). If set to "afterDelay", you can configure the delay in "files.autoSaveDelay".
  "files.autoSave": "off",

  // Controls the delay in ms after which a dirty file is saved automatically. Only applies when "files.autoSave" is set to "afterDelay"
  "files.autoSaveDelay": 1000,

您可以将files.autoSave设置为afterDelay,并将files.autoSaveDelay设置得较低。

我相信lintOnSave配置现在只接受以下四个字符串之一: “file”,“workspace”,“package”或“off”。 - Tom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接