public ExternalFeaturesHostServicesProvider(IAssemblyLoader loader, OmniSharpOptions options, IOmniSharpEnvironment environment, ILoggerFactory loggerFactory) { var builder = ImmutableArray.CreateBuilder <Assembly>(); var roslynExtensionsLocations = options.RoslynExtensionsOptions.GetNormalizedLocationPaths(environment); if (roslynExtensionsLocations?.Any() == true) { var logger = loggerFactory.CreateLogger <ExternalFeaturesHostServicesProvider>(); foreach (var roslynExtensionsLocation in roslynExtensionsLocations) { var loadedAssemblies = loader.LoadAllFrom(roslynExtensionsLocation); if (loadedAssemblies.Any()) { builder.AddRange(loadedAssemblies); } else { logger.LogWarning($"The path '{roslynExtensionsLocation}' is configured in the RoslynExtensionsOptions as the external features source but no assemblies were found at this path."); } } } Assemblies = builder.ToImmutable(); }
public ExternalFeaturesHostServicesProvider(IAssemblyLoader loader, OmniSharpOptions options, IOmniSharpEnvironment environment) { var builder = ImmutableArray.CreateBuilder <Assembly>(); var roslynExtensionsLocations = options.RoslynExtensionsOptions.GetNormalizedLocationPaths(environment); if (roslynExtensionsLocations?.Any() == true) { foreach (var roslynExtensionsLocation in roslynExtensionsLocations) { builder.AddRange(loader.LoadAllFrom(roslynExtensionsLocation)); } } Assemblies = builder.ToImmutable(); }