gpt4 book ai didi

visual-studio-code - VS Code API - 远程调用

转载 作者:行者123 更新时间:2023-12-05 02:58:29 27 4
gpt4 key购买 nike

我目前正在结合代码生成项目研究 VS 代码扩展。虽然我知道 VS 代码 API 相当成熟,可以在扩展中操作文档,但我不知道如何在扩展之外执行此操作。

是否有在 vscode 之外远程执行 vs code JavaScript API 的方法,这反过来又会驱动 GUI。

我想弄清楚我是否可以执行以下任一操作:

  • 通过code cli执行API JavaScript代码
  • 在扩展中运行网络服务器/套接字以监听来自外部系统的事件并相应地执行 JS API
  • 如果不是 socket/rest 服务器,我应该监听文件系统变化并做出相应 react 吗?

基本上,vs code的远程控制驱动有哪些选项?

最佳答案

我在使用编辑器扩展时遇到过类似的问题。

我强烈建议在 VSCode API 之外监听文件更改。这样,您的大部分代码就不会绑定(bind)到特定的编辑器。我在使用名为 createFileSystemWatcher 的 VSCode API 时也遇到了更多困难,因为它没有捕获所有更改。

激活后,使用文件观察程序库运行子进程。我建议使用 chokidar - 它与 VSCode 在内部使用的库相同,但可以更广泛地访问 API。

// get your workspace uri & root uri 
const workspaceRoots = vscode.workspace.workspaceFolders
if (!workspaceRoots || !workspaceRoots.length) {
throw new Error('No workspace root path')
}
const workspaceRoot: vscode.WorkspaceFolder = workspaceRoots[0]
const rootUri = vscode.workspace.getWorkspaceFolder(workspaceUri);

// the action you want to trigger
const command = vscode.commands.registerCommand('YOUR_CUSTOM_COMMAND', yourCustomFunction)

// file watcher
const fsWatcher = chokidar.watch('watcher_name', {
cwd: rootUri.uri.path,
interval: 1000,
})

// listen to any add/update/delete fs events
fsWatcher.on('change', (path, event) => {
vscode.commands.executeCommand('YOUR_CUSTOM_COMMAND')
})

在任何文件更改时,它都可以触发您选择的操作。

关于visual-studio-code - VS Code API - 远程调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59007935/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com