- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个标记器(ITagger 的子类),我正在尝试调用 GetClassificationSpans 以便我可以使用分类来查找注释以使用标记进行格式化。这在 Visual Studio 2013 中有效,但现在在 Visual Studio 2015 中运行它时,GetClassificationSpans 总是返回一个空列表 - 即使我在调试器中检查了跨度并且它肯定传递了一个带有注释的跨度。
有谁知道 2015 年在调用 GetClassificationSpans 方面会发生什么变化?
顺便说一句:我通过在我的标记器提供程序(ITaggerProvider 的子类)中导入 IClassifierAggregatorService 并将其传递给标记器的构造函数来获取分类器:
[import]
IClassifierAggregatorService aggregator;
IList<ClassificationSpan> lstClassifiers = aggregator.GetClassifier(span.Snapshot.TextBuffer).GetClassificationSpans(span);
最佳答案
我遇到了同样的问题,尽管在不同的上下文中。从我的谷歌搜索来看,看起来他们已经改变了分类器,以便它们被懒惰地初始化......我猜 GetClassificationSpans()
不会强行初始化它们。 MSFT 仍然认为这是一个错误,因此您可能希望对该问题进行投票 on VS Connect .
一个潜在的解决方法(如 MSFT 所建议的)是切换到使用 TagAggregator
而不是 IClassifier
.所以而不是:
var service = container.GetService<IClassifierAggregatorService>();
var classifier = service.GetClassifier(textView.TextBuffer);
var spans = classifier.GetClassificationSpans(new SnapshotSpan(...));
var service = container.GetService<IViewTagAggregatorFactoryService>();
var aggregator = service.CreateTagAggregator<IClassificationTag>(textView);
var tags = aggregator.GetTags(new SnapshotSpan(...)));
IMappingTagSpan<IClassificationTag>
而不是
ClassificationSpan
的列表,因此您使用它们的方式略有不同。但基础数据似乎基本相同——即,您可以获得每个词法元素的分类和跨度。有一些细微的差异(参见 VS Connect 上的描述),但结果对于我的应用程序来说已经足够了。
关于visual-studio-2015 - Visual Studio 2015 中的 GetClassificationSpans 不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33587744/
我正在用 C# 开发 Visual Studio 扩展,我想根据对已提供的文件的分析在文件上添加分类。我得到了每个缺陷的一组位置(文件、行、列)的分析结果。 根据 MS 文档,我看到我们应该实现 IC
我有一个标记器(ITagger 的子类),我正在尝试调用 GetClassificationSpans 以便我可以使用分类来查找注释以使用标记进行格式化。这在 Visual Studio 2013 中
我是一名优秀的程序员,十分优秀!