检查visual studio代码中

时间:2017-04-26 16:33:40

标签: visual-studio-code vscode-extensions

我正在开发视觉工作室代码的扩展程序。我的扩展程序有几个激活事件。那么在激活回调中我如何区分激活源?例如,如果工作空间包含特定文件夹或者给出了命令,则会激活扩展。在激活回调中,我想为不同的激活执行不同的初始化。是否有任何API可以获取此信息?

例: 在package.json中,两个激活事件由

给出
...
  "activationEvents": [
    "workspaceContains:foo",
    "*"
  ],
...

extension.ts文件中,将定义相应的激活回调。

...
export function activate(context: ExtensionContext): any {
...
}
...

在上面的场景中,将在以下两个事件之一中调用activate()

  1. 如果vscode打开。
  2. 如果文件夹已打开且根目录中包含foo文件。
  3. 我想要的是这样的:

    export function activate(context: ExtensionContext): any {
        if(/*activated by "*" event*/) {
            Init1();
        }
        else if(/*activated by "workspaceContains" event*/) {
            Init2();
        }
    }
    

    这只是一个伪代码。但这就是重点。

1 个答案:

答案 0 :(得分:0)

正如评论中所述,没有办法区分这两个激活事件。实际上,激活是通过匹配package.json中的一个模式来完成的。除了文档之外,没有迹象表明哪个模式实际匹配。这可能太精细了,因此我怀疑为此创建功能请求将有机会。