public async void when_initializing_context_then_succeeds () { var context = new JoinableTaskContext(Thread.CurrentThread, SynchronizationContext.Current); await context.Factory.SwitchToMainThreadAsync (); await TaskScheduler.Default.SwitchTo (); await context.Factory.SwitchToMainThreadAsync (); Assert.True(true); }
public void when_retrieving_async_manager_dev11_then_uses_legacy_task_context() { var context = new JoinableTaskContext(); var services = Mock.Of<IServiceProvider>(x => x.GetService(typeof(SVsJoinableTaskContext)) == context); var manager = new AsyncManagerProvider(services); var actual = typeof(AsyncManager).GetField("context", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(manager.AsyncManager); Assert.Same(context, actual); }
public void when_retrieving_async_manager_dev12_or_greater_then_uses_new_task_scheduler_service() { var context = new JoinableTaskContext(); var services = Mock.Of<IServiceProvider>(x => x.GetService(typeof(SVsTaskSchedulerService)) == Mock.Of<IVsTaskSchedulerService2>(t => t.GetAsyncTaskContext() == context)); var manager = new AsyncManagerProvider(services); var actual = typeof(AsyncManager).GetField("context", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(manager.AsyncManager); Assert.Same(context, actual); }
public void HandleDocumentOpened(string filePath, ITextBuffer textBuffer) { JoinableTaskContext.AssertUIThread(); lock (Lock) { if (!TryGetMatchingDocuments(filePath, out var documents)) { // This isn't a document that we're interesting in. return; } BufferLoaded(textBuffer, filePath, documents); } }
static CompositionContainer CreateOutOfProcExports() { var container = new CompositionContainer(); var serviceProvider = new OutOfProcSVsServiceProvider(); container.ComposeExportedValue <SVsServiceProvider>(serviceProvider); #pragma warning disable VSSDK005 // Avoid instantiating JoinableTaskContext var joinableTaskContext = new JoinableTaskContext(); #pragma warning restore VSSDK005 // Avoid instantiating JoinableTaskContext container.ComposeExportedValue(joinableTaskContext); return(container); }
public DefaultRazorUIContextManager(SVsServiceProvider serviceProvider, JoinableTaskContext joinableTaskContext) { if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } if (joinableTaskContext is null) { throw new ArgumentNullException(nameof(joinableTaskContext)); } _serviceProvider = serviceProvider; _joinableTaskFactory = joinableTaskContext.Factory; }
public WithResult(JoinableTaskContext taskContext, IProgressDialog dialog, Func <ICancelable, Task <T> > func, TimeSpan delay, TimeSpan reportPeriod) : base(taskContext, dialog, delay, reportPeriod) { task = async() => { var result = await func(this); if (!cancellationSource.IsCancellationRequested) { Result = result; } }; }
public UsageTracker( IGitHubServiceProvider gitHubServiceProvider, IUsageService service, IPackageSettings settings, JoinableTaskContext joinableTaskContext, bool vsTelemetry) { this.gitHubServiceProvider = gitHubServiceProvider; this.service = service; this.userSettings = settings; JoinableTaskContext = joinableTaskContext; this.vsTelemetry = vsTelemetry; timer = StartTimer(); }
private static ViewCodeCommandHandler CreateHandler(string razorFilePath, out ViewCodeCommandArgs args) { var textBuffer = Mock.Of <ITextBuffer>(MockBehavior.Strict); var textDocument = Mock.Of <ITextDocument>(doc => doc.FilePath == razorFilePath, MockBehavior.Strict); var textDocumentFactory = Mock.Of <ITextDocumentFactoryService>(factory => factory.TryGetTextDocument(textBuffer, out textDocument) == true, MockBehavior.Strict); var joinableTaskContext = new JoinableTaskContext(); var documentInteractionManager = Mock.Of <DocumentInteractionManager>(MockBehavior.Strict); var handler = new ViewCodeCommandHandler(documentInteractionManager, textDocumentFactory, joinableTaskContext); var textView = Mock.Of <ITextView>(MockBehavior.Strict); args = new ViewCodeCommandArgs(textView, textBuffer); return(handler); }
public ActivityLogRazorLogger(SVsServiceProvider serviceProvider, JoinableTaskContext joinableTaskContext) { if (serviceProvider is null) { throw new ArgumentNullException(nameof(serviceProvider)); } if (joinableTaskContext is null) { throw new ArgumentNullException(nameof(joinableTaskContext)); } _serviceProvider = serviceProvider; _joinableTaskFactory = joinableTaskContext.Factory; }
public TestOnTypeFormattingHandler( JoinableTaskContext joinableTaskContext, LSPDocumentManager documentManager, LSPRequestInvoker requestInvoker, LSPProjectionProvider projectionProvider, LSPDocumentMappingProvider documentMappingProvider, LSPEditorService editorService) : base( joinableTaskContext, documentManager, requestInvoker, projectionProvider, documentMappingProvider, editorService) { }
public LanguageServiceErrorListProvider( UnconfiguredProject project, IActiveWorkspaceProjectContextHost projectContextHost, IVsService <SVsFeatureFlags, IVsFeatureFlags> featureFlagsService, JoinableTaskContext joinableTaskContext) { _project = project; _projectContextHost = projectContextHost; _isLspPullDiagnosticsEnabled = new AsyncLazy <bool>(async() => { IVsFeatureFlags?service = await featureFlagsService.GetValueAsync(); return(service.IsFeatureEnabled(LspPullDiagnosticsFeatureFlagName, defaultValue: false)); }, joinableTaskContext.Factory); }
public FallbackRazorProjectHostTest() { ProjectManager = new TestProjectSnapshotManager(Dispatcher, Workspace); var projectConfigurationFilePathStore = new Mock <ProjectConfigurationFilePathStore>(MockBehavior.Strict); projectConfigurationFilePathStore.Setup(s => s.Remove(It.IsAny <string>())).Verifiable(); ProjectConfigurationFilePathStore = projectConfigurationFilePathStore.Object; ReferenceItems = new ItemCollection(ManagedProjectSystemSchema.ResolvedCompilationReference.SchemaName); ContentItems = new ItemCollection(ManagedProjectSystemSchema.ContentItem.SchemaName); NoneItems = new ItemCollection(ManagedProjectSystemSchema.NoneItem.SchemaName); JoinableTaskContext = new JoinableTaskContext(); }
public DefaultWaitDialogFactory(JoinableTaskContext joinableTaskContext) { if (joinableTaskContext is null) { throw new ArgumentNullException(nameof(joinableTaskContext)); } _waitDialogFactory = (IVsThreadedWaitDialogFactory)Shell.Package.GetGlobalService(typeof(SVsThreadedWaitDialogFactory)); if (_waitDialogFactory == null) { throw new ArgumentNullException(nameof(_waitDialogFactory)); } _joinableTaskFactory = joinableTaskContext.Factory; }
public RazorTextViewConnectionListener(JoinableTaskContext joinableTaskContext, RazorDocumentManager documentManager) { if (joinableTaskContext is null) { throw new ArgumentNullException(nameof(joinableTaskContext)); } if (documentManager is null) { throw new ArgumentNullException(nameof(documentManager)); } _joinableTaskContext = joinableTaskContext; _documentManager = documentManager; }
public CoreAttachWindow(IServiceProvider serviceProvider) { var serviceManager = new ServiceManager(); _taskContext = serviceManager.GetJoinableTaskContext(); _dialogUtil = new DialogUtil(); IExtensionOptions options = ((YetiVSIService)serviceManager.RequireGlobalService(typeof(YetiVSIService))) .Options; var managedProcessFactory = new ManagedProcess.Factory(); var progressDialogFactory = new ProgressDialog.Factory(); _cancelableTaskFactory = new CancelableTask.Factory(_taskContext, progressDialogFactory); _coreListRequest = new CoreListRequest.Factory().Create(); var jsonUtil = new JsonUtil(); var credentialConfigFactory = new CredentialConfig.Factory(jsonUtil); var accountOptionLoader = new VsiAccountOptionLoader(options); var credentialManager = new CredentialManager(credentialConfigFactory, accountOptionLoader); _developerAccount = credentialManager.LoadAccount(); IRemoteCommand remoteCommand = new RemoteCommand(managedProcessFactory); _remoteFile = new RemoteFile(managedProcessFactory); var cloudConnection = new CloudConnection(); var sdkConfigFactory = new SdkConfig.Factory(jsonUtil); // NOTE: the lifetime of this CloudRunner is limited to the current CoreAttachWindow. _cloudRunner = new CloudRunner(sdkConfigFactory, credentialManager, cloudConnection, new GgpSDKUtil()); _gameletClientFactory = new GameletClient.Factory(); var sshKeyLoader = new SshKeyLoader(managedProcessFactory); var sshKnownHostsWriter = new SshKnownHostsWriter(); _sshManager = new SshManager(_gameletClientFactory, _cloudRunner, sshKeyLoader, sshKnownHostsWriter, remoteCommand); _debugSessionMetrics = new DebugSessionMetrics( serviceProvider.GetService(typeof(SMetrics)) as IMetrics); _debugSessionMetrics.UseNewDebugSessionId(); _actionRecorder = new ActionRecorder(_debugSessionMetrics); InitializeComponent(); _instanceSelectionWindowFactory = new ProjectInstanceSelection.Factory(); _paramsFactory = new DebugEngine.DebugEngine.Params.Factory(jsonUtil); SelectInstanceOnInit(); }
public Factory(JoinableTaskContext taskContext, DebugDisassemblyStream.Factory debugDisassemblyStreamFactory, DebugDocumentContext.Factory documentContextFactory, DebugCodeContext.Factory codeContextFactory, ThreadEnumFactory threadsEnumFactory, ModuleEnumFactory moduleEnumFactory, CodeContextEnumFactory codeContextEnumFactory) { _taskContext = taskContext; _debugDisassemblyStreamFactory = debugDisassemblyStreamFactory; _documentContextFactory = documentContextFactory; _codeContextFactory = codeContextFactory; _threadsEnumFactory = threadsEnumFactory; _moduleEnumFactory = moduleEnumFactory; _codeContextEnumFactory = codeContextEnumFactory; }
public PythonWorkspaceContextProvider( [Import] IVsFolderWorkspaceService workspaceService, [Import] Lazy <IInterpreterOptionsService> optionsService, [Import] Lazy <IInterpreterRegistryService> registryService, [Import] JoinableTaskContext joinableTaskContext ) { // Don't use registry service from the constructor, since that imports // all the factory providers, which may import IPythonWorkspaceContextProvider // (ie circular dependency). _workspaceService = workspaceService; _optionsService = optionsService; _registryService = registryService; _joinableTaskContext = joinableTaskContext; _workspaceService.OnActiveWorkspaceChanged += OnActiveWorkspaceChanged; }
public ProjectNodeProvider( JoinableTaskContext jtc, UnconfiguredProject unconfiguredProject, ISolutionExplorer solutionExplorer) { this.jtc = jtc; this.unconfiguredProject = unconfiguredProject; this.solutionExplorer = solutionExplorer; projectNode = new JoinableLazy <IProjectNode>(async() => (await solutionExplorer.Solution) .FindProject(x => string.Equals( x.PhysicalPath, unconfiguredProject.FullPath, StringComparison.OrdinalIgnoreCase)), jtc.Factory); }
protected JoinableTaskTestBase(ITestOutputHelper logger) : base(logger) { this.dispatcherContext = SingleThreadedTestSynchronizationContext.New(); SynchronizationContext.SetSynchronizationContext(this.dispatcherContext); #pragma warning disable CA2214 // Do not call overridable methods in constructors this.context = this.CreateJoinableTaskContext(); #pragma warning restore CA2214 // Do not call overridable methods in constructors this.joinableCollection = this.context.CreateCollection(); this.asyncPump = this.context.CreateFactory(this.joinableCollection); this.originalThreadManagedId = Environment.CurrentManagedThreadId; this.testFrame = SingleThreadedTestSynchronizationContext.NewFrame(); // Suppress the assert dialog that appears and causes test runs to hang. Trace.Listeners.OfType <DefaultTraceListener>().Single().AssertUiEnabled = false; }
static async Task DoLotsOfJoinableTasksAsync(Stopwatch stopwatch, int range = 10, JoinableTaskContext context = null) { var lotsOfJoinableTasks = Enumerable.Range(0, range).Select(i => { if (context == null) { context = new JoinableTaskContext(); } var factory = new JoinableTaskFactory(context); return(factory.RunAsync(() => Task.Run(() => GoSlowAsync(i))).Task); }).ToList(); stopwatch.Start(); await Task.WhenAll(lotsOfJoinableTasks); stopwatch.Stop(); }
public void BufferLoaded(IVsTextBuffer vsTextBuffer, string filePath) { JoinableTaskContext.AssertUIThread(); var textBuffer = _editorAdaptersFactory.GetDocumentBuffer(vsTextBuffer); if (textBuffer != null) { // We potentially waited for the editor to initialize on this code path, so requery // the documents. if (TryGetMatchingDocuments(filePath, out var documents)) { BufferLoaded(textBuffer, filePath, documents); } } }
public virtual Task InitializeAsync() { if (Thread.CurrentThread.GetApartmentState() == ApartmentState.STA) { JoinableTaskContext = new JoinableTaskContext(); } else { _denyExecutionSynchronizationContext = new DenyExecutionSynchronizationContext(SynchronizationContext.Current !); JoinableTaskContext = new JoinableTaskContext(_denyExecutionSynchronizationContext.MainThread, _denyExecutionSynchronizationContext); } _joinableTaskCollection = JoinableTaskContext.CreateCollection(); JoinableTaskFactory = JoinableTaskContext.CreateFactory(_joinableTaskCollection); return(Task.CompletedTask); }
public AsyncQuickInfoBroker( [ImportMany] IEnumerable <Lazy <IAsyncQuickInfoSourceProvider, IOrderableContentTypeMetadata> > unorderedSourceProviders, IGuardedOperations guardedOperations, IToolTipService toolTipService, JoinableTaskContext joinableTaskContext) { // Bug #512117: Remove compatibility shims for 2nd gen. Quick Info APIs. // Combines new + legacy providers into a single series for relative ordering. var combinedProviders = unorderedSourceProviders ?? throw new ArgumentNullException(nameof(unorderedSourceProviders)); this.unorderedSourceProviders = combinedProviders; #pragma warning restore 618 this.guardedOperations = guardedOperations ?? throw new ArgumentNullException(nameof(guardedOperations)); this.joinableTaskContext = joinableTaskContext ?? throw new ArgumentNullException(nameof(joinableTaskContext)); this.toolTipService = toolTipService; }
public DefaultRazorLanguageServerCustomMessageTarget( LSPDocumentManager documentManager, JoinableTaskContext joinableTaskContext, LSPRequestInvoker requestInvoker, RazorUIContextManager uIContextManager, IRazorAsynchronousOperationListenerProviderAccessor asyncOpListenerProvider, RazorLSPClientOptionsMonitor clientOptionsMonitor) : this( documentManager, joinableTaskContext, requestInvoker, uIContextManager, asyncOpListenerProvider.GetListener(RazorReadyFeature).BeginAsyncOperation(RazorReadyFeature), clientOptionsMonitor) { }
public DefaultLSPDocumentManagerTest() { ChangeTriggers = Enumerable.Empty <LSPDocumentManagerChangeTrigger>(); JoinableTaskContext = new JoinableTaskContext(); TextBuffer = Mock.Of <ITextBuffer>(MockBehavior.Strict); Uri = new Uri("C:/path/to/file.razor"); UriProvider = Mock.Of <FileUriProvider>(provider => provider.GetOrCreate(TextBuffer) == Uri, MockBehavior.Strict); Mock.Get(UriProvider).Setup(p => p.Remove(It.IsAny <ITextBuffer>())).Verifiable(); LSPDocumentSnapshot = Mock.Of <LSPDocumentSnapshot>(MockBehavior.Strict); LSPDocument = Mock.Of <LSPDocument>(document => document.Uri == Uri && document.CurrentSnapshot == LSPDocumentSnapshot && document.VirtualDocuments == new[] { new TestVirtualDocument() } && document.UpdateVirtualDocument <TestVirtualDocument>(It.IsAny <IReadOnlyList <ITextChange> >(), It.IsAny <int>()) == Mock.Of <LSPDocumentSnapshot>(MockBehavior.Strict), MockBehavior.Strict); LSPDocumentFactory = Mock.Of <LSPDocumentFactory>(factory => factory.Create(TextBuffer) == LSPDocument, MockBehavior.Strict); }
protected JoinableTaskTestBase(ITestOutputHelper logger) : base(logger) { this.dispatcherContext = SingleThreadedTestSynchronizationContext.New(); SynchronizationContext.SetSynchronizationContext(this.dispatcherContext); this.context = this.CreateJoinableTaskContext(); this.joinableCollection = this.context.CreateCollection(); this.asyncPump = this.context.CreateFactory(this.joinableCollection); this.originalThreadManagedId = Environment.CurrentManagedThreadId; this.testFrame = SingleThreadedTestSynchronizationContext.NewFrame(); #if DESKTOP || NETCOREAPP2_0 // Suppress the assert dialog that appears and causes test runs to hang. Trace.Listeners.OfType <DefaultTraceListener>().Single().AssertUiEnabled = false; #endif }
public void SetUp() { var taskContext = new JoinableTaskContext(); IDebugBreakpointRequest2 mockBreakpointRequest = Substitute.For <IDebugBreakpointRequest2>(); mockBreakpointRequest.GetRequestInfo(Arg.Any <enum_BPREQI_FIELDS>(), Arg.Any <BP_REQUEST_INFO[]>()).Returns(x => { return(VSConstants.S_OK); }); pendingBreakpoint = new DebugPendingBreakpoint.Factory(taskContext, null, null, null) .Create(null, null, mockBreakpointRequest, null); pendingBreakpoint.Delete(); }
public static void SetCustomJoinableTaskFactory(Thread mainThread, SynchronizationContext synchronizationContext) { Requires.NotNull(mainThread, nameof(mainThread)); Requires.NotNull(synchronizationContext, nameof(synchronizationContext)); // This method is not thread-safe and does not have it to be // This is really just a test-hook to be used by test standalone UI and only 1 thread will call into this // And, note that this method throws, when running inside VS, and ThreadHelper.JoinableTaskContext is not null _joinableTaskFactory = new Lazy <JoinableTaskFactory>(() => { #pragma warning disable VSSDK005 // Avoid instantiating JoinableTaskContext var joinableTaskContext = new JoinableTaskContext(mainThread, synchronizationContext); #pragma warning restore VSSDK005 // Avoid instantiating JoinableTaskContext return(joinableTaskContext.Factory); }); }
public DefaultProjectHierarchyInspector( LiveShareSessionAccessor sessionAccessor, JoinableTaskContext joinableTaskContext) { if (sessionAccessor is null) { throw new ArgumentNullException(nameof(sessionAccessor)); } if (joinableTaskContext is null) { throw new ArgumentNullException(nameof(joinableTaskContext)); } _sessionAccessor = sessionAccessor; _joinableTaskFactory = joinableTaskContext.Factory; }
public LiveShareProjectCapabilityResolver( LiveShareSessionAccessor sessionAccessor, JoinableTaskContext joinableTaskContext) { if (sessionAccessor is null) { throw new ArgumentNullException(nameof(sessionAccessor)); } if (joinableTaskContext is null) { throw new ArgumentNullException(nameof(joinableTaskContext)); } _sessionAccessor = sessionAccessor; _joinableTaskFactory = joinableTaskContext.Factory; }
public DefaultProjectHierarchyProxyFactory( ForegroundDispatcher foregroundDispatcher, JoinableTaskContext joinableTaskContext) { if (foregroundDispatcher == null) { throw new ArgumentNullException(nameof(foregroundDispatcher)); } if (joinableTaskContext == null) { throw new ArgumentNullException(nameof(joinableTaskContext)); } _foregroundDispatcher = foregroundDispatcher; _joinableTaskContext = joinableTaskContext; }
public ProjectNodeFactory( [Import(typeof(SVsServiceProvider))] IServiceProvider services, IVsHierarchyItemManager hierarchyManager, Lazy <ISolutionExplorerNodeFactory> childNodeFactory, IAdapterService adapter, JoinableLazy <IVsUIHierarchyWindow> solutionExplorer, JoinableTaskContext jtc, [Import(Clide.ContractNames.Interop.IVsBooleanSymbolExpressionEvaluator)] JoinableLazy <IVsBooleanSymbolExpressionEvaluator> expressionEvaluator) { solution = new JoinableLazy <IVsSolution>(() => services.GetService <SVsSolution, IVsSolution>(), jtc.Factory, true); this.hierarchyManager = hierarchyManager; this.childNodeFactory = childNodeFactory; this.adapter = adapter; this.solutionExplorer = solutionExplorer; this.expressionEvaluator = expressionEvaluator; this.asyncManager = jtc.Factory; }