如何使用Visual Studio扩展创建绿色(或蓝色)波浪装饰

HJL*_*ink 9 .net c# visual-studio vs-extensibility vsix

我有一个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"));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

  1. 我的直觉(错误地)说,返回一个具有不同errorType的ErrorTag可能会产生不同类型的标记,但无论你传递什么字符串,波形都会保持红色.例如.新的ErrorTag("警告")给出了红色的波浪形.MSDN文档几乎不存在.请参阅ErrorTag.
  2. Tagging命名空间中,没有提到实现ITag的不同Tag类.我希望有一个WarningTag或InfoTag.
  3. 当被问及在MSDN论坛的一个问题在这里.

问题:如何制作绿色(或蓝色或黄色)花边装饰品?可悲的是,即使是神秘或复杂的解决方案也值得赞赏......

我的目标是VS2015和VS2017.

编辑:在输入此问题时,MSDN论坛上有人回复说无法使用当前的API完成.在Visual Studio中制作黄色波浪线真的不可能吗?!

C.E*_*uis 5

PredefinedErrorTypeNames包含了支持的值ErrorType的属性ErrorTag

您接近“警告”,但其值PredefinedErrorTypeNames.Warning似乎是“编译器警告”。

  • 如果这只是通过在您需要的地方添加一个链接来记录(由 MS),我就不会浪费几天了。我会请 MS 的人修复它。 (2认同)