Visual studio code 检查visual studio代码中扩展的激活源

Visual studio code 检查visual studio代码中扩展的激活源,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我正在为VisualStudio代码开发一个扩展。我的分机有几个激活事件。那么在激活回调中,我如何区分激活的来源?例如,如果工作区包含特定文件夹或发出命令,则扩展名get activate。在激活回拨中,我想为不同的激活执行不同的初始化。是否有任何API来获取此信息 例: 在package.json中,两个激活事件由 。。。 “激活事件”:[ “工作空间包含:foo”, "*" ], ... 在扩展名.ts文件中,将定义相应的激活回调 。。。 导出函数激活(上下文:ExtensionConte

我正在为VisualStudio代码开发一个扩展。我的分机有几个激活事件。那么在激活回调中,我如何区分激活的来源?例如,如果工作区包含特定文件夹或发出命令,则扩展名get activate。在激活回拨中,我想为不同的激活执行不同的初始化。是否有任何API来获取此信息

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

。。。
“激活事件”:[
“工作空间包含:foo”,
"*"
],
...
扩展名.ts
文件中,将定义相应的激活回调

。。。
导出函数激活(上下文:ExtensionContext):任意{
...
}
...
在上述场景中,将在以下两个事件之一中调用
activate()

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

    导出函数激活(上下文:ExtensionContext):任意{ 如果(/*由“*”事件激活*/){ Init1(); } 如果(/*由“workspaceContains”事件激活*/){ Init2(); } }
    这只是一个伪代码。但这就是关键所在。

    如评论中所列,无法区分这两个激活事件。事实上,激活是通过匹配package.json中的一个模式来完成的。除文档外,没有显示实际匹配的模式。这可能太细粒度了,因此我怀疑为其创建功能请求是否有机会。

    如注释中所示,无法区分这两个激活事件。事实上,激活是通过匹配package.json中的一个模式来完成的。除文档外,没有显示实际匹配的模式。这可能太细粒度了,因此我怀疑为其创建功能请求是否有机会。

    添加一个您正在谈论的示例(例如,您的一个回调)。感谢您的回复。我添加了伪代码来解释我想要什么。我希望这能解释我所需要的。好吧,我明白了,但我认为没有办法区分这两个事件(不过
    *
    是一个包罗万象的事件,它还包括
    工作空间包含的
    案例,否?)。我在猜测workspace回调,在这里您可以获取一个文档并检查languageId,看看它是否适用于您可以处理的特定文件类型。正确。*将涵盖workspaceContains。但我不希望代码初始化的某些部分在一个all事件中完成。我想我必须决定只使用*事件。在activate()中检查文件是否存在,然后从那里我可以继续。不管怎样,谢谢你,迈克。为此提交功能请求是否有意义?添加一个供您接受的答案…添加一个您正在谈论的示例(例如,您的一个回调)。感谢您的回复。我添加了伪代码来解释我想要什么。我希望这能解释我所需要的。好吧,我明白了,但我认为没有办法区分这两个事件(不过
    *
    是一个包罗万象的事件,它还包括
    工作空间包含的
    案例,否?)。我在猜测workspace回调,在这里您可以获取一个文档并检查languageId,看看它是否适用于您可以处理的特定文件类型。正确。*将涵盖workspaceContains。但我不希望代码初始化的某些部分在一个all事件中完成。我想我必须决定只使用*事件。在activate()中检查文件是否存在,然后从那里我可以继续。不管怎样,谢谢你,迈克。为此提交功能请求有意义吗?添加一个答案供您接受。。。