visual-studio-code - vscode - 有没有办法手动触发事件?

标签 visual-studio-code vscode-extensions

我正在 workspace.onWillSaveTextDocument 处理程序上运行回调。它提供了 vscode.TextDocument,这对于我想要在此事件中完成的工作是必要的。

在某些情况下,我也想将其他文件(当前未打开的文件)视为刚刚保存。

能够创建 vscode.TextDocument 的新实例就足够了,但我无法弄清楚。

有没有办法做这样的事情:

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

最佳答案

我从事 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) { ... }

关于visual-studio-code - vscode - 有没有办法手动触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42704683/

相关文章:

python - 尽管我安装了模块,但在 VS 代码中未发现错误

visual-studio-code - 包含脱机 HTML 的 Visual Studio Code 扩展

visual-studio-code - 设置滚动行数

javascript - 使用 Chrome 调试器无法触发 VS 代码断点 :

vscode-extensions - 迅雷客户端 : simplest way to add script to request

visual-studio-code - 错误 : "extension/package.json not found inside zip." when repackaging and installing VSIX

json - 创建 Visual Studio Code 扩展以实现自定义语言的语法突出显示

javascript - Visual Studio Code 中的 .ts 文件没有智能感知

visual-studio-code - Visual Studio Code Remote - 通过 KeePass/KeeAgent 使用 key SSH 失败

visual-studio-code - 在 Visual Studio Code 中,使用 Emmet 将 HTML 标记包装在一行中