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; } }
public override void Execute(object parameter) { DebuggerPlugin.Attach(); }