Example #1
0
        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);
            }
        }
Example #2
0
 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());
            });
        }