我想找到一种使用自定义扩展名在所有打开的vscode实例中获取打开项目的方法。我已经做过一些研究,但是我找不到关于此文档的任何信息。我猜这不是vscode的API内置的东西。
我想可以通过使用1个文件在打开编辑器时向其中写入一些JSON来解决该问题,但是我想知道是否有更好的解决方案?
答案 0 :(得分:1)
VSCode确实为每个实例启动了一个单独的扩展主机进程,因此几乎完全是隔离的。我能想到的API内唯一的解决方法是使用全局/工作区状态API,有关更多信息,请参见此处:
How to persist information for a vscode extension?
持久存储到内存中的数据应可用于所有实例。棘手的部分是弄清楚特定的memento值何时更改,我认为这没有发生任何事件,因此您可能不得不诉诸轮询。
除此之外,可以将某些内容持久化到文件系统中或者使用套接字。请注意,ExtensionContext
公开了一个storagePath
,可能对前者有所帮助。