繁体   English   中英

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

[英]How to change pylint message template in VS Code linter?

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

[pylint] C0303:尾随空格

我希望该消息改为使用pylint消息符号而不是代码 (例如“C0303”)。 我更喜欢代码上的人类可读符号。 在我看来,当禁用某些消息等时更容易使用。所以,这样的事情将是首选:

[pylint]尾随空格(尾随空格)

以下是到目前为止还没有工作,我已经尝试了几件事情。

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

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

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

通过VS代码的一个单独的终端之外的VS代码运行时pylint的,但不是我的变化反映出来。 我也尝试重新加载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对我来说是一个较新的编辑器,我不确定我的下一步可能是对此进行故障排除。 谢谢!

在第30行查看vscode-python的源代码为0.7.0 显式覆盖消息模板参数。

这样做的目的是为每个特定linter实现的结果保持一致的API。 请参阅抽象BaseLinter类

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超过默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM