【问题标题】:How to communicate between vscode extensionsvscode扩展之间如何通信
【发布时间】:2018-04-27 08:38:59
【问题描述】:

我想知道如何在 VS Code 扩展之间进行通信,例如一个扩展将发布而其他扩展将订阅。

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    是的,有几种方法:

    • 使用commands。一个扩展可以调用另一个扩展的命令

    • 使用扩展 API。为此,Extension1 从 activate 方法返回其 api。然后 Extension2 可以使用 extensions.extensions.getExtension('extension1.id') 获取它并使用 .exports 对象调用 API。

    在这两种情况下,extension2 都应该在其package.json 中使用extensionDependencies 声明它依赖于extension1

    【讨论】:

    • 我正在寻找类似的东西 -> sendNotification('eventName', args) 并且这个通知可以被其他扩展收听
    • 如果您只需要与一个分机通话,请使用命令。如果您需要将事件广播到许多扩展,请使用 API。没有内置sendNotification
    • export api 是 activate 函数的返回。 vscode docs中有一个例子
    猜你喜欢
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 2012-07-29
    相关资源
    最近更新 更多