public ITagger <T> CreateTagger <T>(ITextBuffer buffer) where T : ITag { ITextDocument textDocument; buffer.Properties.TryGetProperty(typeof(ITextDocument), out textDocument); Func <ITagger <T> > sc = delegate { return(RuntimeLoader.CreateErrorTagger <T>(textDocument.FilePath, serviceProvider, buffer)); }; return(buffer.Properties.GetOrCreateSingletonProperty(sc)); }