3

我希望能够在 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 的东西,这似乎正是我所需要的,但我不知道如何注册一个处理程序来接收这些。

4

1 回答 1

2

我在原来的问题中发现了这个问题。我在听错误的事件。要获取具有名为 contentChanges 的属性的 TextDocumentChangeEvents,该属性返回 TextDocumentContentChangeEvents,请使用以下代码:

vscode.workspace.onDidChangeTextDocument(handleChange)

并传入一个函数,该函数将在每次更改文件时使用 TextDocumentChangeEvent 调用。

于 2016-04-20T19:41:06.920 回答