Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 9ec3d1b

Browse files
committed
Cache Tagger in TextView not TextBuffer
See #2382 for why.
1 parent ce9e5c4 commit 9ec3d1b

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

src/GitHub.InlineReviews/Tags/InlineCommentTaggerProvider.cs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using System;
22
using System.ComponentModel.Composition;
33
using GitHub.Extensions;
4-
using GitHub.InlineReviews.Services;
54
using GitHub.Services;
65
using Microsoft.VisualStudio.Text;
6+
using Microsoft.VisualStudio.Text.Differencing;
77
using Microsoft.VisualStudio.Text.Editor;
88
using Microsoft.VisualStudio.Text.Tagging;
99
using Microsoft.VisualStudio.Utilities;
@@ -31,11 +31,22 @@ public InlineCommentTaggerProvider(
3131

3232
public ITagger<T> CreateTagger<T>(ITextView view, ITextBuffer buffer) where T : ITag
3333
{
34-
return buffer.Properties.GetOrCreateSingletonProperty(() =>
35-
new InlineCommentTagger(
36-
view,
37-
buffer,
38-
sessionManager)) as ITagger<T>;
34+
if (view.TextViewModel is IDifferenceTextViewModel model)
35+
{
36+
if (buffer == model.Viewer.DifferenceBuffer.BaseLeftBuffer)
37+
{
38+
return view.Properties.GetOrCreateSingletonProperty("InlineTaggerForLeftBuffer",
39+
() => new InlineCommentTagger(view, buffer, sessionManager) as ITagger<T>);
40+
}
41+
42+
if (buffer == model.Viewer.DifferenceBuffer.BaseRightBuffer)
43+
{
44+
return view.Properties.GetOrCreateSingletonProperty("InlineTaggerForRightBuffer",
45+
() => new InlineCommentTagger(view, buffer, sessionManager) as ITagger<T>);
46+
}
47+
}
48+
49+
return null;
3950
}
4051
}
4152
}

0 commit comments

Comments
 (0)