簡體   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