Python 如何在VS Code linter中更改pylint消息模板?
我的目标是在VS代码中更改linter消息的pylint消息模板。我正在使用DonJayamanne提供的VS代码的标准“Python”扩展,该扩展现在由Microsoft直接维护。默认情况下,消息格式如下所示(以简单的空白消息为例): [pylint]C0303:尾随空格 我希望改为使用pylint消息符号而不是代码读取消息(示例“C0303”)。与代码相比,我更喜欢人类可读的符号。在我看来,禁用某些消息等时更容易处理。因此,最好使用类似这样的方式: [pylint]尾随空格(尾随空格) 以下是我迄今为止尝试过的一些不起作用的东西 使用.pylintrc文件修改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]尾随空格(尾随空格) 以下
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