internal static HighlightReferencesTagger CreateInstance(HighlightReferencesTaggerProvider provider, ITextBuffer buffer, ITextView textView) { HighlightReferencesTagger tagger; if (textView == null) { throw new ArgumentNullException("textView"); } Type key = typeof(HighlightReferencesTagger); if (!textView.Properties.TryGetProperty <HighlightReferencesTagger>(key, out tagger)) { tagger = new HighlightReferencesTagger(provider, buffer, textView); textView.Properties.AddProperty(key, tagger); } return(tagger); }
// Methods private HighlightReferencesTagger(HighlightReferencesTaggerProvider provider, ITextBuffer buffer, ITextView textView) { if (buffer == null) { throw new ArgumentNullException("buffer"); } if (textView == null) { throw new ArgumentNullException("textView"); } _timer = new Timer(UpdateAtCaretPosition, null, Timeout.Infinite, Timeout.Infinite); _provider = provider; this.buffer = buffer; this.textView = textView; this.highlightReferencesSpans = emptyCollection; this.textView.Closed += new EventHandler(this.OnTextView_Closed); this.textView.Caret.PositionChanged += Caret_PositionChanged; this.textView.LayoutChanged += textView_LayoutChanged; this.isActive = true; }