public void Dispose()
        {
            if (_errorProvider != null)
            {
                _errorProvider.Tasks.Clear();
                _errorProvider.Dispose();
            }

            BufferIdleEventUtil.RemoveBufferIdleEventListener(_buffer, ReparseFile);
        }
        public ErrorTagger(ITextBuffer buffer, IBufferTagAggregatorFactoryService aggregatorFactory,
                           IServiceProvider svcp, ITextDocumentFactoryService textDocumentFactory, ITextView view)
        {
            _buffer     = buffer;
            _view       = view;
            _aggregator = aggregatorFactory.CreateTagAggregator <SchemeTag>(buffer);

            textDocumentFactory.TryGetTextDocument(_buffer, out _document);

            _errorProvider = new ErrorListProvider(svcp);


            BufferIdleEventUtil.AddBufferIdleEventListener(_buffer, ReparseFile);
        }