6 instantiations of TagSpanIntervalTree
Microsoft.CodeAnalysis.EditorFeatures (5)
Classification\CopyPasteAndPrintingClassificationBufferTaggerProvider.Tagger.cs (1)
150
cachedTags = new
TagSpanIntervalTree
<IClassificationTag>(snapshot.TextBuffer, SpanTrackingMode.EdgeExclusive, context.tagSpans);
Tagging\AbstractAsynchronousTaggerProvider.TagSource_ProduceTags.cs (4)
143
var newTagTree = new
TagSpanIntervalTree
<TTag>(
164
: new
TagSpanIntervalTree
<TTag>(snapshot.TextBuffer, _dataSource.SpanTrackingMode);
354
return new
TagSpanIntervalTree
<TTag>(textBuffer, _dataSource.SpanTrackingMode, newTags);
373
return new
TagSpanIntervalTree
<TTag>(textBuffer, _dataSource.SpanTrackingMode, finalTags);
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (1)
Tagging\TagSpanIntervalTreeTests.cs (1)
25
return new
TagSpanIntervalTree
<ITextMarkerTag>(buffer, SpanTrackingMode.EdgeInclusive, tags);
48 references to TagSpanIntervalTree
Microsoft.CodeAnalysis.EditorFeatures (33)
Classification\CopyPasteAndPrintingClassificationBufferTaggerProvider.Tagger.cs (3)
39
private
TagSpanIntervalTree
<IClassificationTag>? _cachedTags;
125
GetCachedInfo(out var cachedTaggedSpan, out
var
cachedTags);
172
private void GetCachedInfo(out SnapshotSpan? cachedTaggedSpan, out
TagSpanIntervalTree
<IClassificationTag>? cachedTags)
Tagging\AbstractAsynchronousTaggerProvider.TagSource.cs (3)
123
private ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> _cachedTagTrees_doNotAccessDirectly = ImmutableDictionary.Create<ITextBuffer,
TagSpanIntervalTree
<TTag>>();
348
private ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> CachedTagTrees
Tagging\AbstractAsynchronousTaggerProvider.TagSource_ProduceTags.cs (24)
42
var
currentTags = TryGetTagIntervalTreeForBuffer(caret.Value.Snapshot.TextBuffer);
58
this.CachedTagTrees = ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>>.Empty;
61
var
oldTagTree = GetTagTree(snapshot, oldTagTrees);
133
if (!this.CachedTagTrees.TryGetValue(buffer, out
var
treeForBuffer))
143
var
newTagTree = new TagSpanIntervalTree<TTag>(
160
private
TagSpanIntervalTree
<TTag> GetTagTree(ITextSnapshot snapshot, ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> tagTrees)
162
return tagTrees.TryGetValue(snapshot.TextBuffer, out
var
tagTree)
302
private ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> ComputeNewTagTrees(
303
ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> oldTagTrees,
323
var newTagTrees = ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>>.Empty;
326
var
newTagTree = ComputeNewTagTree(oldTagTrees, buffer, newTagsByBuffer[buffer], spansToInvalidateByBuffer[buffer]);
334
private
TagSpanIntervalTree
<TTag>? ComputeNewTagTree(
335
ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> oldTagTrees,
342
oldTagTrees.TryGetValue(textBuffer, out
var
oldTagTree);
376
private IEnumerable<ITagSpan<TTag>> GetNonIntersectingTagSpans(IEnumerable<SnapshotSpan> spansToInvalidate,
TagSpanIntervalTree
<TTag> oldTagTree)
404
ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> oldTagTrees,
405
ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> newTagTrees,
416
if (oldTagTrees.TryGetValue(latestBuffer, out
var
previousSpans))
446
TagSpanIntervalTree
<TTag> latestTree,
447
TagSpanIntervalTree
<TTag> previousTree)
522
private
TagSpanIntervalTree
<TTag>? TryGetTagIntervalTreeForBuffer(ITextBuffer buffer)
546
this.CachedTagTrees.TryGetValue(buffer, out
var
tags);
562
var
tags = this.TryGetTagIntervalTreeForBuffer(buffer);
Tagging\TaggerContext.cs (3)
23
private readonly ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> _existingTags;
63
ImmutableDictionary<ITextBuffer,
TagSpanIntervalTree
<TTag>> existingTags)
91
_existingTags.TryGetValue(point.Snapshot.TextBuffer, out
var
tree) &&
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (15)
Tagging\TagSpanIntervalTreeTests.cs (15)
20
private static
TagSpanIntervalTree
<ITextMarkerTag> CreateTree(string text, params Span[] spans)
31
var
tree = CreateTree(string.Empty);
39
var
tree = CreateTree("Hello, World", new Span(0, 5));
47
var
tree = CreateTree("Hello, World", new Span(7, 5));
58
var
tree = CreateTree("Hello, World", new Span(7, 5));
70
var
tree = CreateTree(new string('c', 100), Enumerable.Range(50, count: 50).Select(s => new Span(s, 1)).ToArray());
84
var
tree = CreateTree(new string('c', 100), Enumerable.Range(0, count: 100).Select(s => new Span(s, 1)).ToArray());
99
var
tree = CreateTree(new string('c', 100), Enumerable.Range(0, count: 100).Select(s => new Span(s, 1)).ToArray());
113
var
tree = CreateTree(new string('c', 100), Enumerable.Range(0, count: 100).Select(s => new Span(s, 1)).ToArray());
127
var
tree = CreateTree(new string('c', 100), Enumerable.Range(0, count: 100).Select(s => new Span(s, 1)).ToArray());
140
var
tree = CreateTree("goo", new Span(0, 0));
148
var
tree = CreateTree("goo", new Span(0, 0));
156
var
tree = CreateTree("goo", new Span(1, 0));
164
var
tree = CreateTree("goo", new Span(1, 0));
172
var
tree = CreateTree("goo", new Span(1, 0));