public async Task InitializeProjectFromDiskAsync() { await Project.CreateInMemoryImport(); _fileWatcher.Start(); await _threadHandling.SwitchToUIThread(); // Make sure R package is loaded VsAppShell.EnsurePackageLoaded(RGuidList.RPackageGuid); // Verify project is not on a network share and give warning if it is CheckRemoteDrive(_projectDirectory); _workflow = _workflowProvider.GetOrCreate(); _session = _workflow.RSession; _history = _workflow.History; if (_workflow.ActiveWindow == null) { var window = await _workflow.GetOrCreateVisualComponent(_componentContainerFactory); window.Container.Show(true); } try { await _session.HostStarted; } catch (Exception) { return; } // TODO: need to compute the proper paths for remote, but they might not even exist if the project hasn't been deployed. // https://github.com/Microsoft/RTVS/issues/2223 if (!_session.IsRemote) { var rdataPath = Path.Combine(_projectDirectory, DefaultRDataName); bool loadDefaultWorkspace = _fileSystem.FileExists(rdataPath) && await GetLoadDefaultWorkspace(rdataPath); using (var evaluation = await _session.BeginEvaluationAsync()) { if (loadDefaultWorkspace) { await evaluation.LoadWorkspaceAsync(rdataPath); } await evaluation.SetWorkingDirectoryAsync(_projectDirectory); } _toolsSettings.WorkingDirectory = _projectDirectory; } _history.TryLoadFromFile(Path.Combine(_projectDirectory, DefaultRHistoryName)); CheckSurveyNews(); }
//#else // [ProjectAutoLoad(startAfter: ProjectLoadCheckpoint.UnconfiguredProjectLocalCapabilitiesEstablished, // completeBy: ProjectLoadCheckpoint.BeforeLoadInitialConfiguration, // RequiresUIThread = false)] //#endif public async Task InitializeProjectFromDiskAsync() { await Project.CreateInMemoryImport(); _fileWatcher.Start(); await _threadHandling.SwitchToUIThread(); // Make sure package is loaded EnsurePackageLoaded(GuidList.VisualRustPkgGuid); // TODO: start watching the Cargo manifest }