我有一個顯示紅色錯誤波形的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 –