private void RSession_AfterRequest(object sender, RRequestEventArgs e) { bool? sentContinue; lock (_browseLock) { var browseEventArgs = _currentBrowseEventArgs; if (browseEventArgs == null || browseEventArgs.Contexts != e.Contexts) { // This AfterRequest does not correspond to a Browse prompt, or at least not one // that we have seen before (and paused on), so there's nothing to do. return; } _currentBrowseEventArgs = null; sentContinue = _sentContinue; _sentContinue = true; } if (sentContinue == false) { // User has explicitly typed something at the Browse prompt, so tell the debugger that // we're moving on by issuing a dummy Continue request to switch it to the running state. var vsShell = (IVsUIShell)Package.GetGlobalService(typeof(SVsUIShell)); Guid group = VSConstants.GUID_VSStandardCommandSet97; object arg = null; var ex = Marshal.GetExceptionForHR(vsShell.PostExecCommand(ref group, (uint)VSConstants.VSStd97CmdID.Start, 0, ref arg)); Trace.Assert(ex == null); } }
private void RSession_BeforeRequest(object sender, RRequestEventArgs e) { ResetStackFrames(); }
private void SessionOnBeforeRequest(object sender, RRequestEventArgs e) { _coreShell.DispatchOnUIThread(() => { if (CurrentWindow == null || CurrentWindow.IsRunning) { return; } var projectionBuffer = CurrentWindow.TextView.TextBuffer as IProjectionBuffer; if (projectionBuffer == null) { return; } var spanCount = projectionBuffer.CurrentSnapshot.SpanCount; projectionBuffer.ReplaceSpans(spanCount - 2, 1, new List<object> { GetPrompt() }, EditOptions.None, new object()); }); }