vscode - Есть ли способ запускать события вручную?

Я запускаю обратный вызов обработчика workspace.onWillSaveTextDocument. Он предоставляет vscode.TextDocument, и это необходимо для работы, которую я хочу выполнить на этом мероприятии.

В некоторых случаях я хочу обрабатывать другие файлы (которые в данный момент не открыты), как если бы они были только что сохранены.

Было бы достаточно иметь возможность создать новый экземпляр vscode.TextDocument, но я не смог этого понять.

Есть ли способ сделать что-то вроде:

workspace.pretendThisWasSavedJustNow('/path/to/other/file.ts');

person Kevin Beal    schedule 09.03.2017    source источник


Ответы (1)


Я работаю над VSCode, и хотя я не знаю вашего точного варианта использования, я полагаю, что вы ищете workspace.openTextDocument.

Чтобы использовать одну и ту же функцию для workspace.onWillSaveTextDocument и для какого-либо другого события, которое вызывает ваше расширение, попробуйте что-то вроде:

// Actual save
workspace.onWillSaveTextDocument(e => onDocumentSave(e.document))

// Emulated save
setInterval(() => {
    workspace.openTextDocument('path/to/other/file.ts')
        .then(document => onDocumentSave(document))
}, 5000)

// Common save handling implementation
function onDocumentSave(document: TextDocument) { ... }
person Matt Bierner    schedule 10.03.2017