2017-04-26 117 views
0

我正在开发视觉工作室代码的扩展。我的扩展有几个激活事件。所以在激活回调如何我可以区分激活的来源?例如,如果工作区包含特定文件夹或给出了命令,则扩展将激活。在激活回调中,我想为不同的激活执行不同的初始化。有没有任何API来获取这些信息?检查视觉工作室代码中扩展的激活源

例: 在Package.json两个激活事件由

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

给出在extension.ts文件中相应的激活回调将被定义。

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

在上述情况下,activate()将被称为在2个事件之一:

  1. 如果vscode打开。
  2. 如果打开文件夹并在根目录中包含foo文件。

我想是这样的:

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

这只是一个伪代码。但这是整个观点。

感谢和问候,

Sathish所在V

+0

添加一个你正在谈论的例子(例如你的回调之一)。 –

+0

谢谢你的回应迈克。我添加了伪代码来解释我想要的。我希望能解释我需要的东西。 –

+1

好的,我明白了,但我相信没有办法区分这两个事件(但是'*'是一个全面的事件,它也涵盖了'workspaceContains'的情况,不是吗?)。我在推测工作区回调,在那里你得到一个文档,并检查languageId,看看是否适用于你可以处理的特定文件类型。 –

回答

0

正如评论内衬外面有没有办法在两个激活事件之间进行区分。事实上,激活是通过匹配package.json中的一个模式完成的。除了文件没有迹象其中模式实际上匹配。这可能太细,因此我怀疑为它创建功能请求会有机会。