예제 #1
0
        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);
        }
예제 #2
0
 // 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;
 }