检测 VSCode activeTextEditor 的文本输入

Dic*_*ner 2 javascript input electron visual-studio-code vscode-extensions

我正在为我的学校开源项目开发 VScode 扩展。我想知道有没有一种方法可以检测窗口中的文本输入activeTextEditor

例如,如果有人要粘贴一个字符串,我可以像 JavaScript 中的 OnInput 一样抓取检测该字符串吗?设置将是拼写检查或替换命令,类似于 Visual Studios 的智能感知,您输入 prop +tab +tab 它会自动生成代码。

如果您听说过一些可能有效的方法,请告诉我。谢谢

Mat*_*ner 5

您正在寻找的 api 是vscode.workspace.onDidChangeTextDocument. 每当 VS Code 了解文档发生更改时,就会触发此事件。它是用一个TextDocumentChangeEvent包含所有文本更改的对象触发的:

import * as vscode from 'vscode'


export function activate() {
    vscode.workspace.onDidChangeTextDocument(changeEvent => {
        console.log(`Did change: ${changeEvent.document.uri}`);

        for (const change of changeEvent.contentChanges) {
             console.log(change.range); // range of text being replaced
             console.log(change.text); // text replacement
        }
   });
} 
Run Code Online (Sandbox Code Playgroud)

如果您只关心对活动编辑器文本的更改,只需检查是否changeEvent.document与活动编辑器的document.