protected internal override IEnumerable <ITagSpan <IClassificationTag> > GetTagsSynchronousImplementation(ITextSnapshot snapshot)
        {
            TaggerType currentTaggerType = GetCurrentTaggerTypeFromSettings();

            if (!_taggersByType.TryGetValue(currentTaggerType, out PXColorizerTaggerBase activeTagger))
            {
                return(Enumerable.Empty <ITagSpan <IClassificationTag> >());
            }

            return(activeTagger.GetTagsSynchronousImplementation(snapshot));
        }
        protected internal override Task <IEnumerable <ITagSpan <IClassificationTag> > > GetTagsAsyncImplementationAsync(ITextSnapshot snapshot,
                                                                                                                         CancellationToken cancellationToken)
        {
            TaggerType currentTaggerType = GetCurrentTaggerTypeFromSettings();

            if (!_taggersByType.TryGetValue(currentTaggerType, out PXColorizerTaggerBase activeTagger))
            {
                return(Task.FromResult(Enumerable.Empty <ITagSpan <IClassificationTag> >()));
            }

            if (activeTagger.UseAsyncTagging)
            {
                return(activeTagger.GetTagsAsyncImplementationAsync(snapshot, cancellationToken));
            }
            else
            {
                var tags = activeTagger.GetTagsSynchronousImplementation(snapshot);
                return(Task.FromResult(tags));
            }
        }