Dic*_*ner 2 javascript input electron visual-studio-code vscode-extensions
我正在为我的学校开源项目开发 VScode 扩展。我想知道有没有一种方法可以检测窗口中的文本输入activeTextEditor?
例如,如果有人要粘贴一个字符串,我可以像 JavaScript 中的 OnInput 一样抓取检测该字符串吗?设置将是拼写检查或替换命令,类似于 Visual Studios 的智能感知,您输入 prop +tab +tab 它会自动生成代码。
如果您听说过一些可能有效的方法,请告诉我。谢谢
您正在寻找的 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.