是否可以使用vscode扩展获取信息甚至与其他实例进行交互?

时间:2019-04-04 13:23:26

标签: visual-studio-code vscode-extensions

我想找到一种使用自定义扩展名在所有打开的vscode实例中获取打开项目的方法。我已经做过一些研究,但是我找不到关于此文档的任何信息。我猜这不是vscode的API内置的东西。

我想可以通过使用1个文件在打开编辑器时向其中写入一些JSON来解决该问题,但是我想知道是否有更好的解决方案?

1 个答案:

答案 0 :(得分:1)

VSCode确实为每个实例启动了一个单独的扩展主机进程,因此几乎完全是隔离的。我能想到的API内唯一的解决方法是使用全局/工作区状态API,有关更多信息,请参见此处:

How to persist information for a vscode extension?

持久存储到内存中的数据应可用于所有实例。棘手的部分是弄清楚特定的memento值何时更改,我认为这没有发生任何事件,因此您可能不得不诉诸轮询。

除此之外,可以将某些内容持久化到文件系统中或者使用套接字。请注意,ExtensionContext公开了一个storagePath,可能对前者有所帮助。