Example #1
0
        public AsynchronousTagger(
            IAsynchronousOperationListener listener,
            IForegroundNotificationService notificationService,
            TagSource <TTag> tagSource,
            ITextBuffer subjectBuffer,
            TimeSpan uiUpdateDelay)
        {
            Contract.ThrowIfNull(subjectBuffer);

            _subjectBuffer     = subjectBuffer;
            _uiUpdateDelayInMS = (int)uiUpdateDelay.TotalMilliseconds;

            _batchChangeNotifier = new BatchChangeNotifier(subjectBuffer, listener, notificationService, ReportChangedSpan);

            _tagSource = tagSource;

            _tagSource.OnTaggerAdded(this);
            _tagSource.TagsChangedForBuffer += OnTagsChangedForBuffer;
            _tagSource.Paused  += OnPaused;
            _tagSource.Resumed += OnResumed;
        }