/// <summary> /// Returns a task that completes when the host recognizes that the project has loaded, /// cancelling if the project is unloaded before it completes. /// </summary> /// <exception cref="ArgumentNullException"> /// <paramref name="dashboard"/> is <see langword="null"/>. /// <para> /// -or- /// </para> /// <paramref name="tasksService"/> is <see langword="null"/>. /// </exception> /// <exception cref="OperationCanceledException"> /// The project was unloaded before project load had finished. /// </exception> public static Task ProjectLoadedInHostWithCancellation(this IProjectAsyncLoadDashboard dashboard, IProjectAsynchronousTasksService tasksService) { Requires.NotNull(dashboard, nameof(dashboard)); Requires.NotNull(tasksService, nameof(tasksService)); return(dashboard.ProjectLoadedInHost.WithCancellation(tasksService.UnloadCancellationToken)); }
public VsSafeProjectGuidService(UnconfiguredProject project, [Import(ExportContractNames.Scopes.UnconfiguredProject)] IProjectAsynchronousTasksService tasksService, IProjectAsyncLoadDashboard loadDashboard) { _tasksService = tasksService; _loadDashboard = loadDashboard; ProjectGuidServices = new OrderPrecedenceImportCollection <IProjectGuidService>(projectCapabilityCheckProvider: project); }
public AggregateCrossTargetProjectContextProvider( IUnconfiguredProjectCommonServices commonServices, IProjectAsyncLoadDashboard asyncLoadDashboard, ITaskScheduler taskScheduler, IActiveConfiguredProjectsProvider activeConfiguredProjectsProvider, ITargetFrameworkProvider targetFrameworkProvider) { _commonServices = commonServices; _asyncLoadDashboard = asyncLoadDashboard; _taskScheduler = taskScheduler; _activeConfiguredProjectsProvider = activeConfiguredProjectsProvider; _targetFrameworkProvider = targetFrameworkProvider; }
public UnconfiguedProjectContextProvider(IUnconfiguredProjectCommonServices commonServices, Lazy <IWorkspaceProjectContextFactory> contextFactory, IProjectAsyncLoadDashboard asyncLoadDashboard, ITaskScheduler taskScheduler) { Requires.NotNull(commonServices, nameof(commonServices)); Requires.NotNull(contextFactory, nameof(contextFactory)); Requires.NotNull(asyncLoadDashboard, nameof(asyncLoadDashboard)); Requires.NotNull(taskScheduler, nameof(taskScheduler)); _commonServices = commonServices; _contextFactory = contextFactory; _asyncLoadDashboard = asyncLoadDashboard; _taskScheduler = taskScheduler; }
public UnconfiguredProjectContextProvider(IUnconfiguredProjectCommonServices commonServices, Lazy <IWorkspaceProjectContextFactory> contextFactory, IProjectAsyncLoadDashboard asyncLoadDashboard, ITaskScheduler taskScheduler, IProjectHostProvider projectHostProvider, IActiveConfiguredProjectsProvider activeConfiguredProjectsProvider) { _commonServices = commonServices; _contextFactory = contextFactory; _asyncLoadDashboard = asyncLoadDashboard; _taskScheduler = taskScheduler; _projectHostProvider = projectHostProvider; _activeConfiguredProjectsProvider = activeConfiguredProjectsProvider; _unconfiguredProjectHostObject = _projectHostProvider.UnconfiguredProjectHostObject; }
public UnconfiguredProjectContextProvider(IUnconfiguredProjectCommonServices commonServices, Lazy <IWorkspaceProjectContextFactory> contextFactory, IProjectAsyncLoadDashboard asyncLoadDashboard, ITaskScheduler taskScheduler, IProjectHostProvider projectHostProvider, IActiveConfiguredProjectsProvider activeConfiguredProjectsProvider) { _commonServices = commonServices; _contextFactory = contextFactory; _asyncLoadDashboard = asyncLoadDashboard; _taskScheduler = taskScheduler; _projectHostProvider = projectHostProvider; _activeConfiguredProjectsProvider = activeConfiguredProjectsProvider; _unconfiguredProjectHostObject = _projectHostProvider.UnconfiguredProjectHostObject; ProjectGuidServices = new OrderPrecedenceImportCollection <IProjectGuidService>(projectCapabilityCheckProvider: commonServices.Project); }
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 UnconfiguredProjectContextProvider(IUnconfiguredProjectCommonServices commonServices, Lazy <IWorkspaceProjectContextFactory> contextFactory, IProjectAsyncLoadDashboard asyncLoadDashboard, ITaskScheduler taskScheduler, IProjectHostProvider projectHostProvider, ActiveConfiguredProjectsProvider activeConfiguredProjectsProvider) { Requires.NotNull(commonServices, nameof(commonServices)); Requires.NotNull(contextFactory, nameof(contextFactory)); Requires.NotNull(asyncLoadDashboard, nameof(asyncLoadDashboard)); Requires.NotNull(taskScheduler, nameof(taskScheduler)); Requires.NotNull(projectHostProvider, nameof(projectHostProvider)); Requires.NotNull(activeConfiguredProjectsProvider, nameof(activeConfiguredProjectsProvider)); _commonServices = commonServices; _contextFactory = contextFactory; _asyncLoadDashboard = asyncLoadDashboard; _taskScheduler = taskScheduler; _projectHostProvider = projectHostProvider; _activeConfiguredProjectsProvider = activeConfiguredProjectsProvider; _unconfiguredProjectHostObject = _projectHostProvider.UnconfiguredProjectHostObject; }
/// <summary> /// Gets a task that completes when the host recognizes that this project is loaded. /// The returned task is cancelled if the project is unloaded before it completes. /// This extension should be used instead of waiting on ProjectLoadedInHost directly. /// </summary> public static Task ProjectLoadedInHostWithCancellation( this IProjectAsyncLoadDashboard dashboard, UnconfiguredProject project) => dashboard.ProjectLoadedInHost.WithCancellation( project.Services.ProjectAsynchronousTasks.UnloadCancellationToken);
/// <summary> /// Returns a task that completes when the host recognizes that the project has loaded, /// cancelling if the project is unloaded before it completes. /// </summary> /// <exception cref="ArgumentNullException"> /// <paramref name="dashboard"/> is <see langword="null"/>. /// <para> /// -or- /// </para> /// <paramref name="project"/> is <see langword="null"/>. /// </exception> /// <exception cref="OperationCanceledException"> /// The project was unloaded before project load had finished. /// </exception> public static Task ProjectLoadedInHostWithCancellation(this IProjectAsyncLoadDashboard dashboard, UnconfiguredProject project) { Requires.NotNull(project, nameof(project)); return(ProjectLoadedInHostWithCancellation(dashboard, project.Services.ProjectAsynchronousTasks)); }
private static VsSafeProjectGuidService CreateInstance(IProjectAsynchronousTasksService tasksService = null, IProjectAsyncLoadDashboard loadDashboard = null) { var project = UnconfiguredProjectFactory.Create(); tasksService = tasksService ?? IProjectAsynchronousTasksServiceFactory.Create(); loadDashboard = loadDashboard ?? IProjectAsyncLoadDashboardFactory.ImplementProjectLoadedInHost(() => Task.CompletedTask); return(new VsSafeProjectGuidService(project, tasksService, loadDashboard)); }