0

我正在使用 Visual Studio SDK,并且在 IClassifier 中有一个 ITextBuffer。

实例化分类器时, ITextBuffer.GetWorkspace 返回一个名为 的中间工作区,MiscellaneousFilesWorkspace其中项目没有所有引用。如果没有有效的项目,我的分类器将无法工作,因此它不会返回任何分类。

然后,在 Visual Studio 的初始化过程中,中间工作区被真正的RoslynVisualStudioWorkspace.

如果用户在初始化后打开其他文本缓冲区,我的分类器就会得到正确的工作空间,它可以提供正确的分类。

但是,对于在初始化完成之前打开的文本缓冲区,分类器不知道工作空间已经改变,因此它不能引发ClassificationChanged事件来通知分类器对文本缓冲区有新的分类。

我如何知道临时工作区已被文本缓冲区的最终工作区替换?

4

0 回答 0