来自IClassifierProvider的GetClassifier()调用了两次?

时间:2016-06-23 01:51:53

标签: mef visual-studio-extensions vsx vspackage visual-studio-sdk

我以VSPackage的形式实现了VS2013扩展,该扩展还导出了特定文件扩展名的分类器。一切都运行正常,唯一困扰我的是我在IClassifierProvider的实现中调用了两次GetClassifier()。这导致创建两个处理相同更改的分类器。 IClassifierProvider的实现非常简单,如下所示。

{{1}}

我试图通过删除与分类无关的所有内容来最小化我的包裹但无济于事。非常感谢对此提出建议。

更新:我错误地认为GetClassifier调用中的文本缓冲区不同。相应地更新了这篇文章。

1 个答案:

答案 0 :(得分:1)

你应该描述的一件事是什么手势导致多个不同缓冲区的调用。您绝对会为每个打开的文件调用GetClassifier,并且您可能也会为同一个文本缓冲区调用多个调用。对于相同的文本缓冲区,常见的模式是让一些其他组件监视文件更改,处理一次,然后通过所有分类器报告更改。

还有"幻想"文本缓冲区可以包含其他文本缓冲区的内容的情况,这些缓冲区可用于各种功能。这也可以解释你所看到的内容。