public ISmartIndent CreateSmartIndent(ITextView textView) { return(new SmartIndent( textView, _editorOptionsFactory.GetOptions(textView), _taggerProvider == null ? null : _taggerProvider.CreateTagger <ClassificationTag>(textView.TextBuffer))); }
internal IList <ITagger <T> > GatherTaggers(ITextBuffer textBuffer) { List <ITagger <T> > newTaggers = new List <ITagger <T> >(); var bufferTaggerFactories = this.TagAggregatorFactoryService.GuardedOperations.FindEligibleFactories(this.TagAggregatorFactoryService.GetBufferTaggersForType(textBuffer.ContentType, typeof(T)), textBuffer.ContentType, this.TagAggregatorFactoryService.ContentTypeRegistryService); foreach (var factory in bufferTaggerFactories) { ITaggerProvider provider = null; ITagger <T> tagger = null; try { provider = factory.Value; tagger = provider.CreateTagger <T>(textBuffer); } catch (Exception e) { object errorSource = (provider != null) ? (object)provider : factory; this.TagAggregatorFactoryService.GuardedOperations.HandleException(errorSource, e); } this.RegisterTagger(tagger, newTaggers); } if (this.textView != null) { var viewTaggerFactories = this.TagAggregatorFactoryService.GuardedOperations.FindEligibleFactories(this.TagAggregatorFactoryService.GetViewTaggersForType(textBuffer.ContentType, typeof(T)).Where(f => (f.Metadata.TextViewRoles == null) || this.textView.Roles.ContainsAny(f.Metadata.TextViewRoles)), textBuffer.ContentType, this.TagAggregatorFactoryService.ContentTypeRegistryService); foreach (var factory in viewTaggerFactories) { IViewTaggerProvider provider = null; ITagger <T> tagger = null; try { provider = factory.Value; tagger = provider.CreateTagger <T>(this.textView, textBuffer); } catch (Exception e) { object errorSource = (provider != null) ? (object)provider : factory; this.TagAggregatorFactoryService.GuardedOperations.HandleException(errorSource, e); } this.RegisterTagger(tagger, newTaggers); } } return(newTaggers); }
/// <summary> /// Creating an ITagger for an ITaggerProvider can fail in a number of ways. Wrap them /// all up here /// </summary> public static Result <ITagger <T> > SafeCreateTagger <T>(this ITaggerProvider taggerProvider, ITextBuffer textbuffer) where T : ITag { try { var tagger = taggerProvider.CreateTagger <T>(textbuffer); if (tagger == null) { return(Result.Error); } return(Result.CreateSuccess(tagger)); } catch (Exception e) { return(Result.CreateError(e)); } }
private IEnumerable <ITagSpan <TTag> > GetVsTagSpans <TTag>(IWpfTextView textView, ITaggerProvider taggerProvider) where TTag : ITag { var tagger = taggerProvider.CreateTagger <TTag>(textView.TextBuffer); return(GetVsTagSpans <TTag, ITagger <TTag> >(textView, tagger)); }