我希望能够在visual studio代码扩展中捕获击键。我需要知道添加或删除的新文本以及文件中更改的位置。
我已经注册了一位听众:
vscode.window.onDidChangeTextEditorSelection(handleChange)
我正在获取每个插入符号移动的更新,但是我很难从传入的事件中添加/删除文本和位置。目前,我在处理程序中执行此操作:
function handleChange(event) {
console.log("Change in the text editor");
for(var i = 0;i < event.selections.length;i++)
{
var selection = event.selections[i];
console.log("Start- Line: (" + selection.start.line + ") Col: (" + selection.start.character + ") End- Line: (" + selection.end.line + ") Col: (" + selection.end.character + ")");
}
console.log(event);
}
文档中提到了一个叫做TextDocumentContentChangeEvent的东西,它看起来就像我需要的东西,但我不知道如何注册一个处理程序来接收它们。
答案 0 :(得分:2)
我在原始问题中发现了这个问题。我正在听错事件。要获取具有名为contentChanges的属性的TextDocumentChangeEvents,它返回TextDocumentContentChangeEvents,请使用以下代码:
vscode.workspace.onDidChangeTextDocument(handleChange)
并传入一个函数,该函数将在每次更改文件时使用TextDocumentChangeEvent调用。