Обнаружение ввода текста в VSCode activeTextEditor - PullRequest
0 голосов
/ 13 ноября 2018

Я работаю над расширением VScode для моего школьного проекта с открытым исходным кодом. Мне было интересно, есть ли способ обнаружить ввод текста в activeTextEditor окне?

Например, если кто-то вставит строку, могу ли я обнаружить эту строку, похожую на OnInput в JavaScript? Настройкой будет проверка орфографии или замена команд, аналогично intellisense в Visual Studios, который вы вводите prop + tab + tab, и автоматически генерирует код.

Дайте мне знать, если вы слышали о чем-то, что может сработать. Спасибо

1 Ответ

0 голосов
/ 14 ноября 2018

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
        }
   });
} 

Если вас интересуют только изменения в тексте активного редактора, просто проверьте, если changeEvent.document соответствует действующему редактору document.

...