【问题标题】:Adjust vscode interval for sending codelens and codeAction messages调整发送 codelens 和 codeAction 消息的 vscode 间隔
【发布时间】:2018-04-24 19:28:27
【问题描述】:

现在,textDocument/codeLenstextDocument/codeAction 消息似乎过于频繁地出现,导致我正在处理的 LSP 扩展中的性能损失。

有没有办法增加这些消息发送到语言服务器的时间间隔?

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    是的,我也看到了这个问题,我实现了通常的方法(每个文件的更改计时器)in my extension

    这很简单,例如在您的扩展文件(在这种情况下为打字稿)中执行以下操作:

        let changeTimers: Map<string, any> = new Map(); // Keyed by file name.
        workspace.onDidChangeTextDocument((event: TextDocumentChangeEvent) => {
            if (event.contentChanges.length > 0
                && event.document.languageId === "antlr"
                && event.document.uri.scheme === "file") {
    
                let fileName = event.document.fileName;
                backend.setText(fileName, event.document.getText());
                if (changeTimers.has(fileName)) {
                    clearTimeout(changeTimers.get(fileName));
                }
                changeTimers.set(fileName, setTimeout(() => {
                    changeTimers.delete(fileName);
                    backend.reparse(fileName);
                    // ... etc.
                }, 300));
            }
    })
    

    【讨论】:

    • 谢谢!我有点希望在某个地方有一个配置文件,而不是自己处理消息……但这看起来不太可能。
    猜你喜欢
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2019-11-16
    相关资源
    最近更新 更多