我有一个显示红色错误波形的Visual Studio扩展。我还喜欢提供其他颜色的花纹,例如黄色表示警告。如何使用Visual Studio扩展创建绿色(或蓝色)扭曲装饰
创建红色波浪线可以通过扩展ITagger类完成,沿线:
internal sealed class MySquigglesTagger : ITagger<IErrorTag> {
public IEnumerable<ITagSpan<IErrorTag>> GetTags(NormalizedSnapshotSpanCollection spans) {
foreach (IMappingTagSpan<MyTokenTag> myTokenTag in this._aggregator.GetTags(spans))
SnapshotSpan tagSpan = myTokenTag.Span.GetSpans(this._sourceBuffer)[0];
yield return new TagSpan<IErrorTag>(tagSpan, new ErrorTag("Error", "some info about the error"));
}
}
}
我曾尝试:
- 我的直觉(错误地)说,返回一个ErrorTag与不同的errorType可能会产生不同类型的标签,但是无论您将其传递给哪个字符串,这些波形都会保持红色。例如。新的ErrorTag(“警告”)会给出红色的波形。 MSDN文档几乎不存在。见ErrorTag。
- 在Tagging namespace中,没有提到实现ITag的不同Tag元素。我希望存在WarningTag或InfoTag。
- 在MSDN论坛here上提问。
问题:如何创建绿色(或蓝色或黄色)波浪装饰?可悲的是,即使奥术或复杂的解决方案,赞赏...
我的目标是VS2015和VS2017。
编辑:在输入此问题时,MSDN论坛上的某人回复说,无法使用当前API完成此操作。在Visual Studio中制作黄色曲线真的不可能吗?!
“标记”命名空间还有'TextMarkerTag',其中包括'ITag'。你读过https://msdn.microsoft.com/en-us/library/dd885121.aspx吗? –
@ C.Evenhuis是的,我已阅读并实现了大括号匹配和关键字高亮显示,但我看不到如何使用TextMarkerTag来显示波形。我想我需要实现IErrorTag。 – HJLebbink
然后,您可能想要为'ErrorType'尝试其中的一个值,这些值似乎是VS支持的值:https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.adornments.predefinederrortypenames .aspx –