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));
        }