在我的VS 2015扩展中,我需要将保证金字形添加到从Web服务返回的行数(Web服务仅返回行号)。 MSDN包含以下示例,它跟踪编辑器中的文本并相应地添加边距字形,但是此示例表示更复杂的场景并且与我的要求不符,请告知如何实现此目的。
https://msdn.microsoft.com/en-us/library/ee361745%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396
答案 0 :(得分:0)
首先,请参阅演练中的实现大括号匹配标记提供程序部分:显示匹配大括号示例以使用ITaggerProvider
更改为IViewTaggerProvider
。从Web服务收到列表后,您可以致电
TagsChanged?.Invoke(this, new SnapshotSpanEventArgs(new SnapshotSpan(
SourceBuffer.CurrentSnapshot, 0, SourceBuffer.CurrentSnapshot.Length)));
在您的函数中显式调用GetTags来检查当前快照中的标记。下面是一个如何在GetTags中绘制字形的示例:
foreach (SnapshotSpan span in spans)
{
ITextSnapshotLine startLine = span.Start.GetContainingLine();
int startLineNumber = startLine.LineNumber;
// Draw glyph if startLineNumber is contained in your list ...