private async Task <IRSession> StartSessionAsync(CancellationToken ct) { _session ??= _workflow.RSessions.GetOrCreate(@"REPL"); if (!_session.IsHostRunning) { await _session.EnsureHostStartedAsync(new RHostStartupInfo(isInteractive : true), _sessionCallback, null, 3000, ct); await _session.SetVsGraphicsDeviceAsync(); } return(_session); }
/// <summary> /// Starts intellisense session. /// </summary> public async Task StartSessionAsync(CancellationToken ct = default(CancellationToken)) { var token = await _lock.ResetAsync(ct); try { if (Session == null) { Session = _sessionProvider.GetOrCreate(SessionNames.Intellisense); } if (!Session.IsHostRunning) { int timeout = _coreShell.IsUnitTestEnvironment ? 10000 : 3000; var settings = _coreShell.GetService <IRToolsSettings>(); await Session.EnsureHostStartedAsync(new RHostStartupInfo(settings.CranMirror, codePage : settings.RCodePage), null, timeout); } } finally { token.Set(); } }
private async Task <ExecutionResult> InitializeAsync(bool isResetting, string workingDirectory) { try { if (!Session.IsHostRunning) { var startupInfo = new RHostStartupInfo(_settings.CranMirror, workingDirectory, _settings.RCodePage, _terminalWidth, !isResetting, true, true, _settings.GridDynamicEvaluation); await Session.EnsureHostStartedAsync(startupInfo, new RSessionCallback(CurrentWindow, Session, _settings, _services, _fs)); } return(ExecutionResult.Success); } catch (ComponentBinaryMissingException cbmex) { await _services.ShowErrorMessageAsync(cbmex.Message); return(ExecutionResult.Failure); } catch (RHostDisconnectedException ex) { WriteRHostDisconnectedError(ex); return(ExecutionResult.Success); } catch (Exception ex) { await _services.ShowErrorMessageAsync(ex.Message); return(ExecutionResult.Failure); } }
public override async Task HandleRequestAsync(HttpListenerContext context, CancellationToken ct) { if (!_session.IsHostRunning) { await _session.EnsureHostStartedAsync(new RHostStartupInfo(), null, 3000, ct); } var ub = new UriBuilder() { Scheme = "file", Host = "", Path = context.Request.Url.AbsolutePath }; var uri = ub.Uri.LocalPath; if (await _session.FileExistsAsync(uri, ct)) { await CopyFileAsync(uri, context, ct); return; } }
private async Task <ExecutionResult> InitializeAsync(bool isResetting) { try { if (!Session.IsHostRunning) { var startupInfo = new RHostStartupInfo { Name = "REPL", RHostCommandLineArguments = _connections.ActiveConnection?.RCommandLineArguments, CranMirrorName = _settings.CranMirror, CodePage = _settings.RCodePage, WorkingDirectory = _settings.WorkingDirectory, TerminalWidth = _terminalWidth, EnableAutosave = !isResetting }; if (CurrentWindow != null) { CurrentWindow.TextView.VisualElement.SizeChanged += VisualElement_SizeChanged; CurrentWindow.OutputBuffer.Changed += OutputBuffer_Changed; } await Session.EnsureHostStartedAsync(startupInfo, new RSessionCallback(CurrentWindow, Session, _settings, _coreShell, new FileSystem())); } return(ExecutionResult.Success); } catch (RHostBrokerBinaryMissingException) { await _coreShell.ShowErrorMessageAsync(Resources.Error_Microsoft_R_Host_Missing); return(ExecutionResult.Failure); } catch (RHostDisconnectedException ex) { CurrentWindow?.WriteError(Environment.NewLine + ex.Message); return(ExecutionResult.Success); } catch (Exception ex) { await _coreShell.ShowErrorMessageAsync(ex.Message); return(ExecutionResult.Failure); } }
/// <summary> /// Starts intellisense session. /// </summary> public async Task StartSessionAsync(CancellationToken ct = default) { var token = await _lock.ResetAsync(ct); try { if (!_sessionProvider.HasBroker) { throw new RHostDisconnectedException(); } if (Session == null) { Session = _sessionProvider.GetOrCreate(SessionNames.Intellisense); } if (!Session.IsHostRunning) { var timeout = _unitTests ? 10000 : 3000; await Session.EnsureHostStartedAsync(new RHostStartupInfo(), null, null, timeout, ct); } } finally { token.Set(); } }
/// <summary> /// Starts intellisense session. /// </summary> public async Task StartSessionAsync() { var token = await _lock.ResetAsync(); try { if (!_sessionProvider.HasBroker) { throw new RHostDisconnectedException(); } if (Session == null) { Session = _sessionProvider.GetOrCreate(SessionNames.Intellisense); } if (!Session.IsHostRunning) { int timeout = _coreShell.IsUnitTestEnvironment ? 10000 : 3000; await Session.EnsureHostStartedAsync(new RHostStartupInfo(RToolsSettings.Current.CranMirror, codePage : RToolsSettings.Current.RCodePage), null, timeout); } } finally { token.Set(); } }