public DependenciesSnapshotProvider( IUnconfiguredProjectCommonServices commonServices, Lazy <AggregateCrossTargetProjectContextProvider> contextProvider, IUnconfiguredProjectTasksService tasksService, IActiveConfiguredProjectSubscriptionService activeConfiguredProjectSubscriptionService, IActiveProjectConfigurationRefreshService activeProjectConfigurationRefreshService, ITargetFrameworkProvider targetFrameworkProvider) : base(commonServices.ThreadingService.JoinableTaskContext) { _commonServices = commonServices; _tasksService = tasksService; _activeConfiguredProjectSubscriptionService = activeConfiguredProjectSubscriptionService; _targetFrameworkProvider = targetFrameworkProvider; _dependencySubscribers = new OrderPrecedenceImportCollection <IDependencyCrossTargetSubscriber>( projectCapabilityCheckProvider: commonServices.Project); _snapshotFilters = new OrderPrecedenceImportCollection <IDependenciesSnapshotFilter>( ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast, projectCapabilityCheckProvider: commonServices.Project); _subTreeProviders = new OrderPrecedenceImportCollection <IProjectDependenciesSubTreeProvider>( ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast, projectCapabilityCheckProvider: commonServices.Project); _context = new ContextTracker(targetFrameworkProvider, commonServices, contextProvider, activeProjectConfigurationRefreshService); _snapshot = new SnapshotUpdater(commonServices.ThreadingService, tasksService.UnloadCancellationToken); _disposables = new DisposableBag { _snapshot, _contextUpdateGate }; }
public AggregateDependenciesSnapshotProvider( IProjectExportProvider projectExportProvider, ITargetFrameworkProvider targetFrameworkProvider) { _projectExportProvider = projectExportProvider; _targetFrameworkProvider = targetFrameworkProvider; }
public DependencySubscriptionsHost( IUnconfiguredProjectCommonServices commonServices, Lazy <IAggregateCrossTargetProjectContextProvider> contextProvider, [Import(ExportContractNames.Scopes.UnconfiguredProject)] IProjectAsynchronousTasksService tasksService, IActiveConfiguredProjectSubscriptionService activeConfiguredProjectSubscriptionService, IActiveProjectConfigurationRefreshService activeProjectConfigurationRefreshService, ITargetFrameworkProvider targetFrameworkProvider, IAggregateDependenciesSnapshotProvider aggregateSnapshotProvider) : base(commonServices, contextProvider, tasksService, activeConfiguredProjectSubscriptionService, activeProjectConfigurationRefreshService) { CommonServices = commonServices; DependencySubscribers = new OrderPrecedenceImportCollection <IDependencyCrossTargetSubscriber>( projectCapabilityCheckProvider: commonServices.Project); SnapshotFilters = new OrderPrecedenceImportCollection <IDependenciesSnapshotFilter>( projectCapabilityCheckProvider: commonServices.Project, orderingStyle: ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast); SubTreeProviders = new OrderPrecedenceImportCollection <IProjectDependenciesSubTreeProvider>( ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast, projectCapabilityCheckProvider: commonServices.Project); DependenciesUpdateScheduler = new TaskDelayScheduler( _dependenciesUpdateThrottleInterval, commonServices.ThreadingService, tasksService.UnloadCancellationToken); TargetFrameworkProvider = targetFrameworkProvider; AggregateSnapshotProvider = aggregateSnapshotProvider; ProjectFilePath = CommonServices.Project.FullPath; }
public UnsupportedProjectsSnapshotFilter( IAggregateDependenciesSnapshotProvider aggregateSnapshotProvider, ITargetFrameworkProvider targetFrameworkProvider) { AggregateSnapshotProvider = aggregateSnapshotProvider; TargetFrameworkProvider = targetFrameworkProvider; }
public ProjectGraphViewProvider(IDependenciesGraphBuilder builder, IAggregateDependenciesSnapshotProvider aggregateSnapshotProvider, ITargetFrameworkProvider targetFrameworkProvider) : base(builder) { AggregateSnapshotProvider = aggregateSnapshotProvider; TargetFrameworkProvider = targetFrameworkProvider; }
public AggregateCrossTargetProjectContextProvider( IUnconfiguredProjectCommonServices commonServices, IActiveConfiguredProjectsProvider activeConfiguredProjectsProvider, ITargetFrameworkProvider targetFrameworkProvider) { _commonServices = commonServices; _activeConfiguredProjectsProvider = activeConfiguredProjectsProvider; _targetFrameworkProvider = targetFrameworkProvider; }
public AggregateCrossTargetProjectContextProvider( IUnconfiguredProjectCommonServices commonServices, IActiveConfiguredProjectsProvider activeConfiguredProjectsProvider, ITargetFrameworkProvider targetFrameworkProvider) : base(synchronousDisposal: true) { _commonServices = commonServices; _activeConfiguredProjectsProvider = activeConfiguredProjectsProvider; _targetFrameworkProvider = targetFrameworkProvider; }
public AggregateCrossTargetProjectContextProvider( IUnconfiguredProjectCommonServices commonServices, IProjectAsyncLoadDashboard asyncLoadDashboard, ITaskScheduler taskScheduler, IActiveConfiguredProjectsProvider activeConfiguredProjectsProvider, ITargetFrameworkProvider targetFrameworkProvider) { _commonServices = commonServices; _asyncLoadDashboard = asyncLoadDashboard; _taskScheduler = taskScheduler; _activeConfiguredProjectsProvider = activeConfiguredProjectsProvider; _targetFrameworkProvider = targetFrameworkProvider; }
public MesserliOneRepositoryPluginGenerator( IConsoleWriter consoleWriter, IFileGenerator fileGenerator, IUserInputProvider userInputProvider, ISolutionLoader solutionLoader, ITargetFrameworkProvider targetFrameworkProvider, ITools tools) { _consoleWriter = consoleWriter; _fileGenerator = fileGenerator; _userInputProvider = userInputProvider; _solutionLoader = solutionLoader; _targetFrameworkProvider = targetFrameworkProvider; _tools = tools; }
public ContextTracker( ITargetFrameworkProvider targetFrameworkProvider, IUnconfiguredProjectCommonServices commonServices, Lazy <AggregateCrossTargetProjectContextProvider> contextProvider, IActiveProjectConfigurationRefreshService activeProjectConfigurationRefreshService) { Requires.NotNull(targetFrameworkProvider, nameof(targetFrameworkProvider)); Requires.NotNull(commonServices, nameof(commonServices)); Requires.NotNull(contextProvider, nameof(contextProvider)); Requires.NotNull(activeProjectConfigurationRefreshService, nameof(activeProjectConfigurationRefreshService)); _targetFrameworkProvider = targetFrameworkProvider; _commonServices = commonServices; _contextProvider = contextProvider; _activeProjectConfigurationRefreshService = activeProjectConfigurationRefreshService; }
public DependenciesSnapshotProvider( IUnconfiguredProjectCommonServices commonServices, Lazy <IAggregateCrossTargetProjectContextProvider> contextProvider, IUnconfiguredProjectTasksService tasksService, IActiveConfiguredProjectSubscriptionService activeConfiguredProjectSubscriptionService, IActiveProjectConfigurationRefreshService activeProjectConfigurationRefreshService, ITargetFrameworkProvider targetFrameworkProvider, IAggregateDependenciesSnapshotProvider aggregateSnapshotProvider) : base(commonServices.ThreadingService.JoinableTaskContext) { Requires.NotNull(contextProvider, nameof(contextProvider)); Requires.NotNull(tasksService, nameof(tasksService)); Requires.NotNull(activeConfiguredProjectSubscriptionService, nameof(activeConfiguredProjectSubscriptionService)); Requires.NotNull(activeProjectConfigurationRefreshService, nameof(activeProjectConfigurationRefreshService)); Requires.NotNull(targetFrameworkProvider, nameof(targetFrameworkProvider)); Requires.NotNull(aggregateSnapshotProvider, nameof(aggregateSnapshotProvider)); _commonServices = commonServices; _contextProvider = contextProvider; _tasksService = tasksService; _activeConfiguredProjectSubscriptionService = activeConfiguredProjectSubscriptionService; _activeProjectConfigurationRefreshService = activeProjectConfigurationRefreshService; _targetFrameworkProvider = targetFrameworkProvider; _currentSnapshot = DependenciesSnapshot.CreateEmpty(_commonServices.Project.FullPath); _dependencySubscribers = new OrderPrecedenceImportCollection <IDependencyCrossTargetSubscriber>( projectCapabilityCheckProvider: commonServices.Project); _snapshotFilters = new OrderPrecedenceImportCollection <IDependenciesSnapshotFilter>( ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast, projectCapabilityCheckProvider: commonServices.Project); _subTreeProviders = new OrderPrecedenceImportCollection <IProjectDependenciesSubTreeProvider>( ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast, projectCapabilityCheckProvider: commonServices.Project); _dependenciesUpdateScheduler = new TaskDelayScheduler( _dependenciesUpdateThrottleInterval, commonServices.ThreadingService, tasksService.UnloadCancellationToken); _snapshotChangedSource = DataflowBlockSlim.CreateBroadcastBlock <SnapshotChangedEventArgs>("DependenciesSnapshot {1}", skipIntermediateInputData: true); aggregateSnapshotProvider.RegisterSnapshotProvider(this); }
public DependencySubscriptionsHost( IUnconfiguredProjectCommonServices commonServices, Lazy <IAggregateCrossTargetProjectContextProvider> contextProvider, [Import(ExportContractNames.Scopes.UnconfiguredProject)] IProjectAsynchronousTasksService tasksService, IActiveConfiguredProjectSubscriptionService activeConfiguredProjectSubscriptionService, IActiveProjectConfigurationRefreshService activeProjectConfigurationRefreshService, ITargetFrameworkProvider targetFrameworkProvider, IAggregateDependenciesSnapshotProvider aggregateSnapshotProvider) : base(commonServices.ThreadingService.JoinableTaskContext) { Requires.NotNull(contextProvider, nameof(contextProvider)); Requires.NotNull(tasksService, nameof(tasksService)); Requires.NotNull(activeConfiguredProjectSubscriptionService, nameof(activeConfiguredProjectSubscriptionService)); Requires.NotNull(activeProjectConfigurationRefreshService, nameof(activeProjectConfigurationRefreshService)); Requires.NotNull(targetFrameworkProvider, nameof(targetFrameworkProvider)); Requires.NotNull(aggregateSnapshotProvider, nameof(aggregateSnapshotProvider)); _commonServices = commonServices; _contextProvider = contextProvider; _tasksService = tasksService; _activeConfiguredProjectSubscriptionService = activeConfiguredProjectSubscriptionService; _activeProjectConfigurationRefreshService = activeProjectConfigurationRefreshService; _targetFrameworkProvider = targetFrameworkProvider; _aggregateSnapshotProvider = aggregateSnapshotProvider; _currentSnapshot = DependenciesSnapshot.CreateEmpty(_commonServices.Project.FullPath); _dependencySubscribers = new OrderPrecedenceImportCollection <IDependencyCrossTargetSubscriber>( projectCapabilityCheckProvider: commonServices.Project); _snapshotFilters = new OrderPrecedenceImportCollection <IDependenciesSnapshotFilter>( projectCapabilityCheckProvider: commonServices.Project, orderingStyle: ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast); _subTreeProviders = new OrderPrecedenceImportCollection <IProjectDependenciesSubTreeProvider>( ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesLast, projectCapabilityCheckProvider: commonServices.Project); _dependenciesUpdateScheduler = new TaskDelayScheduler( _dependenciesUpdateThrottleInterval, commonServices.ThreadingService, tasksService.UnloadCancellationToken); ProjectFilePath = commonServices.Project.FullPath; }
public AggregateCrossTargetProjectContext( bool isCrossTargeting, ImmutableArray <ITargetFramework> targetFrameworks, ImmutableDictionary <string, ConfiguredProject> configuredProjectsByTargetFramework, ITargetFramework activeTargetFramework, ITargetFrameworkProvider targetFrameworkProvider) { Requires.Argument(!targetFrameworks.IsDefaultOrEmpty, nameof(targetFrameworks), "Must contain at least one item."); Requires.NotNullOrEmpty(configuredProjectsByTargetFramework, nameof(configuredProjectsByTargetFramework)); Requires.NotNull(activeTargetFramework, nameof(activeTargetFramework)); Requires.Argument(targetFrameworks.Contains(activeTargetFramework), nameof(targetFrameworks), "Must contain 'activeTargetFramework'."); IsCrossTargeting = isCrossTargeting; TargetFrameworks = targetFrameworks; _configuredProjectsByTargetFramework = configuredProjectsByTargetFramework; ActiveTargetFramework = activeTargetFramework; _targetFrameworkProvider = targetFrameworkProvider; }
public AggregateCrossTargetProjectContext( bool isCrossTargeting, ImmutableDictionary <ITargetFramework, ITargetedProjectContext> configuredProjectContextsByTargetFramework, ImmutableDictionary <string, ConfiguredProject> configuredProjectsByTargetFramework, ITargetFramework activeTargetFramework, ITargetFrameworkProvider targetFrameworkProvider) { Requires.NotNullOrEmpty(configuredProjectContextsByTargetFramework, nameof(configuredProjectContextsByTargetFramework)); Requires.NotNullOrEmpty(configuredProjectsByTargetFramework, nameof(configuredProjectsByTargetFramework)); Requires.NotNull(activeTargetFramework, nameof(activeTargetFramework)); Requires.Argument(configuredProjectContextsByTargetFramework.ContainsKey(activeTargetFramework), nameof(configuredProjectContextsByTargetFramework), "Missing ICrossTargetProjectContext for activeTargetFramework"); IsCrossTargeting = isCrossTargeting; _configuredProjectContextsByTargetFramework = configuredProjectContextsByTargetFramework; _configuredProjectsByTargetFramework = configuredProjectsByTargetFramework; _activeTargetFramework = activeTargetFramework; TargetFrameworkProvider = targetFrameworkProvider; }
public AggregateCrossTargetProjectContextProvider( IUnconfiguredProjectCommonServices commonServices, IProjectAsyncLoadDashboard asyncLoadDashboard, ITaskScheduler taskScheduler, IActiveConfiguredProjectsProvider activeConfiguredProjectsProvider, ITargetFrameworkProvider targetFrameworkProvider) { Requires.NotNull(commonServices, nameof(commonServices)); Requires.NotNull(asyncLoadDashboard, nameof(asyncLoadDashboard)); Requires.NotNull(taskScheduler, nameof(taskScheduler)); Requires.NotNull(activeConfiguredProjectsProvider, nameof(activeConfiguredProjectsProvider)); Requires.NotNull(targetFrameworkProvider, nameof(targetFrameworkProvider)); _commonServices = commonServices; _asyncLoadDashboard = asyncLoadDashboard; _taskScheduler = taskScheduler; _activeConfiguredProjectsProvider = activeConfiguredProjectsProvider; _targetFrameworkProvider = targetFrameworkProvider; }
public AggregateCrossTargetProjectContext( bool isCrossTargeting, ImmutableArray <TargetFramework> targetFrameworks, ImmutableDictionary <string, ConfiguredProject> configuredProjectByTargetFramework, TargetFramework activeTargetFramework, ITargetFrameworkProvider targetFrameworkProvider) { Requires.Argument(!targetFrameworks.IsDefaultOrEmpty, nameof(targetFrameworks), "Must contain at least one item."); Requires.NotNullOrEmpty(configuredProjectByTargetFramework, nameof(configuredProjectByTargetFramework)); Requires.NotNull(activeTargetFramework, nameof(activeTargetFramework)); if (!targetFrameworks.Contains(activeTargetFramework)) { Requires.Argument(false, nameof(targetFrameworks), $"Must contain 'activeTargetFramework' ({activeTargetFramework.TargetFrameworkAlias}). Contains {string.Join(", ", targetFrameworks.Select(targetFramework => $"'{targetFramework.TargetFrameworkAlias}'"))}."); } IsCrossTargeting = isCrossTargeting; TargetFrameworks = targetFrameworks; _configuredProjectByTargetFramework = configuredProjectByTargetFramework; ActiveTargetFramework = activeTargetFramework; _targetFrameworkProvider = targetFrameworkProvider; }
public CrossTargetSubscriptionHostBase(IUnconfiguredProjectCommonServices commonServices, Lazy <IAggregateCrossTargetProjectContextProvider> contextProvider, [Import(ExportContractNames.Scopes.UnconfiguredProject)] IProjectAsynchronousTasksService tasksService, IActiveConfiguredProjectSubscriptionService activeConfiguredProjectSubscriptionService, IActiveProjectConfigurationRefreshService activeProjectConfigurationRefreshService, ITargetFrameworkProvider targetFrameworkProvider) : base(commonServices.ThreadingService.JoinableTaskContext) { Requires.NotNull(contextProvider, nameof(contextProvider)); Requires.NotNull(tasksService, nameof(tasksService)); Requires.NotNull(activeConfiguredProjectSubscriptionService, nameof(activeConfiguredProjectSubscriptionService)); Requires.NotNull(activeProjectConfigurationRefreshService, nameof(activeProjectConfigurationRefreshService)); Requires.NotNull(targetFrameworkProvider, nameof(targetFrameworkProvider)); _commonServices = commonServices; _contextProvider = contextProvider; _tasksService = tasksService; _activeConfiguredProjectSubscriptionService = activeConfiguredProjectSubscriptionService; _activeProjectConfigurationRefreshService = activeProjectConfigurationRefreshService; _targetFrameworkProvider = targetFrameworkProvider; _evaluationSubscriptionLinks = new List <IDisposable>(); }
public static bool TryGetMetadata( string itemSpec, bool isResolved, IImmutableDictionary <string, string> properties, HashSet <string> unresolvedChanges, ITargetFramework targetFramework, ITargetFrameworkProvider targetFrameworkProvider, out PackageDependencyMetadata metadata) { Requires.NotNull(itemSpec, nameof(itemSpec)); Requires.NotNull(properties, nameof(properties)); // unresolvedChanges can be null Requires.NotNull(targetFramework, nameof(targetFramework)); Requires.NotNull(targetFrameworkProvider, nameof(targetFrameworkProvider)); bool isTopLevel; string target = GetTargetFromDependencyId(itemSpec); DependencyType dependencyType = properties.GetEnumProperty <DependencyType>(ProjectItemMetadata.Type) ?? (isResolved ? DependencyType.Unknown : DependencyType.Package); string name = properties.GetStringProperty(ProjectItemMetadata.Name) ?? itemSpec; bool isImplicitlyDefined = properties.GetBoolProperty(ProjectItemMetadata.IsImplicitlyDefined) ?? false; if (isResolved) { isTopLevel = isImplicitlyDefined || (dependencyType == DependencyType.Package && unresolvedChanges?.Contains(name) == true); bool isTarget = itemSpec.IndexOf('/') == -1; if (isTarget) { metadata = default; return(false); } ITargetFramework packageTargetFramework = targetFrameworkProvider.GetTargetFramework(target); if (packageTargetFramework?.Equals(targetFramework) != true) { metadata = default; return(false); } } else { isTopLevel = true; } string originalItemSpec = isResolved && isTopLevel ? name : itemSpec; metadata = new PackageDependencyMetadata( dependencyType, target, itemSpec, originalItemSpec, name, isResolved, isImplicitlyDefined, isTopLevel, properties); return(true);
public PackageRuleHandler(ITargetFrameworkProvider targetFrameworkProvider) : base(PackageReference.SchemaName, ResolvedPackageReference.SchemaName) { _targetFrameworkProvider = targetFrameworkProvider; }
public AddPackageCodeFixProviderBase(IPackageInstaller packageInstaller, ITargetFrameworkProvider targetFrameworkProvider) : this(packageInstaller, new PackageSearcher(new LogFactory(LogLevel.Quiet)), targetFrameworkProvider) { }
public AddPackageCodeFixProviderBase(IPackageInstaller packageInstaller, ILog logger, ITargetFrameworkProvider targetFrameworkProvider) : this(packageInstaller, new PackageSearcher(logger), targetFrameworkProvider) { }
internal AddPackageCodeFixProviderBase(IPackageInstaller packageInstaller, IPackageSearcher packageSearcher, ITargetFrameworkProvider targetFrameworkProvider) { _packageInstaller = packageInstaller; _packageSearcher = packageSearcher; _targetFrameworkProvider = targetFrameworkProvider; }
public PackageRuleHandler(ITargetFrameworkProvider targetFrameworkProvider) { Requires.NotNull(targetFrameworkProvider, nameof(targetFrameworkProvider)); TargetFrameworkProvider = targetFrameworkProvider; }
public AddPackageDiagnosticAnalyzer(IEnumerable <IIdentifierFilter> identifierFilters, ITargetFrameworkProvider targetFrameworkProvider) : this(new PackageSearcher(new LogFactory(LogLevel.Quiet)), identifierFilters, targetFrameworkProvider) { }
public AddPackageDiagnosticAnalyzer(IEnumerable <IIdentifierFilter> identifierFilters, ITargetFrameworkProvider targetFrameworkProvider, ILog logger) : this(new PackageSearcher(logger), identifierFilters, targetFrameworkProvider) { }
internal AddPackageDiagnosticAnalyzer(IPackageSearcher packageSearcher, IEnumerable <IIdentifierFilter> identifierFilters, ITargetFrameworkProvider targetFrameworkProvider) : base(identifierFilters) { _packageSearcher = packageSearcher; _targetFrameworkProvider = targetFrameworkProvider; }
public AggregateDependenciesSnapshotProvider(ITargetFrameworkProvider targetFrameworkProvider) { _targetFrameworkProvider = targetFrameworkProvider; _snapshotProviderByPath = ImmutableDictionary <string, IDependenciesSnapshotProvider> .Empty.WithComparers(StringComparer.OrdinalIgnoreCase); }
public PackageRuleHandler(ITargetFrameworkProvider targetFrameworkProvider) { TargetFrameworkProvider = targetFrameworkProvider; }
public static bool TryGetMetadata( string itemSpec, bool isResolved, IImmutableDictionary <string, string> properties, Func <string, bool>?isEvaluatedItemSpec, ITargetFramework targetFramework, ITargetFrameworkProvider targetFrameworkProvider, out PackageDependencyMetadata metadata) { Requires.NotNullOrEmpty(itemSpec, nameof(itemSpec)); Requires.NotNull(properties, nameof(properties)); bool isImplicitlyDefined = properties.GetBoolProperty(ProjectItemMetadata.IsImplicitlyDefined) ?? false; if (isResolved) { // We have design-time build data Requires.NotNull(targetFramework, nameof(targetFramework)); Requires.NotNull(targetFrameworkProvider, nameof(targetFrameworkProvider)); Requires.NotNull(isEvaluatedItemSpec !, nameof(isEvaluatedItemSpec)); DependencyType dependencyType = properties.GetEnumProperty <DependencyType>(ProjectItemMetadata.Type) ?? DependencyType.Unknown; if (dependencyType == DependencyType.Target) { // Disregard items of type 'Target' from design-time build metadata = default; return(false); } int slashIndex = itemSpec.IndexOf('/'); string?targetFrameworkName = slashIndex == -1 ? null : s_targetFrameworkInternPool.Intern(itemSpec.Substring(0, slashIndex)); if (targetFrameworkName == null || targetFrameworkProvider.GetTargetFramework(targetFrameworkName)?.Equals(targetFramework) != true) { metadata = default; return(false); } string name = properties.GetStringProperty(ProjectItemMetadata.Name) ?? itemSpec; bool isTopLevel = isImplicitlyDefined || (dependencyType == DependencyType.Package && isEvaluatedItemSpec(name)); string originalItemSpec = isTopLevel ? name : itemSpec; metadata = new PackageDependencyMetadata( dependencyType, targetFrameworkName, itemSpec, originalItemSpec, name, isResolved: true, isImplicitlyDefined, isTopLevel, properties); } else { // We only have evaluation data System.Diagnostics.Debug.Assert(itemSpec.IndexOf('/') == -1); metadata = new PackageDependencyMetadata( dependencyType: DependencyType.Package, targetFrameworkName: null, itemSpec, originalItemSpec: itemSpec, name: itemSpec, isResolved: false, isImplicitlyDefined, isTopLevel: true, properties); } return(true); }