public ITagger <T> CreateTagger <T>(ITextBuffer buffer) where T : ITag { ISQLanguageService service = SQVSUtils.GetService <ISQLanguageService>(); //create a single tagger for each buffer. Func <ITagger <T> > sc = delegate() { return(new SQOutliningTagger(buffer, service as SQLanguageServiceEX) as ITagger <T>); }; return(buffer.Properties.GetOrCreateSingletonProperty <ITagger <T> >(sc)); }
ITagger <T> IViewTaggerProvider.CreateTagger <T>(ITextView textView, ITextBuffer buffer) { ISQLanguageService service = SQVSUtils.GetService <ISQLanguageService>(); ITextStructureNavigator textStructureNavigator = TextStructureNavigatorSelector.GetTextStructureNavigator(buffer); return(buffer.Properties.GetOrCreateSingletonProperty(delegate() { return new SQErrorTagger(textView, buffer, textStructureNavigator, service as SQLanguageServiceEX); }) as ITagger <T>); }