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

Python 如何在VS Code linter中更改pylint消息模板?,python,visual-studio-code,pylint,vscode-settings,Python,Visual Studio Code,Pylint,Vscode Settings,我的目标是在VS代码中更改linter消息的pylint消息模板。我正在使用DonJayamanne提供的VS代码的标准“Python”扩展,该扩展现在由Microsoft直接维护。默认情况下,消息格式如下所示(以简单的空白消息为例): [pylint]C0303:尾随空格 我希望改为使用pylint消息符号而不是代码读取消息(示例“C0303”)。与代码相比,我更喜欢人类可读的符号。在我看来,禁用某些消息等时更容易处理。因此,最好使用类似这样的方式: [pylint]尾随空格(尾随空格) 以下

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

[pylint]C0303:尾随空格

我希望改为使用pylint消息符号而不是代码读取消息(示例“C0303”)。与代码相比,我更喜欢人类可读的符号。在我看来,禁用某些消息等时更容易处理。因此,最好使用类似这样的方式:

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

以下是我迄今为止尝试过的一些不起作用的东西

使用.pylintrc文件修改
msg template=
行 我在.pylintrc文件中设置了这一行:

msg-template='{msg} ({symbol})'
当通过VS代码之外的单独终端运行pylint时,我的更改会反映出来,但不会反映在VS代码中。我还尝试重新加载VS代码窗口,但没有效果

在用户设置中指定
python.linting.pylintArgs
: 我尝试的下一件事是在VS代码用户设置中设置pylint选项,同样没有效果:

"python.linting.pylintArgs": [
    "--msg-template='{msg} ({symbol})'"
]
确保使用了正确的pylint 最后,我再次检查以确保VS代码查找pylint的路径没有任何异常。我没有看到任何问题,因为我的设置没有从默认设置更改:

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

任何想法都将不胜感激。VS代码对我来说是一个更新的编辑器,我不确定下一步是如何解决这个问题。谢谢大家!

在上的
0.7.0
查看vscode-python的源代码。消息模板参数被显式重写

这样做的目的是为每个特定linter实现的结果保持一致的API。看看这个

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);
        });
    }
公共runLinter(文档:TextDocument,取消:CancellationToken):承诺{ ... this.run(pylintPath,pylintArgs.concat(['--msg template=\'{line},{column},{category},{msg\u id}:{msg}\'''''--reports=n','--output format=text',document.uri.fsPath]),document this.workspaceRootPath,cancellation),然后(messages=>{ messages.forEach(msg=>{ msg.severity=this.parseMessagesVerity(msg.type,this.pythonSettings.linting.PylIntCategorySVerity); }); 解析(消息); },拒绝); }); } 以下步骤:

  • 在存储库中编写一个问题
  • 修复该实现,使其在默认设置上使用pylintArgs

谢谢您提供的信息!正如建议的那样,我确实在上提交了一个关于存储库的问题。然而,拉取请求可能超出我的能力范围,因为我不懂JavaScript。