Beispiel #1
0
        void OnKeyDown(object sender, KeyEventArgs e)
        {
            var  debugger  = DebuggerService.CurrentDebugger;
            bool debugging = debugger != null && debugger.IsDebugging;

            if (debugging && Keyboard.Modifiers == ModifierKeys.Shift && e.Key == Key.F5)
            {
                Stop();
                e.Handled = true;
                return;
            }
            if (debugging && Keyboard.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift) && e.Key == Key.F5)
            {
                if (RestartCanExecute())
                {
                    Restart();
                }
                e.Handled = true;
                return;
            }
            if (Keyboard.Modifiers == ModifierKeys.None && e.Key == Key.F9)
            {
                DebugToggleBreakpoint();
                e.Handled = true;
                return;
            }
            if (Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.F9)
            {
                if (DebugEnableDisableBreakpointCanExecute())
                {
                    DebugEnableDisableBreakpoint();
                }
                e.Handled = true;
                return;
            }
            if (Keyboard.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift) && e.Key == Key.F9)
            {
                if (DebugDeleteAllBreakpointsCanExecute())
                {
                    DebugDeleteAllBreakpoints();
                }
                e.Handled = true;
                return;
            }
            if (debugging && Keyboard.Modifiers == ModifierKeys.None && (e.SystemKey == Key.F10 ? e.SystemKey : e.Key) == Key.F10)
            {
                DebugStepOver();
                e.Handled = true;
                return;
            }
            if (debugging && Keyboard.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift) && (e.SystemKey == Key.F10 ? e.SystemKey : e.Key) == Key.F10)
            {
                if (DebugCanSetNextStatement())
                {
                    DebugSetNextStatement();
                }
                else
                {
                    // Show the error message
                    SourceCodeMapping mapping;
                    string            errMsg;
                    if (!DebugGetSourceCodeMappingForSetNextStatement(out errMsg, out mapping))
                    {
                        MainWindow.Instance.ShowMessageBox(errMsg);
                    }
                }
                e.Handled = true;
                return;
            }
            if (debugging && Keyboard.Modifiers == ModifierKeys.None && e.Key == Key.F11)
            {
                DebugStepInto();
                e.Handled = true;
                return;
            }
            if (debugging && Keyboard.Modifiers == ModifierKeys.Shift && e.Key == Key.F11)
            {
                DebugStepOut();
                e.Handled = true;
                return;
            }
            if (debugging && Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.Cancel)
            {
                DebugBreak();
                e.Handled = true;
                return;
            }
            if (Keyboard.Modifiers == (ModifierKeys.Control | ModifierKeys.Alt) && e.Key == Key.P)
            {
                DebuggerPlugin.Attach();
                e.Handled = true;
                return;
            }
            if (debugging && Keyboard.Modifiers == ModifierKeys.Alt && e.SystemKey == Key.Multiply)
            {
                if (DebugShowNextStatementCanExecute())
                {
                    DebugShowNextStatement();
                }
                e.Handled = true;
                return;
            }
        }
Beispiel #2
0
 public override void Execute(object parameter)
 {
     DebuggerPlugin.Attach();
 }