gpt4 book ai didi

python - 如何在 VS Code linter 中更改 pylint 消息模板?

转载 作者:行者123 更新时间:2023-11-30 22:24:52 25 4
gpt4 key购买 nike

我的目标是更改 VS Code 中 linter 消息的 pylint 消息模板。我使用的是 Don Jayamanne 提供的 VS Code 标准“Python”扩展,该扩展现在由 Microsoft 直接维护。默认情况下,消息格式如下(以简单的空白消息为例):

[pylint] C0303:Trailing whitespace

我希望使用 pylint 消息符号而不是代码来读取消息(例如“C0303”)。与代码相比,我更喜欢人类可读的符号。在我看来,禁用某些消息等时更容易使用。因此,首选这样的东西:

[pylint] Trailing whitespace (trailing-whitespace)

以下是我迄今为止尝试过但尚未成功的一些方法。

使用 .pylintrc 文件修改 msg-template=

我在 .pylintrc 文件中设置了这一行:

msg-template='{msg} ({symbol})'

当通过 VS Code 之外的单独终端运行 pylint 时,我的更改会得到反射(reflect),但不会在 VS Code 中得到反射(reflect)。我也尝试重新加载 VS Code 窗口,但这没有效果。

在用户设置中指定python.linting.pylintArgs:

我尝试的下一件事是在 VS Code 用户设置中设置 pylint 选项,也没有效果:

"python.linting.pylintArgs": [
"--msg-template='{msg} ({symbol})'"
]

确保使用正确的 pylint

最后,我仔细检查以确保 VS Code 寻找 pylint 的路径没有发生任何奇怪的情况。我没有看到任何异常,因为我的设置没有从默认值更改:

"python.linting.pylintPath": "pylint",

任何想法将不胜感激。 VS Code 对我来说是一个较新的编辑器,我不确定下一步应该做什么来解决此问题。谢谢!

最佳答案

查看 vscode-python 的源代码,位于 0.7.0line 30 。消息模板参数被显式覆盖。

这样做的目的是为每个特定 linter 实现的结果保持一致的 API。请参阅the abstract BaseLinter class为此。

public runLinter(document: TextDocument, cancellation: CancellationToken): Promise<baseLinter.ILintMessage[]> {
...

this.run(pylintPath, pylintArgs.concat(['--msg-template=\'{line},{column},{category},{msg_id}:{msg}\'', '--reports=n', '--output-format=text', document.uri.fsPath]), document, this.workspaceRootPath, cancellation).then(messages => {
messages.forEach(msg => {
msg.severity = this.parseMessagesSeverity(msg.type, this.pythonSettings.linting.pylintCategorySeverity);
});

resolve(messages);
}, reject);
});
}

下一步:

  • 在存储库上写一个问题。
  • 修复了使用 pylintArgs 而非默认值的实现。

关于python - 如何在 VS Code linter 中更改 pylint 消息模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47713158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com