public void ConfigureServices(IGeneratorServiceCollection services)
 {
     services.AddAnalyzerGroup <SourcebergMetaAnalzyerHost.SourcebergMetaAnalyzerGroup>();
     services.AddGenerator <SourcebergMetaGenerator>();
     services.AddGenerator <SourcebergMetaEmbeddedResource>();
     services.AddScoped <SourcebergGeneratorHostBuilder>();
     services.AddScoped <SourcebergAnalyzerHostBuilder>();
 }
 public static IGeneratorServiceCollection AddSyntaxReceiver <TReceiver>(this IGeneratorServiceCollection services, Func <IServiceProvider, TReceiver> serviceFactory) where TReceiver : class, ISyntaxReceiver
 {
     services.AddSingleton(typeof(TReceiver), serviceFactory);
     return(services);
 }
 public static IGeneratorServiceCollection AddRegularAnalyzer <TAnalyzer>(this IGeneratorServiceCollection services, Func <IServiceProvider, TAnalyzer> serviceFactory) where TAnalyzer : DiagnosticAnalyzer
 {
     services.AddSingleton(typeof(TAnalyzer), serviceFactory);
     return(services);
 }
 public static IGeneratorServiceCollection AddSyntaxReceiver <TReceiver>(this IGeneratorServiceCollection services) where TReceiver : class, ISyntaxReceiver
 {
     services.AddSingleton(typeof(TReceiver));
     return(services);
 }
 public static IGeneratorServiceCollection AddRegularAnalyzer <TAnalyzer>(this IGeneratorServiceCollection services) where TAnalyzer : DiagnosticAnalyzer
 {
     services.AddSingleton(typeof(TAnalyzer));
     return(services);
 }
 public static IGeneratorServiceCollection AddAnalyzerGroup <TAnalyzer>(this IGeneratorServiceCollection services, Func <IServiceProvider, TAnalyzer> serviceFactory) where TAnalyzer : SourcebergAnalyzerGroup
 {
     services.AddSingleton(typeof(TAnalyzer), serviceFactory);
     return(services);
 }
 public static IGeneratorServiceCollection AddAnalyzerGroup <TAnalyzer>(this IGeneratorServiceCollection services) where TAnalyzer : SourcebergAnalyzerGroup
 {
     services.AddSingleton(typeof(TAnalyzer));
     return(services);
 }
 public static IGeneratorServiceCollection AddGenerator <TGenerator>(this IGeneratorServiceCollection services, Func <IServiceProvider, TGenerator> serviceFactory) where TGenerator : SourcebergGenerator
 {
     services.AddScoped(serviceFactory);
     return(services);
 }
 public static IGeneratorServiceCollection AddGenerator <TGenerator>(this IGeneratorServiceCollection services) where TGenerator : SourcebergGenerator
 {
     services.AddScoped <TGenerator>();
     return(services);
 }