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.GetOrCreateVisualComponentAsync();
window.Container.Show(focus: true, immediate: false);
}
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 = _coreShell.Services.FileSystem.FileExists(rdataPath) && await GetLoadDefaultWorkspace(rdataPath);
if (loadDefaultWorkspace) {
await _session.LoadWorkspaceAsync(rdataPath);
}
await _session.SetWorkingDirectoryAsync(_projectDirectory);
_toolsSettings.WorkingDirectory = _projectDirectory;
}
_history.TryLoadFromFile(Path.Combine(_projectDirectory, DefaultRHistoryName));
CheckSurveyNews();
}