diff options
author | David Karlaš <david.karlas@xamarin.com> | 2016-04-13 14:27:42 +0300 |
---|---|---|
committer | David Karlaš <david.karlas@xamarin.com> | 2016-04-13 14:27:42 +0300 |
commit | 751bbab2f08e55a1d1fd89b17620ebebf7d71891 (patch) | |
tree | 6cdbab36be6049898f348c29359efaac9aadb91c /main/src/addins/MonoDevelop.Debugger | |
parent | fdcef13057a9c4a9bc924602c9b2b33c1da3bf63 (diff) | |
parent | 036b2fbc3b515ce36b4ddaf0cc76b6ffa63db9d3 (diff) |
Merge master into newExceptionDialog
Diffstat (limited to 'main/src/addins/MonoDevelop.Debugger')
197 files changed, 1379 insertions, 2629 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/ChangeLog b/main/src/addins/MonoDevelop.Debugger/ChangeLog deleted file mode 100644 index c2254df404..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/ChangeLog +++ /dev/null @@ -1,1439 +0,0 @@ -2010-07-18 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DebugCommands.cs: - * MonoDevelop.Debugger/DebuggingService.cs: Track API changes. - -2010-07-15 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API - changes. - -2010-07-13 Levi Bard <levi@unity3d.com> - - * MonoDevelop.Debugger/ExceptionCaughtDialog.cs: - Unescape exception message. - -2010-07-07 Levi Bard <levi@unity3d.com> - - * MonoDevelop.Debugger/LocalsPad.cs: - Persist local pad tree state while single-stepping within the same function. - -2010-06-10 Michael Hutchinson <mhutchinson@novell.com> - - * Makefile.am: - * icons/debug-overlay-24.png: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: Fix icon composition - warning. - -2010-06-10 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DisassemblyView.cs: Track API changes. - -2010-05-28 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Fix incorrect use - of ShowCustomDialog/RunCustomDialog. - -2010-05-26 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Use - ShowCustomDialog (which destroys the dialog when done) - instead of RunCustomDialog (which doesn't). - -2010-05-25 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/DebugCommands.cs: More dialog placement - cleanup. - -2010-05-22 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: More dialog - placing. - -2010-05-21 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/DebugCommands.cs: Clean up dialog - placement. - - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - Flush. - -2010-05-20 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Show the - exception information when double clicking on it in the - locals or watch pads. - - * MonoDevelop.Debugger/ExceptionCaughtDialog.cs: Don't crash - if there is a change event after the dialog is closed. - -2010-05-19 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ExceptionCaughtDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExceptionCaughtDialog.cs: - Improved exception dialog. It now shows the stack trace. - Track api changes. - -2010-05-11 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API - changes. - -2010-05-10 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Unsubscribe all - events from the session when stopping the debugger. Ensures - that the old session is completely disconnected from the - debugging service, so if something goes wrong while shutting - down, it will not interfere with a new session. This might - be a fix for bug #602476. - -2010-05-10 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/BusyEvaluatorDialog.cs: Dont re-show - the busy dialog if the user clicks on Keep Waiting. Instead, - show it when the user tries to continue debugging. Also show - a flashing status icon while in busy mode. - -2010-05-10 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Remove unused icon sizes. - -2010-05-07 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ImmediatePad.cs: Really fix not - supported expression error reporting. - -2010-05-07 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ImmediatePad.cs: Improve error message - when an expression is not supported. - -2010-05-07 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValuePad.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger.Visualizer/TextVisualizer.cs: - * MonoDevelop.Debugger.Visualizer/PixbufVisualizer.cs: Track - api changes. When evaluation options change, update the - value pads. - -2010-05-04 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: - * MonoDevelop.Debugger/ExceptionCaughtDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExceptionCaughtDialog.cs: - Exception dialog fixes. Wrap the exception message. Don't - show new lines in the value column. - -2010-05-03 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.csproj: Flush. - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Properly update - expanders visibility when refreshing a row. - -2010-04-29 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DisassemblyView.cs: ViewContent widgets - are now destroyed by the workspace window. - -2010-04-28 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API - changes. - -2010-04-27 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: Make - IProcessAsyncOperation IDisposable. - -2010-04-23 Carlo Kok <ck@remobjects.com> - - * MakeFile.am: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ExpressionEvaluatorExtensionNode.cs: - * MonoDevelop.Debugger/LocalsPad.cs: - Allow for custom debug expression evaluator plugins. - -2010-04-23 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Improved column - size handling. - - * gtk-gui/gui.stetic: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: - Changed default size for evaluator dialog. - -2010-04-19 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Reduce size of - refresh and visualizer buttons. Moved refresh button to the - front of the column. - - * MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs: Allow - expanding. - -2010-04-19 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger.Visualizer: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: - * MonoDevelop.Debugger.Visualizer/TextVisualizer.cs: - * MonoDevelop.Debugger.Visualizer/PixbufVisualizer.cs: - * MonoDevelop.Debugger.Visualizer/IValueVisualizer.cs: - * gtk-gui/MonoDevelop.Debugger.ExceptionCaughtDialog.cs: - * MonoDevelop.Debugger.Visualizer/ValueVisualizerDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - * gtk-gui/MonoDevelop.Debugger.Viewers.ValueVisualizerDialog.cs: - Add basic support for custom visualizers. - - * MonoDevelop.Debugger/PinnedWatch.cs: Set the correct - expression name. - -2010-04-14 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/BreakpointPropertiesDialog.cs: Added - new test suite for StackFrame. Reorganized a bit the - namespaces. Added tests for bug #580994. - -2010-04-14 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/BreakpointPropertiesDialog.cs: When - checking if some breakpoint features are supported, check it - for the startup project too, since the current project may - be a library and not executable. - -2010-04-13 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/BreakpointPad.cs: Use the delete key - command to bind the delete key. - -2010-04-08 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/WatchPad.cs: - * MonoDevelop.Debugger/DebugCommands.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Added a context - menu to ObjectValueTreeView, which includes a command which - allows adding a value to the watch pad. - -2010-04-08 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Don't set - change the pin icon while editing. - -2010-04-06 Michael Hutchinson <mhutchinson@novell.com> - - * gtk-gui/gui.stetic: - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - Remove dead space at bottom of dialog. - -2010-03-24 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - Flush. - - * MonoDevelop.Debugger/StackTracePad.cs: Alloy copying the - call stack to the clipboard. Added context menu. - -2010-03-22 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/DebugCommands.cs: Fixed some command - descriptions. - -2010-03-22 Lluis Sanchez Gual <lluis@novell.com> - - * AssemblyInfo.cs: - * MonoDevelop.Debugger.addin.xml: Bumped MD version. - -2010-03-18 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Set the default location for - debug pads. Register a new Debug layout. - -2010-03-17 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/WatchPad.cs: - * MonoDevelop.Debugger/LocalsPad.cs: - * MonoDevelop.Debugger/Extensions.cs: - * MonoDevelop.Debugger/ThreadsPad.cs: - * MonoDevelop.Debugger/Initializer.cs: - * MonoDevelop.Debugger/ImmediatePad.cs: - * MonoDevelop.Debugger/StackTracePad.cs: - * MonoDevelop.Debugger/DebugCommands.cs: - * MonoDevelop.Debugger/BreakpointPad.cs: - * MonoDevelop.Debugger/ObjectValuePad.cs: - * MonoDevelop.Debugger/ExceptionsDialog.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: - * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs: - * MonoDevelop.Debugger/BreakpointPropertiesDialog.cs: - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - Merged MD.Projects into MD.Core, and MD.Projects.Gui, - MD.Core.Gui and MD.Components into MD.Ide. - -2010-03-09 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ImmediatePad.cs: Show the clear button - in the dock item toolbar. - -2010-03-08 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ThreadsPad.cs: - * MonoDevelop.Debugger/StackTracePad.cs: Icons are set in the - extension node. - - * MonoDevelop.Debugger/BreakpointPad.cs: Remove unrequired - shadow. - -2010-03-08 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger/BreakpointPad.cs: Use the new - DockItemToolbar class for showing toolbar commands. - -2010-03-02 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: Added target for running the tests. - -2010-03-02 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Clean the - breakpoint list when closing the solution. - -2010-02-22 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ExceptionsDialog.cs: Fix bug #579754 - - Duplicate exception names in debugger exception dialog - -2010-02-22 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ExceptionCaughtDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExceptionCaughtDialog.cs: Added - new dialog which is shown when an exception is caught. - - * MonoDevelop.Debugger/ImmediatePad.cs: Use new expression - validation method. - -2010-02-18 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ThreadsPad.cs: - * MonoDevelop.Debugger/StackTracePad.cs: - * MonoDevelop.Debugger/BreakpointPad.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api - changes. - -2010-02-16 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggerEngine.cs: Properly initialize - the engine. - -2010-02-16 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/Extensions.cs: - * MonoDevelop.Debugger/DebuggerEngine.cs: - * MonoDevelop.Debugger/IDebuggerEngine.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/DebugExecutionModeSet.cs: - * MonoDevelop.Debugger/AttachToProcessDialog.cs: - * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs: - * MonoDevelop.Debugger/DebuggerEngineExtensionNode.cs: - * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: Added - support for lazy loading of add-ins - -2010-02-09 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ThreadsPad.cs: - * MonoDevelop.Debugger/StackTracePad.cs: - * MonoDevelop.Debugger/BreakpointPad.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API - changes for lazy loading images. - -2010-02-08 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/ExceptionsDialog.cs: Include - System.Exception in exceptions list. - -2010-02-04 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: init pinned - watch coordinates to -1. - -2010-02-04 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger/PinnedWatch.cs: - * MonoDevelop.Debugger/PinnedWatchStore.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: - Implemented infrastructure for supporting persistent pinned - watches. - -2010-02-02 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebugCommands.cs: Warn the user when - trying to debug an outdated exe. Fixes bug #540979. - -2010-01-27 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API - changes. - -2010-01-26 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Made GetIcon - public. - -2010-01-22 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/generated.cs: - * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs: - * gtk-gui/MonoDevelop.Debugger.BusyEvaluatorDialog.cs: - * gtk-gui/MonoDevelop.Debugger.AddTracePointDialog.cs: - * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs: - Flush. - -2010-01-22 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Implement a type - resolver. Helps fixing bug #570855 - Poor type resolution in - debugger. - -2010-01-21 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API - changes. - -2009-12-15 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.Tests: - * MonoDevelop.Debugger.Tests.TestApp: Added new testing - projects. - - * MonoDevelop.Debugger/DebuggingService.cs: Allow using the - debugging service when the Ide is not initialized. - -2009-12-14 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Ensure that soft - debugger is prioritised over newly installed debuggers. - -2009-12-11 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * MonoDevelop.Debugger.csproj: - * icons/view-debug-watch-16.png: - * icons/view-debug-locals-16.png: - * MonoDevelop.Debugger.addin.xml: - * icons/view-debug-threads-16.png: - * icons/view-debug-call-stack-16.png: - * icons/view-debug-breakpoints-16.png: Added some new icons. - -2009-12-11 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Use the new - DisplayValue property. - -2009-12-09 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Pass along the - external console option. - -2009-12-07 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Use - Workbench.Present so that we can special-case for different - platforms. - -2009-12-02 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs: - * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs: - Added new grouping options to the options panel. - - * MonoDevelop.Debugger/DebuggingService.cs: Moved all options - properties to a single object. - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Show the new - static member icons. - -2009-12-01 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Fix shortcut conflict. - - * gtk-gui/gui.stetic: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: - Evaluate expression when pressing enter in the expression - evaluator dialog. - -2009-11-25 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Remove FIXME that - was fixed. - -2009-11-25 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/StackTracePad.cs: Don't prevent the - user from jumping to frames if source exists, even if - they're not user code. - -2009-11-25 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/Initializer.cs: Take external code - into account when picking frame to show when stopping. - -2009-11-25 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebugTextMarker.cs: New marker for - tracepoints. - -2009-11-24 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/StackTracePad.cs: Don't jump to - external frames. - -2009-11-24 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/StackTracePad.cs: Make frames that are - external code italic. - - * MonoDevelop.Debugger/Initializer.cs: - * MonoDevelop.Debugger/DebuggingService.cs: Only display the - current visible frame, not external code frames. - -2009-11-24 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/DebugCommands.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/AddTracePointDialog.cs: - * gtk-gui/MonoDevelop.Debugger.AddTracePointDialog.cs: - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - Implemented Add Tracepoint command. - -2009-11-23 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Add a call for - accessing the next "visible" stack frame. - - * MonoDevelop.Debugger/Initializer.cs: Track API. - - * MonoDevelop.Debugger/DebugTextMarker.cs: New marker. - -2009-11-20 Michael Hutchinson <mhutchinson@novell.com> - - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs: - * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs: - Add setting for user-code-only debugging. - -2009-11-20 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger/IDebuggerEngine.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs: - * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs: - Added options panel for setting debugger engine selection - priority. - -2009-11-19 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Add support for - the new EvaluatingGroup value type. - -2009-11-19 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Remove debug code. - -2009-11-18 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger/ImmediatePad.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: - * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs: - * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs: - Add support for refreshing values. Added option for enabling - ToString evaluation. Track api changes. - -2009-11-17 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs: Added - options panel for the debugger options. - - * Makefile.am: - * gtk-gui/gui.stetic: - * gtk-gui/generated.cs: - * MonoDevelop.Debugger.csproj: - * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs: - * gtk-gui/MonoDevelop.Debugger.BusyEvaluatorDialog.cs: - * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: - * gtk-gui/MonoDevelop.Debugger.DebuggerOptionsPanelWidget.cs: - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - Updated. - - * MonoDevelop.Debugger/DebuggingService.cs: Use the options - entered by the user for timeout and target evaluation. Show - the busy dialog when the debugger is busy. - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Use the default - timeout when evaluating expressions. - - * MonoDevelop.Debugger/BusyEvaluatorDialog.cs: New dialog - shown when the debugger is busy executing target methods. - -2009-11-04 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Fix bug #549886 - - Pressing Enter at the end of a line with a breakpoint moves - the breakpoint down a line. - -2009-10-30 Lluis Sanchez Gual <lluis@novell.com> - - * AssemblyInfo.cs: - * MonoDevelop.Debugger.addin.xml: Bump MD version. - -2009-10-29 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * MonoDevelop.Debugger.csproj: Reference the mono-cairo - package. - - * MonoDevelop.Debugger/Initializer.cs: - * MonoDevelop.Debugger/DebuggingService.cs: Properly check - debugger features while in a debug session. - - * MonoDevelop.Debugger/ThreadsPad.cs: Improve error handling. - -2009-10-29 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/generated.cs: - * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs: - * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - Flush. - -2009-10-27 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Fixed 'Bug 550179 - - Caret should not pulse when debugger stepping'. - -2009-10-19 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger.addin.xml: Add Mac shortcuts. - - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger.csproj: Flush. - -2009-10-18 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/ThreadsPad.cs: Fix Pocess/Process - spelling. - -2009-10-16 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/IDebuggerEngine.cs: - * MonoDevelop.Debugger/AttachToProcessDialog.cs: Fix spelling - of GetAttachableProcesses API. - -2009-10-14 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Added new event to - disable conditional compilation for a document. - -2009-10-07 Lluis Sanchez Gual <lluis@novell.com> - - * AssemblyInfo.cs: - * MonoDevelop.Debugger.addin.xml: Bump MD version. - -2009-10-05 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/AttachToProcessDialog.cs: Track api - changes. - -2009-10-02 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Avoid deadlock by - delaying the display of error dialogs. - -2009-09-29 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/Initializer.cs: Don't show the - disassembly window if not supported. - -2009-09-29 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/DebugCommands.cs: - * MonoDevelop.Debugger/DebuggingService.cs: Implemented Show - Current Execution Line command. - -2009-09-23 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Added null check. - -2009-09-22 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Report debugger - exceptions in a dialog. - - * MonoDevelop.Debugger/BreakpointPad.cs: Disable the - breakpoints pad if the breakpoint store is read-only while - running. - - * MonoDevelop.Debugger/DebugCommands.cs: Disable breakpoint - commands when the breakpoint store is read-only. - -2009-09-16 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger\DebuggingService.cs: Fire the stopped - event after disposing the session. - -2009-09-14 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ImmediatePad.cs: Added a toolbar with a - clean button. - -2009-09-12 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API - changes. - -2009-09-09 Christian Hergert <chris@dronelabs.com> - - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/DebugCommands.cs: Make windows transient - for the root monodevelop window. - -2009-09-08 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api - changes. - -2009-08-26 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/gui.stetic: Update gtk# dependency. - -2009-08-26 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.csproj: Updated dependencies. We now - depend on gtk# 2.12.8, Mono 2.4, and Mono.Addins 0.4. - -2009-08-26 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/BreakpointPad.cs: Fix issue with - context menu. Fixes bug #480535. - -2009-08-26 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger\StackTracePad.cs: Improve stack frame - formatting. - -2009-08-24 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API - changes. - -2009-08-11 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger.addin.xml: Try some different Mac - keyboard mappings for build and run commands. - -2009-08-10 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.csproj: Don't make local copies of - project references. - -2009-07-31 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - Flush. - -2009-07-31 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs: - * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: - Flush. - -2009-07-20 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DebugCommands.cs: Run has now "Run - again" functionality when no debugger is installed. - -2009-07-19 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API - changes. - -2009-07-09 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api - changes. - -2009-06-23 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ImmediatePad.cs: Use the new - DesktopService instead of PlatformService. - -2009-06-12 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/ImmediatePad.cs: Added immediate pad. - -2009-05-29 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger\ThreadsPad.cs: Don't try to get the - list of threads if the debugger is running. - - * MonoDevelop.Debugger\DebugCommands.cs: Fix logic for - checking if debugging is supported. - -2009-05-25 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger\ThreadsPad.cs: - * MonoDevelop.Debugger\StackTracePad.cs: Don't render a - border. The dock item already provides one. - -2009-05-20 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger\Initializer.cs: - * MonoDevelop.Debugger\DebuggingService.cs: Use FilePath for - representing paths. - -2009-05-19 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/Extensions.cs: - * MonoDevelop.Debugger/DebugCommands.cs: Workaround for what - seems to be a mcs bug. Looks like it can't properly resolve - the implicit conversion of null to string. - -2009-05-05 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger.addin.xml: More Mac shortcuts. - -2009-04-27 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger/IDebuggerEngine.cs: Moved - IDebuggerEngine from Mono.Debugging. - - * MonoDevelop.Debugger/DebuggingService.cs: IDebuggerEngine - now takes an ExecutionCommand as parameter. - -2009-04-20 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/DebugExecutionModeSet.cs: Created an - execution mode set for debuggers. - - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: Track - api changes done in IExecutionHandler. - -2009-04-17 Mike Kestner <mkestner@novell.com> - - * MonoDevelop.Debugger.csproj: don't require specific - gtk-sharp version. - -2009-04-17 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/WatchPad.cs: Changed IMementoCapable - interface. - -2009-04-15 Lluis Sanchez Gual <lluis@novell.com> - - * AssemblyInfo.cs: - * MonoDevelop.Debugger.addin.xml: Bump MD version. - -2009-04-15 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ExceptionsDialog.cs: Track api changes - to support multiple target runtimes. - -2009-04-10 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api - changes (Made the 'undo' of code completion operations more - intelligent.) - -2009-03-21 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger/DisassemblyView.cs: - * MonoDevelop.Debugger/DebugTextMarker.cs: Fixed compilation - error. - -2009-03-16 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api - changes. - -2009-03-13 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger.csproj: Don't local-copy project refs. - -2009-03-13 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger.csproj: Moved text editor to core - -2009-03-05 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Fix bug #478331 - - Adding second (third, etc) variable to watch pad takes - type of first variable. - -2009-03-04 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: Removed unused - CanDebugPlatform and rename CanDebugFile to CanDebugCommand. - -2009-03-04 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/Extensions.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: - Changed the way execution handlers work. We are not using - platform ids anymore. Instead, we use command strings when - looking for execution handlers. IExecutionHandlerFactory has - been removed and now everything is handled by - IExecutionHandler, which has a new CanExecute method. This - model is more simple and more generic. - -2009-03-02 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/BreakpointPropertiesDialog.cs: - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs: - Moved breakpoint properties dialog from MD.Ide. Disable - conditional and tracepoint options if they are not supported - by the project. - -2009-03-02 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/Extensions.cs: Fixed NRE when the - current view does not have a file name. Fixes bug #480823 - - NRE when closing solution. - -2009-03-02 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: commented out - debug message. - -2009-02-27 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/ThreadsPad.cs: - * MonoDevelop.Debugger/StackTracePad.cs: Added translatable - strings. Patch from Bálint Kriván. - -2009-02-26 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.csproj: Flush. - -2009-02-23 Scott Ellington <scott.ellington@gmail.com> - - * Makefile.am: - * icons/step-out-24.png: - * icons/step-into-24.png: - * icons/step-over-24.png: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: add 24 px icons and debug - toolbar - -2009-02-23 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Track merge of the project - pad context menu. - -2009-02-20 Scott Ellington <scott.ellington@gmail.com> - - * Makefile.am: - * icons/step-out-22.png: - * icons/step-out-16.png: - * icons/step-over-22.png: - * icons/step-over-16.png: - * icons/step-into-16.png: - * icons/step-into-22.png: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: add step icons - -2009-02-18 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/WatchPad.cs: When restoring the watch - pad state, clear the old state. - -2009-02-17 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ExceptionsDialog.cs: Track api changes. - -2009-02-13 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/LocalsPad.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Add locals all - at once to the list. - - * MonoDevelop.Debugger/DebugCommands.cs: Allow editing the - exceptions even when the debugger is not running. - -2009-02-12 Lluis Sanchez Gual <lluis@novell.com> - - * icons: - * Makefile.am: - * icons/debug-overlay-32.png: - * icons/debug-overlay-22.png: - * icons/debug-overlay-16.png: - * MonoDevelop.Debugger.csproj: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/DebugCommands.cs: Added icon for debug - command. Make sure the run command is visible in the toolbar - even when there are no debuggers installed. - -2009-02-11 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/ThreadsPad.cs: - * MonoDevelop.Debugger/StackTracePad.cs: - * MonoDevelop.Debugger/BreakpointPad.cs: - * MonoDevelop.Debugger/ObjectValuePad.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Use pad font. - -2009-02-07 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger.csproj: Don't require a specific - version of Mono.Addins. - -2009-02-07 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger.csproj: Flush MD's removal of newline - at end of file that was introduced by manually editing with - gedit. - -2009-02-07 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger.csproj: Make debug configuration build - debug symbols. - -2009-02-06 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.mdp: - * MonoDevelop.Debugger.csproj: Migrated to MSBuild file - format. - -2009-02-05 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DisassemblyView.cs: track api changes. - -2009-02-03 Lluis Sanchez Gual <lluis@novell.com> - - * AssemblyInfo.cs: - * MonoDevelop.Debugger.addin.xml: Bump MD version. - -2009-02-03 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/generated.cs: - * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs: - * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: - Flush. - - * Makefile.am: - * MonoDevelop.Debugger.mdp: Updated Mono.Cairo reference. - -2009-02-01 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/DisassemblyView.cs: Track - TextEditorOptions API changes. - -2009-02-01 Michael Hutchinson <mhutchinson@novell.com> - - * Makefile.am: Track changes in MD's assembly handling. - Mono.Cairo is no longer considered to be a "system" - assembly. - -2009-01-26 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger.mdp: Flush project format changes. - -2008-12-19 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Use the new async - evaluation feature. - - * MonoDevelop.Debugger/StackTracePad.cs: - * MonoDevelop.Debugger/ObjectValuePad.cs: Make sure the pad is updated - only when it is visible. - -2008-12-12 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.mdp: All projects now require fx 3.5. - -2008-12-08 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: When cleaning up the - session, dispose it as last step, since it may be slow, and it might - delay all other cleanup operations. - -2008-12-08 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebuggingService.cs: If something goes wrong when - starting the debugger, cleanup the session. - -2008-12-04 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/Initializer.cs: - * MonoDevelop.Debugger/DebugCommands.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/AttachToProcessDialog.cs: Hide debugger commands - which are not supported by the installed debuggers. - -2008-12-04 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Updated key bindings to match VS. - -2008-12-04 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Changed default label of debug command - for projects since to avoid it being confused with the global debug - command in the key bindings panel. - - * MonoDevelop.Debugger/Extensions.cs: Honor the RunWithWarning and - BuildBeforeExecuting preferences. - - * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: Track api - changes. - - * MonoDevelop.Debugger/DebugCommands.cs: Honor the RunWithWarning and - BuildBeforeExecuting preferences. If no debugger is installed, the - Debug command will work as a regular Run command. - -2008-12-02 Michael Hutchinson <mhutchinson@novell.com> - - * AssemblyInfo.cs: Add AssemblyInfo.cs files that are autogenerated from - the addin manifests. - -2008-12-02 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Allow editing by pressing - F2. - -2008-12-01 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Fix command names. - -2008-11-26 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * gtk-gui/gui.stetic: - * gtk-gui/generated.cs: - * MonoDevelop.Debugger.mdp: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/DebugCommands.cs: - * MonoDevelop.Debugger/ExceptionsDialog.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: - * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs: - * MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExpressionEvaluatorDialog.cs: Implemented - exceptions dialog and expression evaluation dialog. - -2008-11-25 Lluis Sanchez Gual <lluis@novell.com> - - * Makefile.am: - * gtk-gui/gui.stetic: - * MonoDevelop.Debugger.mdp: - * MonoDevelop.Debugger.addin.xml: - * MonoDevelop.Debugger/LocalsPad.cs: - * MonoDevelop.Debugger/Extensions.cs: - * MonoDevelop.Debugger/ThreadsPad.cs: - * MonoDevelop.Debugger/Initializer.cs: - * MonoDevelop.Debugger/StackTracePad.cs: - * MonoDevelop.Debugger/DebugCommands.cs: - * MonoDevelop.Debugger/BreakpointPad.cs: - * MonoDevelop.Debugger/ObjectValuePad.cs: - * MonoDevelop.Debugger/DisassemblyView.cs: - * MonoDevelop.Debugger/ExceptionsDialog.cs: - * MonoDevelop.Debugger/DebuggingService.cs: - * MonoDevelop.Debugger/ObjectValueTreeView.cs: - * MonoDevelop.Debugger/AttachToProcessDialog.cs: - * gtk-gui/MonoDevelop.Debugger.ExceptionsDialog.cs: - * MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs: - * gtk-gui/MonoDevelop.Debugger.AttachToProcessDialog.cs: Moved here all - debug commands previously implemented in MD.Ide. - -2008-11-21 Michael Hutchinson <mhutchinson@novell.com> - - * Makefile.am: - * MonoDevelop.Debugger.mdp: Updated. - -2008-11-21 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/Initializer.cs: - * MonoDevelop.Debugger/DisasemblyView.cs: - * MonoDevelop.Debugger/DisassemblyView.cs: Fix spelling. - -2008-11-18 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DebugTextMarker.cs: fixed compilation error. - -2008-11-06 Michael Hutchinson <mhutchinson@novell.com> - - * Makefile.am: Fix build dependencies. - -2008-11-05 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Bump MD version. - -2008-10-09 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track APIs. - -2008-10-09 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track CompletionData API. - -2008-10-08 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Remove ambiguity. - -2008-10-07 Michael Hutchinson <mhutchinson@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track API. - -2008-09-29 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: implemented IComparable. - -2008-09-18 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Really fix. - -2008-09-18 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Track api changes. - -2008-09-18 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValuePad.cs: Fix nullref. - -2008-09-17 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.mdp: Updated projects. - -2008-09-12 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/generated.cs: Updated generated code. - -2008-08-20 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DisasemblyView.cs: made some changes caused by - text editor changes. - -2008-08-07 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs, - gtk-gui/gui.stetic, MonoDevelop.Debugger.mdp, Makefile.am, - MonoDevelop.Debugger/BreakpointPropertiesDialog.cs, - MonoDevelop.Debugger/BreakpointPad.cs: Moved breakpoint properties - dialog to MD.Ide. - * MonoDevelop.Debugger/DebugTextMarker.cs: Track api changes. - -2008-08-06 Lluis Sanchez Gual <lluis@novell.com> - - * gtk-gui, gtk-gui/generated.cs, - gtk-gui/MonoDevelop.Debugger.BreakpointPropertiesDialog.cs, - gtk-gui/gui.stetic, MonoDevelop.Debugger.mdp, Makefile.am, - MonoDevelop.Debugger/BreakpointPropertiesDialog.cs, - MonoDevelop.Debugger/BreakpointPad.cs: Improved breakpoints pad. - Implemented the breakpoint properties dialog. - -2008-08-05 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp, - Makefile.am, MonoDevelop.Debugger/ThreadsPad.cs: Added threads pad. - Based on the work by Alfonso Santos Luaces. - * MonoDevelop.Debugger/BreakpointPad.cs: Properly unsubscribe debug - service events. - -2008-08-05 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DisasemblyView.cs: Track api changes. - -2008-07-31 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValuePad.cs: Remove debug code. - -2008-07-29 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger.mdp: Removed some parts of the documentation - service. - -2008-07-25 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp, - Makefile.am, MonoDevelop.Debugger/WatchPad.cs, - MonoDevelop.Debugger/LocalsPad.cs, - MonoDevelop.Debugger/BreakpointPad.cs, - MonoDevelop.Debugger/ObjectValuePad.cs: Implemented LocalsPad. - Moved all logic shared with the WatchPad to ObjectValuePad. - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Highlight values that - have changed since the last time the debugger was stopped. - -2008-07-25 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp, - Makefile.am, MonoDevelop.Debugger/BreakpointPad.cs: Initial - implementation of the breakpoints pad by Alfonso Santos Luaces. - -2008-07-22 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/WatchPad.cs: Make sure the value tree is - properly initialized the first time it is shown. - -2008-07-21 Michael Hutchinson <mhutchinson@novell.com> - - * Makefile.am, MonoDevelop.Debugger.mdp: Fix automake build paths. Add - System.Xml reference and don't local copy refs, for build within - MD. - -2008-07-21 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Remove ellupsizing. - Doesn't work well with the debug tooltip. - -2008-07-17 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs, - MonoDevelop.Debugger/WatchPad.cs: Store watch pad expressions into - the user preferences when closing a solution. - -2008-07-16 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Make columns resizable. - -2008-07-09 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Show icons for Type and - Namespace values. - -2008-07-09 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.mdp, Makefile.am, - MonoDevelop.Debugger/WatchPad.cs, - MonoDevelop.Debugger/ObjectValueTreeView.cs: Added support for code - completion. - -2008-07-08 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/WatchPad.cs: Don't update the tree if there is - no current frame, since it will reset the current expansion state. - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Added events which are - fired when value editing starts/ends. Fixes some text escaping - issues. - -2008-07-07 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/WatchPad.cs, - MonoDevelop.Debugger/ObjectValueTreeView.cs: Show member icons in - the watch pad. Support a new compact mode to be used in the debug - tooltips. - -2008-07-04 Mike Krüger <mkrueger@novell.com> - - * MonoDevelop.Debugger/DebugTextMarker.cs, - MonoDevelop.Debugger/DisasemblyView.cs: debug markers are now using - color styles instead of hard coded colors. - -2008-07-02 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger/DebugTextMarker.cs: Improved colors. - * MonoDevelop.Debugger/ObjectValueTreeView.cs: Allow editing variable - values. - * MonoDevelop.Debugger/Initializer.cs: Implement ShowDisassembly - command. - * MonoDevelop.Debugger/DisasemblyView.cs: Implemented support for mixed - assembler/source code view. - -2008-07-02 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Fix add-in id. - -2008-07-01 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.mdp, Makefile.am, - MonoDevelop.Debugger/DebugTextMarker.cs: Implemented markers for - breakpoint and current execution line. - * MonoDevelop.Debugger/DisasemblyView.cs: Use new current line marker. - -2008-06-20 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp, - Makefile.am, MonoDevelop.Debugger/WatchPad.cs, - MonoDevelop.Debugger/ObjectValueTreeView.cs, - MonoDevelop.Debugger/Initializer.cs, - MonoDevelop.Debugger/DisasemblyView.cs, - MonoDevelop.Debugger/StackTracePad.cs: Improved call stack view. - Implemented disassemble view. - -2008-06-04 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml: Bump MD version. - -2008-05-15 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.addin.xml, MonoDevelop.Debugger.mdp, - Makefile.am, MonoDevelop.Debugger/WatchPad.cs, - MonoDevelop.Debugger/ObjectValueTreeView.cs, - MonoDevelop.Debugger/StackTracePad.cs: Implemented initial watch - pad. - diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs index 604979ad5e..00fa8d0e8b 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs @@ -27,6 +27,7 @@ using System; using MonoDevelop.Components; using Mono.Debugging.Client; using Gtk; +using MonoDevelop.Ide.Fonts; namespace MonoDevelop.Debugger.PreviewVisualizers { @@ -42,23 +43,16 @@ namespace MonoDevelop.Debugger.PreviewVisualizers public override Control GetVisualizerWidget (ObjectValue val) { string value = val.Value; - Gdk.Color col = new Gdk.Color (85, 85, 85); + Gdk.Color col = Styles.PreviewVisualizerTextColor.ToGdkColor (); if (!val.IsNull && (val.TypeName == "string" || val.TypeName == "char[]")) value = '"' + GetString (val) + '"'; if (DebuggingService.HasInlineVisualizer (val)) value = DebuggingService.GetInlineVisualizer (val).InlineVisualize (val); - var label = new Gtk.Label (value); - var font = label.Style.FontDescription.Copy (); - - if (font.SizeIsAbsolute) { - font.AbsoluteSize = font.Size - 1; - } else { - font.Size -= (int)(Pango.Scale.PangoScale); - } - - label.ModifyFont (font); + var label = new Gtk.Label (); + label.Text = value; + label.ModifyFont (FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11)); label.ModifyFg (StateType.Normal, col); label.SetPadding (4, 4); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewVisualizerWindow.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewVisualizerWindow.cs index a3bd79b733..5a2bb447e7 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewVisualizerWindow.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/PreviewVisualizerWindow.cs @@ -31,6 +31,7 @@ using Gdk; using Gtk; using MonoDevelop.Ide; using MonoDevelop.Debugger.PreviewVisualizers; +using MonoDevelop.Ide.Fonts; namespace MonoDevelop.Debugger { @@ -44,7 +45,7 @@ namespace MonoDevelop.Debugger this.Modal = true; TransientFor = (Gtk.Window) invokingWidget.Toplevel; - Theme.SetFlatColor (new Cairo.Color (245 / 256.0, 245 / 256.0, 245 / 256.0)); + Theme.SetBackgroundColor (Styles.PreviewVisualizerBackgroundColor.ToCairoColor ()); Theme.Padding = 3; ShowArrow = true; var mainBox = new VBox (); @@ -64,8 +65,8 @@ namespace MonoDevelop.Debugger headerTable.Attach (hb, 0, 1, 0, 1); var headerTitle = new Label (); - headerTitle.ModifyFg (StateType.Normal, new Color (36, 36, 36)); - var font = headerTitle.Style.FontDescription.Copy (); + headerTitle.ModifyFg (StateType.Normal, Styles.PreviewVisualizerHeaderTextColor.ToGdkColor ()); + var font = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale12); font.Weight = Pango.Weight.Bold; headerTitle.ModifyFont (font); headerTitle.Text = val.TypeName; diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/ChangeLog b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/ChangeLog deleted file mode 100644 index a7cef8394d..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/ChangeLog +++ /dev/null @@ -1,19 +0,0 @@ -2010-04-14 Lluis Sanchez Gual <lluis@novell.com> - - * Main.cs: Added new test suite for StackFrame. Reorganized a - bit the namespaces. Added tests for bug #580994. - -2010-04-13 Lluis Sanchez Gual <lluis@novell.com> - - * Main.cs: Add unit test for bug 595270: Flags enums in - debugger show the zero value. - -2010-03-02 Lluis Sanchez Gual <lluis@novell.com> - - * Main.cs: Added boxing tests. Disable assignment tests for - MDB only, they now work with SDB. - -2010-02-16 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.Tests.TestApp.csproj: Flush. - diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs index 13b590023a..d227d6dc48 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests.TestApp/TestEvaluation.cs @@ -34,19 +34,56 @@ using System.Threading.Tasks; namespace MonoDevelop.Debugger.Tests.TestApp { + interface IFoo + { + int this[int index] { get; } + int Prop { get; } + } + interface IBar + { + int this[int index] { get; } + int Prop { get; } + } + class Bo + { + public int Prop { get { return 4; } } + } + class FooBar : Bo, IFoo, IBar + { + int IBar.Prop { get { return 1; } } + int IFoo.Prop { get { return 2; } } + public int Prop { get { return 3; } } + + int IFoo.this[int index] + { + get + { + return index; + } + } + + int IBar.this[int index] + { + get + { + return -index; + } + } + } + class TestEvaluationParent { public int TestMethodBase () { float c = 4; - return 1; + return 2; } protected string ProtectedStringProperty{ get; set; } public virtual int TestMethodBase (string a) { - return int.Parse (a) + 1; + return int.Parse (a) + 2; } protected int TestMethodBase (int a) @@ -188,11 +225,19 @@ namespace MonoDevelop.Debugger.Tests.TestApp } } + FooBar = new FooBar (); + Foo = new FooBar (); + Bar = new FooBar (); + var testEvaluationChild = new TestEvaluationChild (); Console.WriteLine (n); /*break*/ } + public FooBar FooBar { get; set; } + public IBar Bar { get; set; } + public IFoo Foo { get; set; } + public string TestCastingArgument (myNint nint) { return nint.v.ToString (); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/BreakpointsAndSteppingTests.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/BreakpointsAndSteppingTests.cs index f6140c6ce9..a1d16e178a 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/BreakpointsAndSteppingTests.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/BreakpointsAndSteppingTests.cs @@ -444,6 +444,12 @@ namespace MonoDevelop.Debugger.Tests [Test]
public void DebuggerStepperBoundaryMethod2ProjectAssembliesOnly ()
{
+ IgnoreSoftDebugger ("Fix me");
+ //SDB Ignore: DebuggerStepperBoundary is stupid and pretty much uselss attribute anyway
+ //Problem that we have here is that DebuggerStepperBoundary is handled on IDE side
+ //and if method that has DebuggerStepperBoundary also has DebuggerNonUserCode IDE
+ //is never notified about entering such method since runtime handles DebuggerNonUserCode
+ //hence bug
InitializeTest ();
Session.Options.ProjectAssembliesOnly = true;
AddBreakpoint ("f3a22b38-596a-4463-a562-20b342fdec12");
@@ -874,6 +880,7 @@ namespace MonoDevelop.Debugger.Tests public void CatchPointTest2 ()
{
IgnoreSoftDebugger ("I'm having problem testing this because. There is error nonstop happening in framework about CurrentCulture featching.");
+ IgnoreCorDebugger ("Randomly fails");
InitializeTest ();
AddCatchpoint ("System.Exception", true);
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/ChangeLog b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/ChangeLog deleted file mode 100644 index 920c56f624..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/ChangeLog +++ /dev/null @@ -1,44 +0,0 @@ -2010-04-14 Lluis Sanchez Gual <lluis@novell.com> - - * StackFrameTests.cs: - * MdbStackFrameTests.cs: - * SdbEvaluationTests.cs: - * SdbStackFrameTests.cs: - * MdbEvaluationTests.cs: - * MonoDevelop.Debugger.Tests.csproj: Added new test suite for - StackFrame. Reorganized a bit the namespaces. Added tests - for bug #580994. - -2010-04-06 Lluis Sanchez Gual <lluis@novell.com> - - * EvaluationTests.cs: Make some tests work on windows. - -2010-03-17 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.Tests.csproj: Merged MD.Projects into - MD.Core, and MD.Projects.Gui, MD.Core.Gui and MD.Components - into MD.Ide. - -2010-03-03 Lluis Sanchez Gual <lluis@novell.com> - - * EvaluationTests.cs: - * MdbEvaluationTests.cs: Fix tests. Formatting rules have - changed. - -2010-03-02 Lluis Sanchez Gual <lluis@novell.com> - - * DebugTests.cs: - * EvaluationTests.cs: - * MdbEvaluationTests.cs: Added boxing tests. Disable - assignment tests for MDB only, they now work with SDB. - -2010-02-16 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.Tests.csproj: Flush. - - * DebugTests.cs: Added support for lazy loading of add-ins - -2009-12-16 Lluis Sanchez Gual <lluis@novell.com> - - * MonoDevelop.Debugger.Tests.csproj: Add missing file. - diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs index 6b2e752541..fafb2b96c6 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/DebugTests.cs @@ -139,7 +139,7 @@ namespace MonoDevelop.Debugger.Tests return; } - Console.WriteLine ("Target Runtime: " + runtime.DisplayRuntimeName + " " + runtime.Version); + Console.WriteLine ("Target Runtime: " + runtime.DisplayRuntimeName + " " + runtime.Version + " " + (IntPtr.Size == 8 ? "64bit" : "32bit")); // main/build/tests FilePath path = Path.GetDirectoryName (GetType ().Assembly.Location); @@ -204,9 +204,16 @@ namespace MonoDevelop.Debugger.Tests }; Session.TargetStopped += (sender, e) => { - Frame = e.Backtrace.GetFrame (0); - lastStoppedPosition = Frame.SourceLocation; - targetStoppedEvent.Set (); + //This can be null in case of ForcedStop + //which is called when exception is thrown + //when Continue & Stepping is executed + if (e.Backtrace != null) { + Frame = e.Backtrace.GetFrame (0); + lastStoppedPosition = Frame.SourceLocation; + targetStoppedEvent.Set (); + } else { + Console.WriteLine ("e.Backtrace is null"); + } }; var targetExited = new ManualResetEvent (false); @@ -215,6 +222,10 @@ namespace MonoDevelop.Debugger.Tests }; Session.Run (dsi, ops); + Session.ExceptionHandler = (ex) => { + Console.WriteLine ("Session.ExceptionHandler:" + Environment.NewLine + ex.ToString ()); + return true; + }; switch (WaitHandle.WaitAny (new WaitHandle[]{ done, targetExited }, 30000)) { case 0: //Breakpoint is hit good... run tests now @@ -295,7 +306,7 @@ namespace MonoDevelop.Debugger.Tests public bool CheckPosition (string guid, int offset = 0, string statement = null, bool silent = false) { - if (!targetStoppedEvent.WaitOne (3000)) { + if (!targetStoppedEvent.WaitOne (6000)) { if (!silent) Assert.Fail ("CheckPosition failure: Target stop timeout"); return false; @@ -427,7 +438,7 @@ namespace MonoDevelop.Debugger.Tests lock (locker) { while (val.IsEvaluating) { - if (!Monitor.Wait (locker, 4000)) + if (!Monitor.Wait (locker, 8000)) throw new Exception ("Timeout while waiting for value evaluation"); } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs index 4f06ceae1d..5451a66b67 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/EvaluationTests.cs @@ -78,6 +78,12 @@ namespace MonoDevelop.Debugger.Tests return "MonoDevelop"; case "SomeEnum": return "SomeEnum"; + case "IFoo": + return "MonoDevelop.Debugger.Tests.TestApp.IFoo"; + case "IBar": + return "MonoDevelop.Debugger.Tests.TestApp.IBar"; + case "Bo": + return "MonoDevelop.Debugger.Tests.TestApp.Bo"; } return null; } @@ -488,23 +494,34 @@ namespace MonoDevelop.Debugger.Tests val = val.Sync (); } Assert.AreEqual ("\"AbstractImplementation\"", val.Value); + Assert.AreEqual ("string", val.TypeName);
+ + IgnoreCorDebugger("TODO: CorDebugger support explicit interfaces"); + + val = Eval ("((IInterfaceWithMethodA)objWithMethodA).MethodA()"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("\"InterfaceImplementation\"", val.Value); Assert.AreEqual ("string", val.TypeName); - // FIXME: failing on CorDebugger - if (Session is SoftDebuggerSession) { - val = Eval ("true.ToString()"); - if (!AllowTargetInvokes) { - var options = Session.Options.EvaluationOptions.Clone (); - options.AllowTargetInvoke = true; - - Assert.IsTrue (val.IsNotSupported); - val.Refresh (options); - val = val.Sync (); - } + val = Eval ("true.ToString()"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; - Assert.AreEqual ("\"True\"", val.Value); - Assert.AreEqual ("string", val.TypeName); + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); } + + Assert.AreEqual ("\"True\"", val.Value); + Assert.AreEqual ("string", val.TypeName); } [Test] @@ -596,15 +613,15 @@ namespace MonoDevelop.Debugger.Tests ObjectValue val = Eval ("numbers[0]"); Assert.AreEqual ("\"one\"", val.Value); Assert.AreEqual ("string", val.TypeName); - + val = Eval ("numbers[1]"); Assert.AreEqual ("\"two\"", val.Value); Assert.AreEqual ("string", val.TypeName); - + val = Eval ("numbers[2]"); Assert.AreEqual ("\"three\"", val.Value); Assert.AreEqual ("string", val.TypeName); - + val = Eval ("staticString[2]"); if (!AllowTargetInvokes) { var options = Session.Options.EvaluationOptions.Clone (); @@ -616,7 +633,7 @@ namespace MonoDevelop.Debugger.Tests } Assert.AreEqual ("'m'", val.Value); Assert.AreEqual ("char", val.TypeName); - + val = Eval ("alist[0]"); if (!AllowTargetInvokes) { var options = Session.Options.EvaluationOptions.Clone (); @@ -628,7 +645,7 @@ namespace MonoDevelop.Debugger.Tests } Assert.AreEqual ("1", val.Value); Assert.AreEqual ("int", val.TypeName); - + val = Eval ("alist[1]"); if (!AllowTargetInvokes) { var options = Session.Options.EvaluationOptions.Clone (); @@ -640,7 +657,7 @@ namespace MonoDevelop.Debugger.Tests } Assert.AreEqual ("\"two\"", val.Value); Assert.AreEqual ("string", val.TypeName); - + val = Eval ("alist[2]"); if (!AllowTargetInvokes) { var options = Session.Options.EvaluationOptions.Clone (); @@ -652,6 +669,57 @@ namespace MonoDevelop.Debugger.Tests } Assert.AreEqual ("3", val.Value); Assert.AreEqual ("int", val.TypeName); + + IgnoreCorDebugger("TODO: CorDebugger support explicit interfaces"); + + val = Eval ("FooBar[2]"); + Assert.IsTrue (val.IsUnknown); + //We have IFoo and IBar implementation but without typecasting and determening which implementation user wants + //we have to return error/Unknown instead of random implementation(FooBar[2] is not compilable anyway) + val = Eval ("((IFoo)FooBar)[2]"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("int", val.TypeName); + Assert.AreEqual ("2", val.Value); + val = Eval ("((IBar)FooBar)[2]"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("int", val.TypeName); + Assert.AreEqual ("-2", val.Value); + val = Eval ("Bar[3]"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("int", val.TypeName); + Assert.AreEqual ("-3", val.Value); + val = Eval ("Foo[3]"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("int", val.TypeName); + Assert.AreEqual ("3", val.Value); } void CheckValue (string expected, string actual, bool isSimpleProperty) @@ -874,7 +942,73 @@ namespace MonoDevelop.Debugger.Tests val = val.Sync (); } Assert.AreEqual ("3", val.Value); + Assert.AreEqual ("int", val.TypeName);
+ + IgnoreCorDebugger("TODO: CorDebugger support explicit interfaces"); + + val = Eval ("Bar.Prop"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("int", val.TypeName); + Assert.AreEqual ("1", val.Value); + val = Eval ("Foo.Prop"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("int", val.TypeName); + Assert.AreEqual ("2", val.Value); + val = Eval ("FooBar.Prop"); Assert.AreEqual ("int", val.TypeName); + Assert.AreEqual ("3", val.Value); + val = Eval ("((Bo)FooBar).Prop"); + Assert.AreEqual ("int", val.TypeName); + Assert.AreEqual ("4", val.Value); + val = Eval ("FooBar"); + richChildren = val.GetAllChildrenSync (); + Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.FooBar)", richChildren [0].Name); + Assert.AreEqual ("int", richChildren [0].TypeName); + Assert.AreEqual ("3", richChildren [0].Value); + Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.Bo)", richChildren [1].Name); + Assert.AreEqual ("int", richChildren [1].TypeName); + Assert.AreEqual ("4", richChildren [1].Value); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (richChildren [2].IsNotSupported); + richChildren [2].Refresh (options); + richChildren [2] = richChildren [2].Sync (); + Assert.IsTrue (richChildren [3].IsNotSupported); + richChildren [3].Refresh (options); + richChildren [3] = richChildren [3].Sync (); + } + //TODO: Include interface names into sorting + if ("Prop (MonoDevelop.Debugger.Tests.TestApp.IFoo)" == richChildren [2].Name) { + Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.IFoo)", richChildren [2].Name); + Assert.AreEqual ("int", richChildren [2].TypeName); + Assert.AreEqual ("2", richChildren [2].Value); + Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.IBar)", richChildren [3].Name); + Assert.AreEqual ("int", richChildren [3].TypeName); + Assert.AreEqual ("1", richChildren [3].Value); + } else { + Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.IFoo)", richChildren [3].Name); + Assert.AreEqual ("int", richChildren [3].TypeName); + Assert.AreEqual ("2", richChildren [3].Value); + Assert.AreEqual ("Prop (MonoDevelop.Debugger.Tests.TestApp.IBar)", richChildren [2].Name); + Assert.AreEqual ("int", richChildren [2].TypeName); + Assert.AreEqual ("1", richChildren [2].Value); + } } [Test] @@ -1520,7 +1654,7 @@ namespace MonoDevelop.Debugger.Tests public void FormatArray () { ObjectValue val; - + val = Eval ("numbers"); Assert.AreEqual ("{string[3]}", val.Value); Assert.AreEqual ("string[]", val.TypeName); @@ -1529,19 +1663,22 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("{int[2][]}", val.Value); Assert.AreEqual ("int[][]", val.TypeName); + IgnoreCorDebugger ("Randomly fails"); + + val = Eval ("arrayWithLowerBounds"); + Assert.AreEqual ("int[,,]", val.TypeName); + Assert.AreEqual ("{int[3,4,5]}", val.Value); + val = Eval ("numbersMulti"); Assert.AreEqual ("{int[3,4,5]}", val.Value); Assert.AreEqual ("int[,,]", val.TypeName); Assert.IsFalse (val.IsNull); + IgnoreSoftDebugger ("Randomly fails, tracked as Bug 36712"); val = Eval ("nulledByteArray"); Assert.AreEqual ("(null)", val.Value); Assert.AreEqual ("byte[]", val.TypeName); Assert.IsTrue (val.IsNull); - - val = Eval ("arrayWithLowerBounds"); - Assert.AreEqual ("int[,,]", val.TypeName); - Assert.AreEqual ("{int[3,4,5]}", val.Value); } [Test] @@ -1654,21 +1791,6 @@ namespace MonoDevelop.Debugger.Tests { ObjectValue val; - //When fixed put into Inheriting test - val = Eval ("b.TestMethod ()"); - Assert.AreEqual ("2", val.Value); - Assert.AreEqual ("int", val.TypeName); - - //When fixed put into Inheriting test - val = Eval ("b.TestMethod (42)"); - Assert.AreEqual ("44", val.Value); - Assert.AreEqual ("int", val.TypeName); - - //When fixed put into Inheriting test - val = Eval ("base.TestMethodBase ()"); - Assert.AreEqual ("2", val.Value); - Assert.AreEqual ("int", val.TypeName); - val = Eval ("base.TestMethodBase (\"23\")"); Assert.AreEqual ("25", val.Value); Assert.AreEqual ("int", val.TypeName); @@ -1677,10 +1799,6 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("44", val.Value); Assert.AreEqual ("int", val.TypeName); - val = Eval ("base.TestMethodBaseNotOverrided ()"); - Assert.AreEqual ("1", val.Value); - Assert.AreEqual ("int", val.TypeName); - //When fixed put into TypeReferenceGeneric val = Eval ("Dictionary<string,NestedClass>"); Assert.AreEqual ("System.Collections.Generic.Dictionary<string,MonoDevelop.Debugger.Tests.TestApp.TestEvaluation.NestedClass>", val.Value); @@ -1693,18 +1811,6 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("<type>", val.TypeName); Assert.AreEqual (ObjectValueFlags.Type, val.Flags & ObjectValueFlags.OriginMask); - //When fixed put into MethodInvoke(failing also on CorDebugger) - val = Eval ("((IInterfaceWithMethodA)objWithMethodA).MethodA()"); - if (!AllowTargetInvokes) { - var options = Session.Options.EvaluationOptions.Clone (); - options.AllowTargetInvoke = true; - - Assert.IsTrue (val.IsNotSupported); - val.Refresh (options); - val = val.Sync (); - } - Assert.AreEqual ("\"InterfaceImplementation\"", val.Value); - Assert.AreEqual ("string", val.TypeName); } [Test] @@ -1855,6 +1961,9 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("43", val.Value); Assert.AreEqual ("int", val.TypeName); + if (soft != null && soft.ProtocolVersion < new Version (2, 40)) + Assert.Ignore ("A newer version of the Mono runtime is required."); + val = Eval ("b.Prop"); if (!AllowTargetInvokes) { var options = Session.Options.EvaluationOptions.Clone (); @@ -1867,7 +1976,7 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("2", val.Value); Assert.AreEqual ("int", val.TypeName); - val = Eval ("b.PropNoVirt1"); + val = Eval ("((B)b).PropNoVirt1"); if (!AllowTargetInvokes && soft == null) { var options = Session.Options.EvaluationOptions.Clone (); options.AllowTargetInvoke = true; @@ -1879,7 +1988,7 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("2", val.Value); Assert.AreEqual ("int", val.TypeName); - val = Eval ("b.PropNoVirt2"); + val = Eval ("((B)b).PropNoVirt2"); if (!AllowTargetInvokes && soft == null) { var options = Session.Options.EvaluationOptions.Clone (); options.AllowTargetInvoke = true; @@ -1891,7 +2000,7 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("2", val.Value); Assert.AreEqual ("int", val.TypeName); - val = Eval ("b.IntField"); + val = Eval ("((B)b).IntField"); Assert.AreEqual ("2", val.Value); Assert.AreEqual ("int", val.TypeName); @@ -1991,9 +2100,6 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("1", val.Value); Assert.AreEqual ("int", val.TypeName); - if (soft != null && soft.ProtocolVersion < new Version (2, 40)) - Assert.Ignore ("A newer version of the Mono runtime is required."); - val = Eval ("b.TestMethod (\"23\")"); if (!AllowTargetInvokes) { var options = Session.Options.EvaluationOptions.Clone (); @@ -2006,25 +2112,102 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("25", val.Value); Assert.AreEqual ("int", val.TypeName); - if (Session is SoftDebuggerSession) { - val = Eval ("System.Text.Encoding.UTF8.GetPreamble ()"); - if (!AllowTargetInvokes) { - var options = Session.Options.EvaluationOptions.Clone (); - options.AllowTargetInvoke = true; - - Assert.IsTrue (val.IsNotSupported); - val.Refresh (options); - val = val.Sync (); - } - Assert.AreEqual ("byte[]", val.TypeName); - Assert.AreEqual ("{byte[3]}", val.Value); - var bytes = ((RawValueArray)val.GetRawValue ()).ToArray (); - Assert.AreEqual (239, bytes.GetValue (0)); - Assert.AreEqual (187, bytes.GetValue (1)); - Assert.AreEqual (191, bytes.GetValue (2)); - } else { - Assert.Ignore ("Not working on CorDebugger"); + val = Eval ("base.TestMethodBaseNotOverrided ()"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("1", val.Value); + Assert.AreEqual ("int", val.TypeName); + + val = Eval("base.TestMethodBase ()"); + if (!AllowTargetInvokes)
+ { + var options = Session.Options.EvaluationOptions.Clone(); + options.AllowTargetInvoke = true; + + Assert.IsTrue(val.IsNotSupported); + val.Refresh(options); + val = val.Sync(); } + Assert.AreEqual("2", val.Value); + Assert.AreEqual("int", val.TypeName); + + IgnoreCorDebugger("Not working on CorDebugger"); + + val = Eval("b.PropNoVirt2"); + if (!AllowTargetInvokes)
+ { + var options = Session.Options.EvaluationOptions.Clone(); + options.AllowTargetInvoke = true; + + Assert.IsTrue(val.IsNotSupported); + val.Refresh(options); + val = val.Sync(); + } + Assert.AreEqual("1", val.Value); + Assert.AreEqual("int", val.TypeName); + + val = Eval("b.IntField"); + Assert.AreEqual("1", val.Value); + Assert.AreEqual("int", val.TypeName);
+
+ val = Eval("b.PropNoVirt1"); + if (!AllowTargetInvokes && soft == null)
+ { + var options = Session.Options.EvaluationOptions.Clone(); + options.AllowTargetInvoke = true; + + Assert.IsTrue(val.IsNotSupported); + val.Refresh(options); + val = val.Sync(); + } + Assert.AreEqual("1", val.Value); + Assert.AreEqual("int", val.TypeName); + + val = Eval ("System.Text.Encoding.UTF8.GetPreamble ()"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("byte[]", val.TypeName); + Assert.AreEqual ("{byte[3]}", val.Value); + var bytes = ((RawValueArray)val.GetRawValue ()).ToArray (); + Assert.AreEqual (239, bytes.GetValue (0)); + Assert.AreEqual (187, bytes.GetValue (1)); + Assert.AreEqual (191, bytes.GetValue (2)); + + val = Eval ("b.TestMethod ()"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("1", val.Value); + Assert.AreEqual ("int", val.TypeName); + + val = Eval ("b.TestMethod (42)"); + if (!AllowTargetInvokes) { + var options = Session.Options.EvaluationOptions.Clone (); + options.AllowTargetInvoke = true; + + Assert.IsTrue (val.IsNotSupported); + val.Refresh (options); + val = val.Sync (); + } + Assert.AreEqual ("43", val.Value); + Assert.AreEqual ("int", val.TypeName); } [Test] @@ -2060,14 +2243,11 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("\"b\"", children [1].Value); } else { // when AllowTargetInvokes is disabled, it also disables debugger proxies - Assert.AreEqual (7, children.Length); + Assert.AreEqual (18, children.Length); Assert.AreEqual ("Comparer", children [0].Name); - Assert.AreEqual ("Count", children [1].Name); - Assert.AreEqual ("Keys", children [2].Name); - Assert.AreEqual ("Values", children [3].Name); - Assert.AreEqual ("Static members", children [4].Name); - Assert.AreEqual ("Non-public members", children [5].Name); - Assert.AreEqual ("IEnumerator", children [6].Name); + Assert.AreEqual ("Static members", children [15].Name); + Assert.AreEqual ("Non-public members", children [16].Name); + Assert.AreEqual ("IEnumerator", children [17].Name); } val = Eval ("stringList"); @@ -2085,12 +2265,11 @@ namespace MonoDevelop.Debugger.Tests Assert.AreEqual ("\"ccc\"", children [2].Value); } else { // when AllowTargetInvokes is disabled, it also disables debugger proxies - Assert.AreEqual (5, children.Length); + Assert.AreEqual (10, children.Length); Assert.AreEqual ("Capacity", children [0].Name); - Assert.AreEqual ("Count", children [1].Name); - Assert.AreEqual ("Static members", children [2].Name); - Assert.AreEqual ("Non-public members", children [3].Name); - Assert.AreEqual ("IEnumerator", children [4].Name); + Assert.AreEqual ("Static members", children [7].Name); + Assert.AreEqual ("Non-public members", children [8].Name); + Assert.AreEqual ("IEnumerator", children [9].Name); } val = Eval ("alist"); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/MonoDevelop.Debugger.Tests.csproj b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/MonoDevelop.Debugger.Tests.csproj index 25bf813d8d..b1212633d0 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/MonoDevelop.Debugger.Tests.csproj +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Tests/MonoDevelop.Debugger.Tests.csproj @@ -60,11 +60,6 @@ <Name>MonoDevelop.Core</Name> <Private>False</Private> </ProjectReference> - <ProjectReference Include="..\..\..\core\Mono.Texteditor\Mono.TextEditor.csproj"> - <Project>{A2329308-3751-4DBD-9A75-5F7B8B024625}</Project> - <Name>Mono.TextEditor</Name> - <Private>False</Private> - </ProjectReference> <ProjectReference Include="..\..\..\core\MonoDevelop.Ide\MonoDevelop.Ide.csproj"> <Project>{27096E7F-C91C-4AC6-B289-6897A701DF21}</Project> <Name>MonoDevelop.Ide</Name> diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml index 78c001deee..806bbfd00f 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.addin.xml @@ -30,12 +30,12 @@ </ExtensionPoint> <Extension path = "/MonoDevelop/Ide/Pads"> <Category id="Debug" _name="Debug Windows"> - <Pad id = "MonoDevelop.Debugger.WatchPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-watch" class = "MonoDevelop.Debugger.WatchPad" _label="Watch" /> - <Pad id = "MonoDevelop.Debugger.LocalsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-locals" class = "MonoDevelop.Debugger.LocalsPad" _label="Locals" /> <Pad id = "MonoDevelop.Debugger.BreakpointPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-breakpoints" class = "MonoDevelop.Debugger.BreakpointPad" _label="Breakpoints" /> - <Pad id = "MonoDevelop.Debugger.ThreadsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-threads" class = "MonoDevelop.Debugger.ThreadsPad" _label="Threads" /> - <Pad id = "MonoDevelop.Debugger.StackTracePad" defaultLayout="Debug" defaultPlacement = "MonoDevelop.Debugger.WatchPad/Right Bottom" icon="md-view-debug-call-stack" class = "MonoDevelop.Debugger.StackTracePad" _label="Call Stack" /> + <Pad id = "MonoDevelop.Debugger.LocalsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-locals" class = "MonoDevelop.Debugger.LocalsPad" _label="Locals" /> + <Pad id = "MonoDevelop.Debugger.WatchPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-watch" class = "MonoDevelop.Debugger.WatchPad" _label="Watch" /> <Pad id = "MonoDevelop.Debugger.ImmediatePad" defaultLayout="Debug" defaultPlacement = "MonoDevelop.Debugger.StackTracePad/Center Bottom" icon="md-view-debug-immediate" class = "MonoDevelop.Debugger.ImmediatePad" _label="Immediate" /> + <Pad id = "MonoDevelop.Debugger.StackTracePad" defaultLayout="Debug" defaultPlacement = "MonoDevelop.Debugger.WatchPad/Right Bottom" icon="md-view-debug-call-stack" class = "MonoDevelop.Debugger.StackTracePad" _label="Call Stack" /> + <Pad id = "MonoDevelop.Debugger.ThreadsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-threads" class = "MonoDevelop.Debugger.ThreadsPad" _label="Threads" /> </Category> </Extension> @@ -56,14 +56,14 @@ <Extension path = "/MonoDevelop/Ide/Commands/Project"> <Command id = "MonoDevelop.Debugger.DebugCommands.Debug" defaultHandler = "MonoDevelop.Debugger.DebugHandler" - icon = "md-execute-debug" + icon = "md-bug" shortcut = "F5" macShortcut = "Meta|Return" _description = "Start debugging" _label = "Start _Debugging" /> <Command id = "MonoDevelop.Debugger.DebugCommands.DebugEntry" defaultHandler = "MonoDevelop.Debugger.DebugEntryHandler" - icon = "md-execute-debug" + icon = "md-bug" _description = "Debug current project" _label = "Start D_ebugging Item" /> </Extension> @@ -124,7 +124,7 @@ <Command id = "MonoDevelop.Debugger.DebugCommands.NewCatchpoint" defaultHandler = "MonoDevelop.Debugger.NewCatchpointHandler" _label = "New Exception Catchpoint" - icon = "md-breakpoint-new" /> + icon = "md-catchpoint-new" /> <Command id = "MonoDevelop.Debugger.DebugCommands.ShowBreakpoints" defaultHandler = "MonoDevelop.Debugger.ShowBreakpointsHandler" _label = "View Breakpoints" @@ -164,6 +164,7 @@ defaultHandler = "MonoDevelop.Debugger.ExpressionEvaluatorCommand" /> <Command id = "MonoDevelop.Debugger.DebugCommands.ShowCurrentExecutionLine" _label = "Show Current Execution Line" + icon = "md-go-to-line" shortcut = "Alt|*" defaultHandler = "MonoDevelop.Debugger.ShowCurrentExecutionLineCommand" /> <Command id = "MonoDevelop.Debugger.DebugCommands.AddWatch" @@ -230,15 +231,12 @@ </Extension> <Extension path = "/MonoDevelop/Core/StockIcons"> - <StockIcon stockid = "md-execute-debug" icon = "gtk-execute|res:debug-overlay-16.png" size = "Menu"/> - <StockIcon stockid = "md-execute-debug" icon = "gtk-execute|res:debug-overlay-22.png" size = "SmallToolbar"/> - <StockIcon stockid = "md-execute-debug" icon = "gtk-execute|res:debug-overlay-24.png" size = "LargeToolbar"/> <StockIcon stockid = "md-continue-debug" resource = "continue-16.png" size = "Menu"/> <StockIcon stockid = "md-pause-debug" resource = "pause-16.png" size = "Menu"/> <StockIcon stockid = "md-step-into-debug" resource = "step-in-16.png" size = "Menu"/> <StockIcon stockid = "md-step-out-debug" resource = "step-out-16.png" size = "Menu"/> <StockIcon stockid = "md-step-over-debug" resource = "step-over-16.png" size = "Menu"/> - <StockIcon stockid = "md-view-debug-breakpoints" resource = "breakpoint-16.png" size="Menu" /> + <StockIcon stockid = "md-view-debug-breakpoints" resource = "pad-breakpoints-16.png" size="Menu" /> <StockIcon stockid = "md-view-debug-call-stack" resource = "pad-call-stack-16.png" size="Menu" /> <StockIcon stockid = "md-view-debug-locals" resource = "pad-locals-16.png" size="Menu" /> <StockIcon stockid = "md-view-debug-threads" resource = "pad-threads-16.png" size="Menu" /> diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj index b90a0b4dd1..3bece5c534 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.csproj @@ -91,6 +91,26 @@ <Reference Include="System.Core" /> <Reference Include="Mono.Cairo" /> <Reference Include="System.Drawing" /> + <Reference Include="System.Reflection.Metadata"> + <HintPath>..\..\..\external\roslyn\Binaries\Release\System.Reflection.Metadata.dll</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="System.Collections.Immutable"> + <HintPath>..\..\..\external\roslyn\Binaries\Release\System.Collections.Immutable.dll</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="Microsoft.CodeAnalysis"> + <HintPath>..\..\..\external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.dll</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="Microsoft.CodeAnalysis.Workspaces"> + <HintPath>..\..\..\external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.Workspaces.dll</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="Microsoft.CodeAnalysis.CSharp"> + <HintPath>..\..\..\external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.CSharp.dll</HintPath> + <Private>False</Private> + </Reference> </ItemGroup> <ItemGroup> <ProjectReference Include="..\..\core\MonoDevelop.Core\MonoDevelop.Core.csproj"> @@ -103,11 +123,6 @@ <Name>MonoDevelop.Ide</Name> <Private>False</Private> </ProjectReference> - <ProjectReference Include="..\..\core\Mono.Texteditor\Mono.TextEditor.csproj"> - <Project>{A2329308-3751-4DBD-9A75-5F7B8B024625}</Project> - <Name>Mono.TextEditor</Name> - <Private>False</Private> - </ProjectReference> <ProjectReference Include="..\..\..\external\nrefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj"> <Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project> <Name>ICSharpCode.NRefactory</Name> @@ -136,7 +151,6 @@ <Compile Include="MonoDevelop.Debugger\WatchPad.cs" /> <Compile Include="MonoDevelop.Debugger\Initializer.cs" /> <Compile Include="MonoDevelop.Debugger\DisassemblyView.cs" /> - <Compile Include="MonoDevelop.Debugger\DebugTextMarker.cs" /> <Compile Include="MonoDevelop.Debugger\BreakpointPad.cs" /> <Compile Include="MonoDevelop.Debugger\LocalsPad.cs" /> <Compile Include="MonoDevelop.Debugger\ObjectValuePad.cs" /> @@ -186,6 +200,7 @@ <Compile Include="MonoDevelop.Debugger\SourceCodeLookup.cs" /> <Compile Include="gtk-gui\MonoDevelop.Debugger.DebugApplicationDialog.cs" /> <Compile Include="MonoDevelop.Debugger\DebugApplicationDialog.cs" /> + <Compile Include="MonoDevelop.Debugger\Styles.cs" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="MonoDevelop.Debugger.addin.xml"> @@ -194,35 +209,53 @@ <EmbeddedResource Include="gtk-gui\gui.stetic"> <LogicalName>gui.stetic</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\debug-overlay-16.png"> - <LogicalName>debug-overlay-16.png</LogicalName> + <EmbeddedResource Include="icons\breakpoint-16.png"> + <LogicalName>breakpoint-16.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\breakpoint-16%402x.png"> + <LogicalName>breakpoint-16@2x.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\debug-overlay-16%402x.png"> - <LogicalName>debug-overlay-16@2x.png</LogicalName> + <EmbeddedResource Include="icons\breakpoint-16~dark.png"> + <LogicalName>breakpoint-16~dark.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\debug-overlay-22.png"> - <LogicalName>debug-overlay-22.png</LogicalName> + <EmbeddedResource Include="icons\breakpoint-16~dark%402x.png"> + <LogicalName>breakpoint-16~dark@2x.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\debug-overlay-22%402x.png"> - <LogicalName>debug-overlay-22@2x.png</LogicalName> + <EmbeddedResource Include="icons\breakpoint-16~disabled.png"> + <LogicalName>breakpoint-16~disabled.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\debug-overlay-24.png"> - <LogicalName>debug-overlay-24.png</LogicalName> + <EmbeddedResource Include="icons\breakpoint-16~disabled%402x.png"> + <LogicalName>breakpoint-16~disabled@2x.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\debug-overlay-24%402x.png"> - <LogicalName>debug-overlay-24@2x.png</LogicalName> + <EmbeddedResource Include="icons\breakpoint-16~dark~disabled.png"> + <LogicalName>breakpoint-16~dark~disabled.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\debug-overlay-32.png"> - <LogicalName>debug-overlay-32.png</LogicalName> + <EmbeddedResource Include="icons\breakpoint-16~dark~disabled%402x.png"> + <LogicalName>breakpoint-16~dark~disabled@2x.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\debug-overlay-32%402x.png"> - <LogicalName>debug-overlay-32@2x.png</LogicalName> + <EmbeddedResource Include="icons\pad-breakpoints-16.png"> + <LogicalName>pad-breakpoints-16.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\breakpoint-16.png"> - <LogicalName>breakpoint-16.png</LogicalName> + <EmbeddedResource Include="icons\pad-breakpoints-16%402x.png"> + <LogicalName>pad-breakpoints-16@2x.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\breakpoint-16%402x.png"> - <LogicalName>breakpoint-16@2x.png</LogicalName> + <EmbeddedResource Include="icons\pad-breakpoints-16~dark.png"> + <LogicalName>pad-breakpoints-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-breakpoints-16~dark%402x.png"> + <LogicalName>pad-breakpoints-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-breakpoints-16~sel.png"> + <LogicalName>pad-breakpoints-16~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-breakpoints-16~sel%402x.png"> + <LogicalName>pad-breakpoints-16~sel@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-breakpoints-16~dark~sel.png"> + <LogicalName>pad-breakpoints-16~dark~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-breakpoints-16~dark~sel%402x.png"> + <LogicalName>pad-breakpoints-16~dark~sel@2x.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\pad-call-stack-16.png"> <LogicalName>pad-call-stack-16.png</LogicalName> @@ -230,84 +263,246 @@ <EmbeddedResource Include="icons\pad-call-stack-16%402x.png"> <LogicalName>pad-call-stack-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\pad-call-stack-16~dark.png"> + <LogicalName>pad-call-stack-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-call-stack-16~dark%402x.png"> + <LogicalName>pad-call-stack-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-call-stack-16~sel.png"> + <LogicalName>pad-call-stack-16~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-call-stack-16~sel%402x.png"> + <LogicalName>pad-call-stack-16~sel@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-call-stack-16~dark~sel.png"> + <LogicalName>pad-call-stack-16~dark~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-call-stack-16~dark~sel%402x.png"> + <LogicalName>pad-call-stack-16~dark~sel@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\pad-locals-16.png"> <LogicalName>pad-locals-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\pad-locals-16%402x.png"> <LogicalName>pad-locals-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\pad-locals-16~dark.png"> + <LogicalName>pad-locals-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-locals-16~dark%402x.png"> + <LogicalName>pad-locals-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-locals-16~sel.png"> + <LogicalName>pad-locals-16~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-locals-16~sel%402x.png"> + <LogicalName>pad-locals-16~sel@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-locals-16~dark~sel.png"> + <LogicalName>pad-locals-16~dark~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-locals-16~dark~sel%402x.png"> + <LogicalName>pad-locals-16~dark~sel@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\pad-threads-16.png"> <LogicalName>pad-threads-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\pad-threads-16%402x.png"> <LogicalName>pad-threads-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\pad-threads-16~dark.png"> + <LogicalName>pad-threads-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-threads-16~dark%402x.png"> + <LogicalName>pad-threads-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-threads-16~sel.png"> + <LogicalName>pad-threads-16~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-threads-16~sel%402x.png"> + <LogicalName>pad-threads-16~sel@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-threads-16~dark~sel.png"> + <LogicalName>pad-threads-16~dark~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-threads-16~dark~sel%402x.png"> + <LogicalName>pad-threads-16~dark~sel@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\pad-watch-16.png"> <LogicalName>pad-watch-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\pad-watch-16%402x.png"> <LogicalName>pad-watch-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\pad-watch-16~dark.png"> + <LogicalName>pad-watch-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-watch-16~dark%402x.png"> + <LogicalName>pad-watch-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-watch-16~sel.png"> + <LogicalName>pad-watch-16~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-watch-16~sel%402x.png"> + <LogicalName>pad-watch-16~sel@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-watch-16~dark~sel.png"> + <LogicalName>pad-watch-16~dark~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pad-watch-16~dark~sel%402x.png"> + <LogicalName>pad-watch-16~dark~sel@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\prefs-debugger-16.png"> <LogicalName>prefs-debugger-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\prefs-debugger-16%402x.png"> <LogicalName>prefs-debugger-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\prefs-debugger-16~dark.png"> + <LogicalName>prefs-debugger-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\prefs-debugger-16~dark%402x.png"> + <LogicalName>prefs-debugger-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\prefs-debugger-16~sel.png"> + <LogicalName>prefs-debugger-16~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\prefs-debugger-16~sel%402x.png"> + <LogicalName>prefs-debugger-16~sel@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\prefs-debugger-16~dark~sel.png"> + <LogicalName>prefs-debugger-16~dark~sel.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\prefs-debugger-16~dark~sel%402x.png"> + <LogicalName>prefs-debugger-16~dark~sel@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\lightning-16.png"> <LogicalName>lightning-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\lightning-16%402x.png"> <LogicalName>lightning-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\lightning-16~dark.png"> + <LogicalName>lightning-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\lightning-16~dark%402x.png"> + <LogicalName>lightning-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\lightning-16~disabled.png"> + <LogicalName>lightning-16~disabled.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\lightning-16~disabled%402x.png"> + <LogicalName>lightning-16~disabled@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\lightning-16~dark~disabled.png"> + <LogicalName>lightning-16~dark~disabled.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\lightning-16~dark~disabled%402x.png"> + <LogicalName>lightning-16~dark~disabled@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\exception-48~dark.png"> + <LogicalName>exception-48~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\exception-48~dark%402x.png"> + <LogicalName>exception-48~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\gutter-breakpoint-15.png"> <LogicalName>gutter-breakpoint-15.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\gutter-breakpoint-15%402x.png"> <LogicalName>gutter-breakpoint-15@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-breakpoint-15~dark.png"> + <LogicalName>gutter-breakpoint-15~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-breakpoint-15~dark%402x.png"> + <LogicalName>gutter-breakpoint-15~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\gutter-breakpoint-disabled-15.png"> <LogicalName>gutter-breakpoint-disabled-15.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\gutter-breakpoint-disabled-15%402x.png"> <LogicalName>gutter-breakpoint-disabled-15@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-breakpoint-disabled-15~dark.png"> + <LogicalName>gutter-breakpoint-disabled-15~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-breakpoint-disabled-15~dark%402x.png"> + <LogicalName>gutter-breakpoint-disabled-15~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\gutter-breakpoint-invalid-15.png"> <LogicalName>gutter-breakpoint-invalid-15.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\gutter-breakpoint-invalid-15%402x.png"> <LogicalName>gutter-breakpoint-invalid-15@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-breakpoint-invalid-15~dark.png"> + <LogicalName>gutter-breakpoint-invalid-15~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-breakpoint-invalid-15~dark%402x.png"> + <LogicalName>gutter-breakpoint-invalid-15~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\gutter-execution-15.png"> <LogicalName>gutter-execution-15.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\gutter-execution-15%402x.png"> <LogicalName>gutter-execution-15@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-execution-15~dark.png"> + <LogicalName>gutter-execution-15~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-execution-15~dark%402x.png"> + <LogicalName>gutter-execution-15~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\gutter-stack-15.png"> <LogicalName>gutter-stack-15.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\gutter-stack-15%402x.png"> <LogicalName>gutter-stack-15@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-stack-15~dark.png"> + <LogicalName>gutter-stack-15~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-stack-15~dark%402x.png"> + <LogicalName>gutter-stack-15~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\gutter-tracepoint-15.png"> <LogicalName>gutter-tracepoint-15.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\gutter-tracepoint-15%402x.png"> <LogicalName>gutter-tracepoint-15@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-tracepoint-15~dark.png"> + <LogicalName>gutter-tracepoint-15~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-tracepoint-15~dark%402x.png"> + <LogicalName>gutter-tracepoint-15~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\gutter-tracepoint-disabled-15.png"> <LogicalName>gutter-tracepoint-disabled-15.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\gutter-tracepoint-disabled-15%402x.png"> <LogicalName>gutter-tracepoint-disabled-15@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-tracepoint-disabled-15~dark.png"> + <LogicalName>gutter-tracepoint-disabled-15~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-tracepoint-disabled-15~dark%402x.png"> + <LogicalName>gutter-tracepoint-disabled-15~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\gutter-tracepoint-invalid-15.png"> <LogicalName>gutter-tracepoint-invalid-15.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\gutter-tracepoint-invalid-15%402x.png"> <LogicalName>gutter-tracepoint-invalid-15@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-tracepoint-invalid-15~dark.png"> + <LogicalName>gutter-tracepoint-invalid-15~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\gutter-tracepoint-invalid-15~dark%402x.png"> + <LogicalName>gutter-tracepoint-invalid-15~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\stack-pointer-16.png"> <LogicalName>stack-pointer-16.png</LogicalName> </EmbeddedResource> @@ -326,6 +521,24 @@ <EmbeddedResource Include="icons\exception-outline-16%402x.png"> <LogicalName>exception-outline-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\stack-pointer-16~dark.png"> + <LogicalName>stack-pointer-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\stack-pointer-16~dark%402x.png"> + <LogicalName>stack-pointer-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\stack-pointer-16~disabled.png"> + <LogicalName>stack-pointer-16~disabled.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\stack-pointer-16~disabled%402x.png"> + <LogicalName>stack-pointer-16~disabled@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\stack-pointer-16~dark~disabled.png"> + <LogicalName>stack-pointer-16~dark~disabled.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\stack-pointer-16~dark~disabled%402x.png"> + <LogicalName>stack-pointer-16~dark~disabled@2x.png</LogicalName> + </EmbeddedResource> </ItemGroup> <ItemGroup Condition=" '$(Configuration)' != 'DebugMac' AND '$(Configuration)' != 'ReleaseMac' "> <EmbeddedResource Include="icons\pause-16.png"> @@ -334,62 +547,158 @@ <EmbeddedResource Include="icons\pause-16%402x.png"> <LogicalName>pause-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\pause-16~dark.png"> + <LogicalName>pause-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\pause-16~dark%402x.png"> + <LogicalName>pause-16~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\step-in-16.png"> <LogicalName>step-in-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\step-in-16%402x.png"> <LogicalName>step-in-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\step-in-16~dark.png"> + <LogicalName>step-in-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\step-in-16~dark%402x.png"> + <LogicalName>step-in-16~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\step-out-16.png"> <LogicalName>step-out-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\step-out-16%402x.png"> <LogicalName>step-out-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\step-out-16~dark.png"> + <LogicalName>step-out-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\step-out-16~dark%402x.png"> + <LogicalName>step-out-16~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\step-over-16.png"> <LogicalName>step-over-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\step-over-16%402x.png"> <LogicalName>step-over-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\step-over-16~dark.png"> + <LogicalName>step-over-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\step-over-16~dark%402x.png"> + <LogicalName>step-over-16~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\continue-16.png"> <LogicalName>continue-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\continue-16%402x.png"> <LogicalName>continue-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\continue-16~dark.png"> + <LogicalName>continue-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\continue-16~dark%402x.png"> + <LogicalName>continue-16~dark@2x.png</LogicalName> + </EmbeddedResource> </ItemGroup> <ItemGroup Condition=" '$(Configuration)' == 'DebugMac' OR '$(Configuration)' == 'ReleaseMac' "> - <EmbeddedResource Include="icons\mac\pause.png"> + <EmbeddedResource Include="icons\mac\pause-16.png"> <LogicalName>pause-16.png</LogicalName> </EmbeddedResource> - <EmbeddedResource Include="icons\mac\pause%402x.png"> + <EmbeddedResource Include="icons\mac\pause-16%402x.png"> <LogicalName>pause-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\mac\pause-16~dark.png"> + <LogicalName>pause-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\pause-16~dark%402x.png"> + <LogicalName>pause-16~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\mac\continue-16.png"> <LogicalName>continue-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\mac\continue-16%402x.png"> <LogicalName>continue-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\mac\continue-16~dark.png"> + <LogicalName>continue-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\continue-16~dark%402x.png"> + <LogicalName>continue-16~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\mac\step-in-16%402x.png"> <LogicalName>step-in-16@2x.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\mac\step-in-16.png"> <LogicalName>step-in-16.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-in-16~disabled.png"> + <LogicalName>step-in-16~disabled.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-in-16~disabled%402x.png"> + <LogicalName>step-in-16~disabled@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-in-16~dark.png"> + <LogicalName>step-in-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-in-16~dark%402x.png"> + <LogicalName>step-in-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-in-16~disabled~dark.png"> + <LogicalName>step-in-16~disabled~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-in-16~disabled~dark%402x.png"> + <LogicalName>step-in-16~disabled~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\mac\step-out-16.png"> <LogicalName>step-out-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\mac\step-out-16%402x.png"> <LogicalName>step-out-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-out-16~disabled.png"> + <LogicalName>step-out-16~disabled.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-out-16~disabled%402x.png"> + <LogicalName>step-out-16~disabled@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-out-16~dark.png"> + <LogicalName>step-out-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-out-16~dark%402x.png"> + <LogicalName>step-out-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-out-16~disabled~dark.png"> + <LogicalName>step-out-16~disabled~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-out-16~disabled~dark%402x.png"> + <LogicalName>step-out-16~disabled~dark@2x.png</LogicalName> + </EmbeddedResource> <EmbeddedResource Include="icons\mac\step-over-16.png"> <LogicalName>step-over-16.png</LogicalName> </EmbeddedResource> <EmbeddedResource Include="icons\mac\step-over-16%402x.png"> <LogicalName>step-over-16@2x.png</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-over-16~disabled.png"> + <LogicalName>step-over-16~disabled.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-over-16~disabled%402x.png"> + <LogicalName>step-over-16~disabled@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-over-16~dark.png"> + <LogicalName>step-over-16~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-over-16~dark%402x.png"> + <LogicalName>step-over-16~dark@2x.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-over-16~disabled~dark.png"> + <LogicalName>step-over-16~disabled~dark.png</LogicalName> + </EmbeddedResource> + <EmbeddedResource Include="icons\mac\step-over-16~disabled~dark%402x.png"> + <LogicalName>step-over-16~disabled~dark@2x.png</LogicalName> + </EmbeddedResource> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <ItemGroup> diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs index fe65568897..9c395b5889 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs @@ -40,7 +40,7 @@ using MonoDevelop.Ide; namespace MonoDevelop.Debugger { - public class BreakpointPad : IPadContent + public class BreakpointPad : PadContent { BreakpointStore breakpoints; @@ -51,11 +51,6 @@ namespace MonoDevelop.Debugger CommandEntrySet menuSet; TreeViewState treeState; - EventHandler<BreakpointEventArgs> breakpointUpdatedHandler; - EventHandler<BreakpointEventArgs> breakpointRemovedHandler; - EventHandler<BreakpointEventArgs> breakpointAddedHandler; - EventHandler breakpointChangedHandler; - enum Columns { Icon, @@ -74,12 +69,13 @@ namespace MonoDevelop.Debugger Properties } - public void Initialize (IPadWindow window) + protected override void Initialize (IPadWindow window) { + Id = "MonoDevelop.Debugger.BreakpointPad"; // Toolbar and menu definitions ActionCommand gotoCmd = new ActionCommand (LocalCommands.GoToFile, GettextCatalog.GetString ("Go to File")); - ActionCommand propertiesCmd = new ActionCommand (LocalCommands.Properties, GettextCatalog.GetString ("Properties"), Gtk.Stock.Properties); + ActionCommand propertiesCmd = new ActionCommand (LocalCommands.Properties, GettextCatalog.GetString ("Properties"), Stock.Properties); menuSet = new CommandEntrySet (); menuSet.Add (gotoCmd); @@ -99,8 +95,8 @@ namespace MonoDevelop.Debugger toolbarSet.AddSeparator (); toolbarSet.Add (propertiesCmd); toolbarSet.AddSeparator (); - toolbarSet.Add (new CommandEntry (DebugCommands.NewFunctionBreakpoint){ DispayType = CommandEntryDisplayType.IconAndText }); - toolbarSet.Add (new CommandEntry (DebugCommands.NewCatchpoint){ DispayType = CommandEntryDisplayType.IconAndText }); + toolbarSet.Add (new CommandEntry (DebugCommands.NewFunctionBreakpoint){ DisplayType = CommandEntryDisplayType.IconAndText }); + toolbarSet.Add (new CommandEntry (DebugCommands.NewCatchpoint){ DisplayType = CommandEntryDisplayType.IconAndText }); // The breakpoint list @@ -162,15 +158,10 @@ namespace MonoDevelop.Debugger UpdateDisplay (); - breakpointUpdatedHandler = DispatchService.GuiDispatch<EventHandler<BreakpointEventArgs>> (OnBreakpointUpdated); - breakpointRemovedHandler = DispatchService.GuiDispatch<EventHandler<BreakpointEventArgs>> (OnBreakpointRemoved); - breakpointAddedHandler = DispatchService.GuiDispatch<EventHandler<BreakpointEventArgs>> (OnBreakpointAdded); - breakpointChangedHandler = DispatchService.GuiDispatch<EventHandler> (OnBreakpointChanged); - - breakpoints.BreakpointAdded += breakpointAddedHandler; - breakpoints.BreakpointRemoved += breakpointRemovedHandler; - breakpoints.Changed += breakpointChangedHandler; - breakpoints.BreakpointUpdated += breakpointUpdatedHandler; + breakpoints.BreakpointAdded += OnBreakpointAdded; + breakpoints.BreakpointRemoved += OnBreakpointRemoved; + breakpoints.Changed += OnBreakpointChanged; + breakpoints.BreakpointUpdated += OnBreakpointUpdated; DebuggingService.PausedEvent += OnDebuggerStatusCheck; DebuggingService.ResumedEvent += OnDebuggerStatusCheck; @@ -178,21 +169,22 @@ namespace MonoDevelop.Debugger tree.RowActivated += OnRowActivated; - DockItemToolbar toolbar = window.GetToolbar (PositionType.Top); + DockItemToolbar toolbar = window.GetToolbar (DockPositionType.Top); toolbar.Add (toolbarSet, sw); toolbar.ShowAll (); } - public void Dispose () + public override void Dispose () { - breakpoints.BreakpointAdded -= breakpointAddedHandler; - breakpoints.BreakpointRemoved -= breakpointRemovedHandler; - breakpoints.Changed -= breakpointChangedHandler; - breakpoints.BreakpointUpdated -= breakpointUpdatedHandler; + breakpoints.BreakpointAdded -= OnBreakpointAdded; + breakpoints.BreakpointRemoved -= OnBreakpointRemoved; + breakpoints.Changed -= OnBreakpointChanged; + breakpoints.BreakpointUpdated -= OnBreakpointUpdated; DebuggingService.PausedEvent -= OnDebuggerStatusCheck; DebuggingService.ResumedEvent -= OnDebuggerStatusCheck; DebuggingService.StoppedEvent -= OnDebuggerStatusCheck; + base.Dispose (); } void ShowPopup (Gdk.EventButton evt) @@ -226,7 +218,7 @@ namespace MonoDevelop.Debugger [CommandHandler (DebugCommands.EnableDisableBreakpoint)] protected void OnEnableDisable () { - breakpoints.Changed -= breakpointChangedHandler; + breakpoints.Changed -= OnBreakpointChanged; try { bool enable = false; @@ -258,7 +250,7 @@ namespace MonoDevelop.Debugger store.SetValue (iter, (int) Columns.Selected, enable); } } finally { - breakpoints.Changed += breakpointChangedHandler; + breakpoints.Changed += OnBreakpointChanged; } } @@ -282,7 +274,7 @@ namespace MonoDevelop.Debugger { bool deleted = false; - breakpoints.BreakpointRemoved -= breakpointRemovedHandler; + breakpoints.BreakpointRemoved -= OnBreakpointRemoved; try { // Note: since we'll be modifying the list of breakpoints, we need to sort @@ -302,7 +294,7 @@ namespace MonoDevelop.Debugger deleted = true; } } finally { - breakpoints.BreakpointRemoved += breakpointRemovedHandler; + breakpoints.BreakpointRemoved += OnBreakpointRemoved; } return deleted; @@ -369,7 +361,7 @@ namespace MonoDevelop.Debugger void ItemToggled (object o, ToggledArgs args) { - breakpoints.Changed -= breakpointChangedHandler; + breakpoints.Changed -= OnBreakpointChanged; try { TreeIter iter; @@ -382,7 +374,7 @@ namespace MonoDevelop.Debugger store.SetValue (iter, (int) Columns.Selected, bp.Enabled); } } finally { - breakpoints.Changed += breakpointChangedHandler; + breakpoints.Changed += OnBreakpointChanged; } } @@ -430,36 +422,38 @@ namespace MonoDevelop.Debugger void OnBreakpointUpdated (object s, BreakpointEventArgs args) { - TreeIter it; - - if (!store.GetIterFirst (out it)) - return; - - do { - var bp = (BreakEvent) store.GetValue (it, (int) Columns.Breakpoint); - if (bp == args.Breakpoint) { - string hitCount = bp.HitCountMode != HitCountMode.None ? bp.CurrentHitCount.ToString () : ""; - string traceVal = (bp.HitAction & HitAction.PrintExpression) != HitAction.None ? bp.LastTraceValue : ""; - store.SetValue (it, (int) Columns.HitCount, hitCount); - store.SetValue (it, (int) Columns.LastTrace, traceVal); - break; - } - } while (store.IterNext (ref it)); + Runtime.RunInMainThread (() => { + TreeIter it; + + if (!store.GetIterFirst (out it)) + return; + + do { + var bp = (BreakEvent) store.GetValue (it, (int) Columns.Breakpoint); + if (bp == args.Breakpoint) { + string hitCount = bp.HitCountMode != HitCountMode.None ? bp.CurrentHitCount.ToString () : ""; + string traceVal = (bp.HitAction & HitAction.PrintExpression) != HitAction.None ? bp.LastTraceValue : ""; + store.SetValue (it, (int) Columns.HitCount, hitCount); + store.SetValue (it, (int) Columns.LastTrace, traceVal); + break; + } + } while (store.IterNext (ref it)); + }); } protected void OnBreakpointAdded (object o, EventArgs args) { - UpdateDisplay (); + Runtime.RunInMainThread ((System.Action)UpdateDisplay); } protected void OnBreakpointRemoved (object o, EventArgs args) { - UpdateDisplay (); + Runtime.RunInMainThread ((System.Action)UpdateDisplay); } protected void OnBreakpointChanged (object o, EventArgs args) { - UpdateDisplay (); + Runtime.RunInMainThread ((System.Action)UpdateDisplay); } void OnDebuggerStatusCheck (object s, EventArgs a) @@ -473,25 +467,16 @@ namespace MonoDevelop.Debugger OnBpJumpTo (); } - public Gtk.Widget Control { + public override Control Control { get { return control; } } - public string Id { - get { return "MonoDevelop.Debugger.BreakpointPad"; } - } - public string DefaultPlacement { get { return "Bottom"; } } - public void RedrawContent () - { - UpdateDisplay (); - } - protected void OnDeleteClicked (object o, EventArgs args) { OnDeleted (); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs index 8e11088ce8..225366c8c1 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs @@ -36,6 +36,7 @@ using Xwt; using Xwt.Drawing; using System.Linq; using System.IO; +using System.Threading.Tasks; namespace MonoDevelop.Debugger { @@ -203,7 +204,7 @@ namespace MonoDevelop.Debugger public BreakpointPropertiesDialog (BreakEvent be, BreakpointType breakpointType) { this.be = be; - LoadExceptionList (); + Task.Run (LoadExceptionList); Initialize (); SetInitialData (); SetLayout (); @@ -351,7 +352,7 @@ namespace MonoDevelop.Debugger if (project != null) { // Check the startup project of the solution too, since the current project may be a library - SolutionEntityItem startup = project.ParentSolution.StartupItem; + SolutionItem startup = project.ParentSolution.StartupItem; entryConditionalExpression.Sensitive = DebuggingService.IsFeatureSupported (project, DebuggerFeatures.ConditionalBreakpoints) || DebuggingService.IsFeatureSupported (startup, DebuggerFeatures.ConditionalBreakpoints); @@ -419,8 +420,8 @@ namespace MonoDevelop.Debugger IdeApp.Workbench.ActiveDocument.Editor != null && IdeApp.Workbench.ActiveDocument.FileName != FilePath.Null) { breakpointLocation.Update (IdeApp.Workbench.ActiveDocument.FileName, - IdeApp.Workbench.ActiveDocument.Editor.Caret.Line, - IdeApp.Workbench.ActiveDocument.Editor.Caret.Column); + IdeApp.Workbench.ActiveDocument.Editor.CaretLine, + IdeApp.Workbench.ActiveDocument.Editor.CaretColumn); entryLocationFile.Text = breakpointLocation.ToString (); stopOnLocation.Active = true; } @@ -441,7 +442,7 @@ namespace MonoDevelop.Debugger public void Update (string location) { if (string.IsNullOrWhiteSpace (location)) { - Warning = GettextCatalog.GetString ("Enter location"); + Warning = GettextCatalog.GetString ("Enter location."); return; } var splitted = location.Split (':'); @@ -455,22 +456,22 @@ namespace MonoDevelop.Debugger } splitted = newSplitted; } else { - Warning = GettextCatalog.GetString ("File does not exist"); + Warning = GettextCatalog.GetString ("File does not exist."); return; } } if (splitted.Length < 2) { - Warning = GettextCatalog.GetString ("Missing ':' for line declaration"); + Warning = GettextCatalog.GetString ("Missing ':' for line declaration."); return; } FileName = splitted [0]; if (!int.TryParse (splitted [1], out line)) { - Warning = GettextCatalog.GetString ("Line is not a number"); + Warning = GettextCatalog.GetString ("Line is not a number."); return; } if (splitted.Length > 2 && !int.TryParse (splitted [2], out column)) { - Warning = GettextCatalog.GetString ("Column is not a number"); + Warning = GettextCatalog.GetString ("Column is not a number."); return; } else { column = 1; @@ -486,7 +487,7 @@ namespace MonoDevelop.Debugger public void Update (string filePath, int line, int column) { if (!System.IO.File.Exists (filePath)) { - Warning = GettextCatalog.GetString ("File does not exist"); + Warning = GettextCatalog.GetString ("File does not exist."); } else { Warning = ""; } @@ -617,7 +618,7 @@ namespace MonoDevelop.Debugger if (breakpointActionPrint.Active && string.IsNullOrWhiteSpace (entryPrintExpression.Text)) { warningPrintExpression.Show (); - warningPrintExpression.ToolTip = GettextCatalog.GetString ("Trace expression not specified"); + warningPrintExpression.ToolTip = GettextCatalog.GetString ("Enter trace expression."); result = false; } @@ -627,13 +628,13 @@ namespace MonoDevelop.Debugger if (stopOnFunction.Active) { if (text.Length == 0) { warningFunction.Show (); - warningFunction.ToolTip = GettextCatalog.GetString ("Function name not specified"); + warningFunction.ToolTip = GettextCatalog.GetString ("Enter function name."); result = false; } if (!TryParseFunction (text, out parsedFunction, out parsedParamTypes)) { warningFunction.Show (); - warningFunction.ToolTip = GettextCatalog.GetString ("Invalid function syntax"); + warningFunction.ToolTip = GettextCatalog.GetString ("Invalid function syntax."); result = false; } } @@ -645,10 +646,16 @@ namespace MonoDevelop.Debugger result = false; } } else if (stopOnException.Active) { - if (!classes.Contains (entryExceptionType.Text)) { + if (string.IsNullOrWhiteSpace (entryExceptionType.Text)) { warningException.Show (); - warningException.ToolTip = GettextCatalog.GetString ("Exception not identified"); + warningException.ToolTip = GettextCatalog.GetString ("Enter exception type."); result = false; + } else if (!classes.Contains (entryExceptionType.Text)) { + warningException.Show (); + warningException.ToolTip = GettextCatalog.GetString ("Exception not identified in exception list generated from currently selected project."); + //We might be missing some exceptions that are loaded at runtime from outside our project + //or we don't have project at all, hence show warning but still allow user to close window + result = true; } } return result; @@ -684,24 +691,35 @@ namespace MonoDevelop.Debugger return true; } - void LoadExceptionList () + async Task LoadExceptionList () { classes.Add ("System.Exception"); - if (IdeApp.ProjectOperations.CurrentSelectedProject != null) { - var dom = TypeSystemService.GetCompilation (IdeApp.ProjectOperations.CurrentSelectedProject); - foreach (var t in dom.FindType (typeof (Exception)).GetSubTypeDefinitions ()) - classes.Add (t.ReflectionName); - } else { - // no need to unload this assembly context, it's not cached. - var unresolvedAssembly = TypeSystemService.LoadAssemblyContext (Runtime.SystemAssemblyService.CurrentRuntime, MonoDevelop.Core.Assemblies.TargetFramework.Default, typeof(Uri).Assembly.Location); - var mscorlib = TypeSystemService.LoadAssemblyContext (Runtime.SystemAssemblyService.CurrentRuntime, MonoDevelop.Core.Assemblies.TargetFramework.Default, typeof(object).Assembly.Location); - if (unresolvedAssembly != null && mscorlib != null) { - var dom = new ICSharpCode.NRefactory.TypeSystem.Implementation.SimpleCompilation (unresolvedAssembly, mscorlib); - foreach (var t in dom.FindType (typeof (Exception)).GetSubTypeDefinitions ()) - classes.Add (t.ReflectionName); + try { + Microsoft.CodeAnalysis.Compilation compilation = null; + Microsoft.CodeAnalysis.ProjectId dummyProjectId = null; + if (IdeApp.ProjectOperations.CurrentSelectedProject != null) { + compilation = await TypeSystemService.GetCompilationAsync (IdeApp.ProjectOperations.CurrentSelectedProject); + } + if (compilation == null) { + //no need to unload this assembly context, it's not cached. + dummyProjectId = Microsoft.CodeAnalysis.ProjectId.CreateNewId ("GetExceptionsProject"); + compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create ("GetExceptions") + .AddReferences (MetadataReferenceCache.LoadReference (dummyProjectId, System.Reflection.Assembly.GetAssembly (typeof (object)).Location))//corlib + .AddReferences (MetadataReferenceCache.LoadReference (dummyProjectId, System.Reflection.Assembly.GetAssembly (typeof (Uri)).Location));//System.dll } + var exceptionClass = compilation.GetTypeByMetadataName ("System.Exception"); + foreach (var t in compilation.GlobalNamespace.GetAllTypes ().Where ((arg) => arg.IsDerivedFromClass (exceptionClass))) { + classes.Add (t.GetFullMetadataName ()); + } + if (dummyProjectId != null) { + MetadataReferenceCache.RemoveReferences (dummyProjectId); + } + } catch (Exception e) { + LoggingService.LogError ("Failed to obtain exceptions list in breakpoint dialog.", e); } - entryExceptionType.SetCodeCompletionList (classes.ToList ()); + await Runtime.RunInMainThread (() => { + entryExceptionType.SetCodeCompletionList (classes.ToList ()); + }); } public BreakEvent GetBreakEvent () @@ -824,4 +842,4 @@ namespace MonoDevelop.Debugger base.Dispose (disposing); } } -}
\ No newline at end of file +} diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BusyEvaluatorDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BusyEvaluatorDialog.cs index d82779bcbc..48bdacad81 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BusyEvaluatorDialog.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BusyEvaluatorDialog.cs @@ -26,27 +26,46 @@ using System; using Mono.Debugging.Client; +using MonoDevelop.Ide; namespace MonoDevelop.Debugger { - public partial class BusyEvaluatorDialog : Gtk.Dialog + class BusyEvaluator { - public BusyEvaluatorDialog () - { - this.Build (); - //Prevent closing dialog via X button, user can either wait with - //dialog open or press "Stop Debugger" button - DeleteEvent += (o, args) => args.RetVal = true; + public BusyEvaluatorDialog Dialog { + get; + private set; } public void UpdateBusyState (BusyStateEventArgs args) { if (!args.IsBusy) { - Hide (); + if (Dialog != null) {
+ Dialog.Destroy ();
+ Dialog.Dispose ();
+ Dialog = null; + } } else { - Show (); + if (Dialog == null) + Dialog = new BusyEvaluatorDialog (); + + Dialog.Show (); } } + } + + public partial class BusyEvaluatorDialog : Gtk.Dialog + { + public BusyEvaluatorDialog () + { + this.Build (); + //Prevent closing dialog via X button, user can either wait with + //dialog open or press "Stop Debugger" button + DeleteEvent += (o, args) => args.RetVal = true; + Modal = true; + TransientFor = MessageService.RootWindow; + DestroyWithParent = true; + } protected virtual void OnButtonCancelClicked (object sender, System.EventArgs e) { diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs index 7eb9ee537d..cb282f2f2b 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs @@ -79,40 +79,18 @@ namespace MonoDevelop.Debugger IdeApp.ProjectOperations.CurrentSelectedBuildTarget; } - internal static void BuildAndDebug () + internal async static void BuildAndDebug () { if (!DebuggingService.IsDebuggingSupported && !IdeApp.ProjectOperations.CurrentRunOperation.IsCompleted) { MonoDevelop.Ide.Commands.StopHandler.StopBuildOperations (); - IdeApp.ProjectOperations.CurrentRunOperation.WaitForCompleted (); + await IdeApp.ProjectOperations.CurrentRunOperation.Task; } if (IdeApp.Workspace.IsOpen) { var it = GetRunTarget (); - var op = IdeApp.ProjectOperations.CheckAndBuildForExecute (it); - op.Completed += delegate { - if (op.Success) - ExecuteSolution (it); - }; + ExecuteSolution (it); return; } - - Document doc = IdeApp.Workbench.ActiveDocument; - if (doc == null) - return; - - if (!IdeApp.Preferences.BuildBeforeExecuting) { - ExecuteDocument (doc); - return; - } - - doc.Save (); - IAsyncOperation docOp = doc.Build (); - docOp.Completed += delegate { - if (docOp.SuccessWithWarnings && !IdeApp.Preferences.RunWithWarnings) - return; - if (docOp.Success) - ExecuteDocument (doc); - }; } static void ExecuteSolution (IBuildTarget target) @@ -123,14 +101,6 @@ namespace MonoDevelop.Debugger IdeApp.ProjectOperations.Execute (target); } - static void ExecuteDocument (Document doc) - { - if (doc.CanDebug ()) - doc.Debug (); - else - doc.Run (); - } - protected override void Run () { if (DebuggingService.IsPaused) { @@ -159,7 +129,7 @@ namespace MonoDevelop.Debugger // just run, so the label has to be changed accordingly. if (!DebuggingService.IsDebuggingSupported) { info.Text = IdeApp.ProjectOperations.CurrentRunOperation.IsCompleted ? GettextCatalog.GetString ("Start Without Debugging") : GettextCatalog.GetString ("Restart Without Debugging"); - info.Icon = "gtk-execute"; + info.Icon = Stock.RunProgramIcon; } if (IdeApp.Workspace.IsOpen) { @@ -171,23 +141,18 @@ namespace MonoDevelop.Debugger info.Enabled = canExecute && (IdeApp.ProjectOperations.CurrentRunOperation.IsCompleted || !DebuggingService.IsDebuggingSupported); } else { - Document doc = IdeApp.Workbench.ActiveDocument; - info.Enabled = (doc != null && doc.IsBuildTarget) && (doc.CanRun () || doc.CanDebug ()); + info.Enabled = false; } } } class DebugEntryHandler: CommandHandler { - protected override void Run () + protected async override void Run () { IBuildTarget entry = IdeApp.ProjectOperations.CurrentSelectedBuildTarget; - var op = IdeApp.ProjectOperations.CheckAndBuildForExecute (entry); - op.Completed += delegate { - if (op.Success) - IdeApp.ProjectOperations.Debug (entry); - }; + await IdeApp.ProjectOperations.Debug (entry).Task; } protected override void Update (CommandInfo info) @@ -386,13 +351,13 @@ namespace MonoDevelop.Debugger Breakpoint bp; lock (breakpoints) - bp = breakpoints.Toggle (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line, IdeApp.Workbench.ActiveDocument.Editor.Caret.Column); + bp = breakpoints.Toggle (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine, IdeApp.Workbench.ActiveDocument.Editor.CaretColumn); // If the breakpoint could not be inserted in the caret location, move the caret // to the real line of the breakpoint, so that if the Toggle command is run again, // this breakpoint will be removed - if (bp != null && bp.Line != IdeApp.Workbench.ActiveDocument.Editor.Caret.Line) - IdeApp.Workbench.ActiveDocument.Editor.Caret.Line = bp.Line; + if (bp != null && bp.Line != IdeApp.Workbench.ActiveDocument.Editor.CaretLine) + IdeApp.Workbench.ActiveDocument.Editor.CaretLine = bp.Line; } protected override void Update (CommandInfo info) @@ -404,7 +369,7 @@ namespace MonoDevelop.Debugger !DebuggingService.Breakpoints.IsReadOnly; } } - + class EnableDisableBreakpointHandler: CommandHandler { protected override void Run () @@ -412,7 +377,7 @@ namespace MonoDevelop.Debugger var breakpoints = DebuggingService.Breakpoints; lock (breakpoints) { - foreach (var bp in breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line)) + foreach (var bp in breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine)) bp.Enabled = !bp.Enabled; } } @@ -427,7 +392,7 @@ namespace MonoDevelop.Debugger IdeApp.Workbench.ActiveDocument.FileName != FilePath.Null && !breakpoints.IsReadOnly) { lock (breakpoints) - info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line).Count > 0; + info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine).Count > 0; } else { info.Enabled = false; } @@ -487,7 +452,7 @@ namespace MonoDevelop.Debugger lock (breakpoints) { IEnumerable<Breakpoint> brs = breakpoints.GetBreakpointsAtFileLine ( IdeApp.Workbench.ActiveDocument.FileName, - IdeApp.Workbench.ActiveDocument.Editor.Caret.Line); + IdeApp.Workbench.ActiveDocument.Editor.CaretLine); List<Breakpoint> list = new List<Breakpoint> (brs); foreach (Breakpoint bp in list) @@ -505,7 +470,7 @@ namespace MonoDevelop.Debugger IdeApp.Workbench.ActiveDocument.FileName != FilePath.Null && !breakpoints.IsReadOnly) { lock (breakpoints) - info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line).Count > 0; + info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine).Count > 0; } else { info.Enabled = false; } @@ -590,11 +555,11 @@ namespace MonoDevelop.Debugger var doc = IdeApp.Workbench.ActiveDocument; if (DebuggingService.IsPaused) { - DebuggingService.RunToCursor (doc.FileName, doc.Editor.Caret.Line, doc.Editor.Caret.Column); + DebuggingService.RunToCursor (doc.FileName, doc.Editor.CaretLine, doc.Editor.CaretColumn); return; } - var bp = new RunToCursorBreakpoint (doc.FileName, doc.Editor.Caret.Line, doc.Editor.Caret.Column); + var bp = new RunToCursorBreakpoint (doc.FileName, doc.Editor.CaretLine, doc.Editor.CaretColumn); DebuggingService.Breakpoints.Add (bp); DebugHandler.BuildAndDebug (); } @@ -616,7 +581,7 @@ namespace MonoDevelop.Debugger info.Enabled = target != null && IdeApp.ProjectOperations.CanDebug (target); } else { - info.Enabled = doc.IsBuildTarget && doc.CanDebug (); + info.Enabled = false; } } else { info.Enabled = false; @@ -634,7 +599,7 @@ namespace MonoDevelop.Debugger lock (breakpoints) { brs = breakpoints.GetBreakpointsAtFileLine ( IdeApp.Workbench.ActiveDocument.FileName, - IdeApp.Workbench.ActiveDocument.Editor.Caret.Line); + IdeApp.Workbench.ActiveDocument.Editor.CaretLine); } if (brs.Count > 0) { @@ -653,7 +618,7 @@ namespace MonoDevelop.Debugger IdeApp.Workbench.ActiveDocument.FileName != FilePath.Null && !breakpoints.IsReadOnly) { lock (breakpoints) - info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.Caret.Line).Count > 0; + info.Enabled = breakpoints.GetBreakpointsAtFileLine (IdeApp.Workbench.ActiveDocument.FileName, IdeApp.Workbench.ActiveDocument.Editor.CaretLine).Count > 0; } else { info.Enabled = false; } @@ -721,7 +686,7 @@ namespace MonoDevelop.Debugger var doc = IdeApp.Workbench.ActiveDocument; try { - DebuggingService.SetNextStatement (doc.FileName, doc.Editor.Caret.Line, doc.Editor.Caret.Column); + DebuggingService.SetNextStatement (doc.FileName, doc.Editor.CaretLine, doc.Editor.CaretColumn); } catch (Exception e) { if (e is NotSupportedException || e.InnerException is NotSupportedException) { MessageService.ShowError ("Unable to set the next statement to this location."); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs index 55cc770269..fb30399b30 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugExecutionHandlerFactory.cs @@ -34,6 +34,7 @@ using MonoDevelop.Core.Execution; using Mono.Debugging.Client; using MonoDevelop.Ide.Gui; using Mono.Debugging; +using System.Threading.Tasks; namespace MonoDevelop.Debugger { @@ -44,103 +45,42 @@ namespace MonoDevelop.Debugger return DebuggingService.CanDebugCommand (command); } - public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console) + public ProcessAsyncOperation Execute (ExecutionCommand command, OperationConsole console) { if (!CanExecute (command)) return null; - DebugExecutionHandler h = new DebugExecutionHandler (null); - return h.Execute (command, console); + return DebuggingService.Run (command, console); } } - - class DebugExecutionHandler: IProcessAsyncOperation + + class DebugAsyncOperation: ProcessAsyncOperation { - bool done; - ManualResetEvent stopEvent; - DebuggerEngine factory; - - public DebugExecutionHandler (DebuggerEngine factory) - { - this.factory = factory; - DebuggingService.StoppedEvent += new EventHandler (OnStopDebug); - } - - public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console) - { - DebuggingService.InternalRun (command, factory, console); - return this; - } - - public void Cancel () + TaskCompletionSource<int> taskSource; + + public DebugAsyncOperation () { - DebuggingService.Stop (); + taskSource = new TaskCompletionSource<int> (); + DebuggingService.StoppedEvent += OnStopDebug; + CancellationTokenSource = new CancellationTokenSource (); + CancellationTokenSource.Token.Register (DebuggingService.Stop); + Task = taskSource.Task; } - - public void WaitForCompleted () + + public void Cleanup () { - lock (this) { - if (done) return; - if (stopEvent == null) - stopEvent = new ManualResetEvent (false); + if (taskSource != null) { + taskSource.SetResult (0); + taskSource = null; } - stopEvent.WaitOne (); - } - - public int ExitCode { - get { return 0; } - } - - public bool IsCompleted { - get { return done; } - } - - public bool Success { - get { return true; } - } - - public bool SuccessWithWarnings { - get { return true; } + DebuggingService.StoppedEvent -= OnStopDebug; } void OnStopDebug (object sender, EventArgs args) { - lock (this) { - done = true; - if (stopEvent != null) - stopEvent.Set (); - if (completedEvent != null) - completedEvent (this); - } - - DebuggingService.StoppedEvent -= new EventHandler (OnStopDebug); - } - - event OperationHandler IAsyncOperation.Completed { - add { - bool raiseNow = false; - lock (this) { - if (done) - raiseNow = true; - else - completedEvent += value; - } - if (raiseNow) - value (this); + if (taskSource != null) { + taskSource.SetResult (0); + taskSource = null; } - remove { - lock (this) { - completedEvent -= value; - } - } - } - - //FIXME: - public int ProcessId { - get { return -1; } } - - event OperationHandler completedEvent; - - void IDisposable.Dispose () {} } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugTextMarker.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugTextMarker.cs deleted file mode 100644 index 6bd1bcd4d8..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugTextMarker.cs +++ /dev/null @@ -1,281 +0,0 @@ -// DebugTextMarker.cs -// -// Authors: Lluis Sanchez Gual <lluis@novell.com> -// Jeffrey Stedfast <jeff@xamarin.com> -// -// Copyright (c) 2008 Novell, Inc (http://www.novell.com) -// Copyright (c) 2013 Xamarin Inc. (http://www.xamarin.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// - -using System; -using System.Linq; - -using Mono.TextEditor; -using Mono.TextEditor.Highlighting; - -using MonoDevelop.Components; - -using Xwt.Drawing; - -namespace MonoDevelop.Debugger -{ - public abstract class DebugTextMarker : MarginMarker - { - protected DebugTextMarker (TextEditor editor) - { - Editor = editor; - } - - protected abstract Cairo.Color BackgroundColor { - get; - } - - protected abstract Cairo.Color BorderColor { - get; - } - - protected Cairo.Color GetBorderColor (AmbientColor color) - { - if (color.HasBorderColor) - return color.BorderColor; - return color.Color; - } - - protected TextEditor Editor { - get; private set; - } - - public override bool CanDrawBackground (Margin margin) - { - return margin is TextViewMargin; - } - - public override bool CanDrawForeground (Margin margin) - { - return margin is IconMargin; - } - - public override bool DrawBackground (TextEditor editor, Cairo.Context cr, double y, LineMetrics metrics) - { - // check, if a message bubble is active in that line. - if (LineSegment != null && LineSegment.Markers.Any (m => m != this && (m is IExtendingTextLineMarker))) - return false; - - var sidePadding = 4; - var rounding = editor.LineHeight / 2 - 1; - - var d = metrics.TextRenderEndPosition - metrics.TextRenderStartPosition; - if (d > 0) { - cr.LineWidth = 1; - cr.RoundedRectangle (metrics.TextRenderStartPosition, Math.Floor (y) + 0.5, d + sidePadding, metrics.LineHeight - 1, rounding); - cr.SetSourceColor (BackgroundColor); - cr.FillPreserve (); - cr.SetSourceColor (BorderColor); - cr.Stroke (); - } - - return base.DrawBackground (editor, cr, y, metrics); - } - - public override void DrawForeground (TextEditor editor, Cairo.Context cr, MarginDrawMetrics metrics) - { - double size = metrics.Margin.Width; - double borderLineWidth = cr.LineWidth; - - double x = Math.Floor (metrics.Margin.XOffset - borderLineWidth / 2); - double y = Math.Floor (metrics.Y + (metrics.Height - size) / 2); - - DrawMarginIcon (cr, x, y, size); - } - - protected virtual void SetForegroundColor (ChunkStyle style) - { - } - - public override ChunkStyle GetStyle (ChunkStyle baseStyle) - { - if (baseStyle == null) - return null; - - var style = new ChunkStyle (baseStyle); - // style.Background = BackgroundColor; - SetForegroundColor (style); - - return style; - } - - protected void DrawImage (Cairo.Context cr, Image image, double x, double y, double size) - { - var deltaX = size / 2 - image.Width / 2 + 0.5f; - var deltaY = size / 2 - image.Height / 2 + 0.5f; - - cr.DrawImage (Editor, image, Math.Round (x + deltaX), Math.Round (y + deltaY)); - } - - protected virtual void DrawMarginIcon (Cairo.Context cr, double x, double y, double size) - { - } - } - - public class BreakpointTextMarker : DebugTextMarker - { - static readonly Image breakpoint = Image.FromResource ("gutter-breakpoint-15.png"); - static readonly Image tracepoint = Image.FromResource ("gutter-tracepoint-15.png"); - - public BreakpointTextMarker (TextEditor editor, bool tracepoint) : base (editor) - { - IsTracepoint = tracepoint; - } - - public bool IsTracepoint { - get; private set; - } - - protected override Cairo.Color BackgroundColor { - get { return Editor.ColorStyle.BreakpointMarker.Color; } - } - - protected override Cairo.Color BorderColor { - get { return GetBorderColor (Editor.ColorStyle.BreakpointMarker); } - } - - protected override void SetForegroundColor (ChunkStyle style) - { - style.Foreground = Editor.ColorStyle.BreakpointText.Foreground; - } - - protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size) - { - DrawImage (cr, IsTracepoint ? tracepoint : breakpoint, x, y, size); - } - } - - public class DisabledBreakpointTextMarker : DebugTextMarker - { - static readonly Image breakpoint = Image.FromResource ("gutter-breakpoint-disabled-15.png"); - static readonly Image tracepoint = Image.FromResource ("gutter-tracepoint-disabled-15.png"); - - public DisabledBreakpointTextMarker (TextEditor editor, bool tracepoint) : base (editor) - { - IsTracepoint = tracepoint; - } - - public bool IsTracepoint { - get; private set; - } - - protected override Cairo.Color BackgroundColor { - get { return Editor.ColorStyle.BreakpointMarkerDisabled.Color; } - } - - protected override Cairo.Color BorderColor { - get { return GetBorderColor (Editor.ColorStyle.BreakpointMarkerDisabled); } - } - - protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size) - { - DrawImage (cr, IsTracepoint ? tracepoint : breakpoint, x, y, size); - } - } - - public class InvalidBreakpointTextMarker : DebugTextMarker - { - static readonly Image breakpoint = Image.FromResource ("gutter-breakpoint-invalid-15.png"); - static readonly Image tracepoint = Image.FromResource ("gutter-tracepoint-invalid-15.png"); - - public InvalidBreakpointTextMarker (TextEditor editor, bool tracepoint) : base (editor) - { - IsTracepoint = tracepoint; - } - - public bool IsTracepoint { - get; private set; - } - - protected override Cairo.Color BackgroundColor { - get { return Editor.ColorStyle.BreakpointMarkerInvalid.Color; } - } - - protected override Cairo.Color BorderColor { - get { return GetBorderColor (Editor.ColorStyle.BreakpointMarkerInvalid); } - } - - protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size) - { - DrawImage (cr, IsTracepoint ? tracepoint : breakpoint, x, y, size); - } - } - - public class CurrentDebugLineTextMarker : DebugTextMarker - { - static readonly Image currentLine = Image.FromResource ("gutter-execution-15.png"); - - public CurrentDebugLineTextMarker (TextEditor editor) : base (editor) - { - } - - protected override Cairo.Color BackgroundColor { - get { return Editor.ColorStyle.DebuggerCurrentLineMarker.Color; } - } - - protected override Cairo.Color BorderColor { - get { return GetBorderColor (Editor.ColorStyle.DebuggerCurrentLineMarker); } - } - - protected override void SetForegroundColor (ChunkStyle style) - { - style.Foreground = Editor.ColorStyle.DebuggerCurrentLine.Foreground; - } - - protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size) - { - DrawImage (cr, currentLine, x, y, size); - } - } - - public class DebugStackLineTextMarker : DebugTextMarker - { - static readonly Image stackLine = Image.FromResource ("gutter-stack-15.png"); - - public DebugStackLineTextMarker (TextEditor editor) : base (editor) - { - } - - protected override Cairo.Color BackgroundColor { - get { return Editor.ColorStyle.DebuggerStackLineMarker.Color; } - } - - protected override Cairo.Color BorderColor { - get { return GetBorderColor (Editor.ColorStyle.DebuggerStackLineMarker); } - } - - protected override void SetForegroundColor (ChunkStyle style) - { - style.Foreground = Editor.ColorStyle.DebuggerStackLine.Foreground; - } - - protected override void DrawMarginIcon (Cairo.Context cr, double x, double y, double size) - { - DrawImage (cr, stackLine, x, y, size); - } - } -} diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs index f67ee7864a..8c4e058e05 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerConsoleView.cs @@ -30,6 +30,7 @@ using System.Collections.Generic; using MonoDevelop.Ide; using MonoDevelop.Components; using MonoDevelop.Ide.CodeCompletion; +using MonoDevelop.Ide.Editor.Extension; namespace MonoDevelop.Debugger { @@ -51,7 +52,7 @@ namespace MonoDevelop.Debugger TextView.KeyReleaseEvent += OnEditKeyRelease; TextView.FocusOutEvent += TextView_FocusOutEvent; - IdeApp.Preferences.CustomOutputPadFontChanged += OnCustomOutputPadFontChanged; + IdeApp.Preferences.CustomOutputPadFont.Changed += OnCustomOutputPadFontChanged; CompletionWindowManager.WindowClosed += OnCompletionWindowClosed; } @@ -274,7 +275,7 @@ namespace MonoDevelop.Debugger if (keyHandled) return; - CompletionWindowManager.PostProcessKeyEvent (key, keyChar, modifier); + CompletionWindowManager.PostProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier)); PopupCompletion (); } @@ -292,7 +293,7 @@ namespace MonoDevelop.Debugger } if (currentCompletionData != null) { - if ((keyHandled = CompletionWindowManager.PreProcessKeyEvent (key, keyChar, modifier))) + if ((keyHandled = CompletionWindowManager.PreProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier)))) return true; } @@ -331,6 +332,9 @@ namespace MonoDevelop.Debugger int Position { get { return Cursor.Offset - TokenBegin.Offset; } + set { + throw new NotSupportedException (); + } } #region ICompletionWidget implementation @@ -370,6 +374,15 @@ namespace MonoDevelop.Debugger get { return Position; } + set { + Position = value; + } + } + + double ICompletionWidget.ZoomLevel { + get { + return 1; + } } char ICompletionWidget.GetChar (int offset) @@ -457,7 +470,7 @@ namespace MonoDevelop.Debugger protected override void OnDestroyed () { - IdeApp.Preferences.CustomOutputPadFontChanged -= OnCustomOutputPadFontChanged; + IdeApp.Preferences.CustomOutputPadFont.Changed -= OnCustomOutputPadFontChanged; CompletionWindowManager.WindowClosed -= OnCompletionWindowClosed; CompletionWindowManager.HideWindow (); TextView.FocusOutEvent -= TextView_FocusOutEvent; diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs index 85c5ef476b..ec6d84fafd 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs @@ -26,6 +26,7 @@ using System; using Mono.Debugging.Client; +using MonoDevelop.Components; using MonoDevelop.Ide.Gui.Dialogs; using Xwt; using MonoDevelop.Core; @@ -36,7 +37,7 @@ namespace MonoDevelop.Debugger { DebuggerOptionsPanelWidget w; - public override Gtk.Widget CreatePanelWidget () + public override Control CreatePanelWidget () { w = new DebuggerOptionsPanelWidget (); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs index 3422b1cf87..22d0c1fc1f 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs @@ -38,8 +38,6 @@ using MonoDevelop.Ide.Gui; using MonoDevelop.Ide.Gui.Content; using MonoDevelop.Projects; using MonoDevelop.Debugger.Viewers; -using ICSharpCode.NRefactory.Semantics; -using ICSharpCode.NRefactory.TypeSystem; /* * Some places we should be doing some error handling we used to toss @@ -47,6 +45,8 @@ using ICSharpCode.NRefactory.TypeSystem; */ using MonoDevelop.Ide.TextEditing; using System.Linq; +using System.Threading.Tasks; +using MonoDevelop.Ide.TypeSystem; namespace MonoDevelop.Debugger { @@ -62,7 +62,8 @@ namespace MonoDevelop.Debugger static readonly BreakpointStore breakpoints = new BreakpointStore (); static readonly DebugExecutionHandlerFactory executionHandlerFactory; - static IConsole console; + static OperationConsole console; + static IDisposable cancelRegistration; static Dictionary<long, SourceLocation> nextStatementLocations = new Dictionary<long, SourceLocation> (); static DebuggerEngine currentEngine; @@ -72,10 +73,12 @@ namespace MonoDevelop.Debugger static ExceptionCaughtMessage exceptionDialog; - static BusyEvaluatorDialog busyDialog; + static BusyEvaluator busyEvaluator; static StatusBarIcon busyStatusIcon; static bool isBusy; + static DebugAsyncOperation currentDebugOperation = new DebugAsyncOperation (); + static public event EventHandler DebugSessionStarted; static public event EventHandler PausedEvent; static public event EventHandler ResumedEvent; @@ -97,10 +100,7 @@ namespace MonoDevelop.Debugger IdeApp.Workspace.StoringUserPreferences += OnStoreUserPrefs; IdeApp.Workspace.LoadingUserPreferences += OnLoadUserPrefs; IdeApp.Workspace.LastWorkspaceItemClosed += OnSolutionClosed; - busyDialog = new BusyEvaluatorDialog (); - busyDialog.Modal = true; - busyDialog.TransientFor = MessageService.RootWindow; - busyDialog.DestroyWithParent = true; + busyEvaluator = new BusyEvaluator (); }; AddinManager.AddExtensionNodeHandler (FactoriesPath, delegate { // Refresh the engines list @@ -138,7 +138,8 @@ namespace MonoDevelop.Debugger if (liveUpdate) { var bp = new Breakpoint (watch.File, watch.Line); bp.TraceExpression = "{" + watch.Expression + "}"; - bp.HitAction |= HitAction.PrintExpression; + bp.HitAction = HitAction.PrintExpression; + bp.NonUserBreakpoint = true; lock (breakpoints) breakpoints.Add (bp); pinnedWatches.Bind (watch, bp); @@ -378,10 +379,11 @@ namespace MonoDevelop.Debugger session.ConnectionDialogCreator = delegate { return new StatusBarConnectionDialog (); }; + currentDebugOperation = new DebugAsyncOperation (); - console.CancelRequested += OnCancelRequested; + cancelRegistration = console.CancellationToken.Register (Stop); - DispatchService.GuiDispatch (delegate { + Runtime.RunInMainThread (delegate { if (DebugSessionStarted != null) DebugSessionStarted (null, EventArgs.Empty); NotifyLocationChanged (); @@ -394,7 +396,7 @@ namespace MonoDevelop.Debugger { DebuggerSession currentSession; StatusBarIcon currentIcon; - IConsole currentConsole; + OperationConsole currentConsole; lock (cleanup_lock) { if (!IsDebugging) @@ -423,13 +425,14 @@ namespace MonoDevelop.Debugger currentSession.TypeResolverHandler = null; currentSession.OutputWriter = null; currentSession.LogWriter = null; - + currentDebugOperation.Cleanup (); + if (currentConsole != null) { - currentConsole.CancelRequested -= OnCancelRequested; + cancelRegistration.Dispose (); currentConsole.Dispose (); } - DispatchService.GuiDispatch (delegate { + Runtime.RunInMainThread (delegate { HideExceptionCaughtDialog (); if (currentIcon != null) { @@ -452,23 +455,23 @@ namespace MonoDevelop.Debugger static void UnsetDebugLayout () { // Dispatch synchronously to avoid start/stop races - DispatchService.GuiSyncDispatch (delegate { + Runtime.RunInMainThread (delegate { IdeApp.Workbench.HideCommandBar ("Debug"); if (IdeApp.Workbench.CurrentLayout == "Debug") { IdeApp.Workbench.CurrentLayout = oldLayout ?? "Solution"; } oldLayout = null; - }); + }).Wait (); } static void SetDebugLayout () { // Dispatch synchronously to avoid start/stop races - DispatchService.GuiSyncDispatch (delegate { + Runtime.RunInMainThread (delegate { oldLayout = IdeApp.Workbench.CurrentLayout; IdeApp.Workbench.CurrentLayout = "Debug"; IdeApp.Workbench.ShowCommandBar ("Debug"); - }); + }).Wait (); } public static bool IsDebugging { @@ -502,6 +505,7 @@ namespace MonoDevelop.Debugger public static void Resume () { + Runtime.AssertMainThread (); if (CheckIsBusy ()) return; @@ -511,6 +515,7 @@ namespace MonoDevelop.Debugger public static void RunToCursor (string fileName, int line, int column) { + Runtime.AssertMainThread (); if (CheckIsBusy ()) return; @@ -523,6 +528,7 @@ namespace MonoDevelop.Debugger public static void SetNextStatement (string fileName, int line, int column) { + Runtime.AssertMainThread (); if (!IsDebugging || IsRunning || CheckIsBusy ()) return; @@ -533,14 +539,14 @@ namespace MonoDevelop.Debugger NotifyLocationChanged (); } - public static IProcessAsyncOperation Run (string file, IConsole console) + public static ProcessAsyncOperation Run (string file, OperationConsole console) { - return Run (file, null, null, null, console); + var cmd = Runtime.ProcessService.CreateCommand (file); + return Run (cmd, console); } - public static IProcessAsyncOperation Run (string file, string args, string workingDir, IDictionary<string,string> envVars, IConsole console) + public static ProcessAsyncOperation Run (string file, string args, string workingDir, IDictionary<string,string> envVars, OperationConsole console) { - var h = new DebugExecutionHandler (null); var cmd = Runtime.ProcessService.CreateCommand (file); if (args != null) cmd.Arguments = args; @@ -548,24 +554,29 @@ namespace MonoDevelop.Debugger cmd.WorkingDirectory = workingDir; if (envVars != null) cmd.EnvironmentVariables = envVars; + return Run (cmd, console); + } - return h.Execute (cmd, console); + public static ProcessAsyncOperation Run (ExecutionCommand cmd, OperationConsole console, DebuggerEngine engine = null) + { + InternalRun (cmd, engine, console); + return currentDebugOperation; } - public static IAsyncOperation AttachToProcess (DebuggerEngine debugger, ProcessInfo proc) + public static AsyncOperation AttachToProcess (DebuggerEngine debugger, ProcessInfo proc) { currentEngine = debugger; session = debugger.CreateSession (); session.ExceptionHandler = ExceptionHandler; - IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor (); - console = monitor as IConsole; + var monitor = IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor (); + console = monitor.Console; SetupSession (); session.TargetExited += delegate { monitor.Dispose (); }; SetDebugLayout (); session.AttachToProcess (proc, GetUserOptions ()); - return monitor.AsyncOperation; + return currentDebugOperation; } public static DebuggerSessionOptions GetUserOptions () @@ -610,7 +621,7 @@ namespace MonoDevelop.Debugger DisassemblyRequested (null, EventArgs.Empty); } - internal static void InternalRun (ExecutionCommand cmd, DebuggerEngine factory, IConsole c) + internal static void InternalRun (ExecutionCommand cmd, DebuggerEngine factory, OperationConsole c) { if (factory == null) { factory = GetFactoryForCommand (cmd); @@ -623,7 +634,8 @@ namespace MonoDevelop.Debugger DebuggerStartInfo startInfo = factory.CreateDebuggerStartInfo (cmd); startInfo.UseExternalConsole = c is ExternalConsole; - startInfo.CloseExternalConsoleOnExit = c.CloseOnDispose; + if (startInfo.UseExternalConsole) + startInfo.CloseExternalConsoleOnExit = ((ExternalConsole)c).CloseOnDispose; currentEngine = factory; session = factory.CreateSession (); session.ExceptionHandler = ExceptionHandler; @@ -631,7 +643,7 @@ namespace MonoDevelop.Debugger // When using an external console, create a new internal console which will be used // to show the debugger log if (startInfo.UseExternalConsole) - console = (IConsole) IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor (); + console = IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor ().Console; else console = c; @@ -671,19 +683,9 @@ namespace MonoDevelop.Debugger static void DebugWriter (int level, string category, string message) { var logger = console; - var debugLogger = logger as IDebugConsole; - if (logger != null) { - if (debugLogger != null) { - debugLogger.Debug (level, category, message); - } else { - if (level == 0 && string.IsNullOrEmpty (category)) { - logger.Log.Write (message); - } else { - logger.Log.Write (string.Format ("[{0}:{1}] {2}", level, category, message)); - } - } - } + if (logger != null) + logger.Debug (level, category, message); } static void OutputWriter (bool iserr, string text) @@ -698,33 +700,37 @@ namespace MonoDevelop.Debugger } } - static void OnBusyStateChanged (object s, BusyStateEventArgs args) + static async void OnBusyStateChanged (object s, BusyStateEventArgs args) { isBusy = args.IsBusy; - DispatchService.GuiDispatch (delegate { - busyDialog.UpdateBusyState (args); + await Runtime.RunInMainThread (delegate { + busyEvaluator.UpdateBusyState (args); if (args.IsBusy) { if (busyStatusIcon == null) { - busyStatusIcon = IdeApp.Workbench.StatusBar.ShowStatusIcon (ImageService.GetIcon ("md-execute-debug", Gtk.IconSize.Menu)); + busyStatusIcon = IdeApp.Workbench.StatusBar.ShowStatusIcon (ImageService.GetIcon ("md-bug", Gtk.IconSize.Menu)); busyStatusIcon.SetAlertMode (100); busyStatusIcon.ToolTip = GettextCatalog.GetString ("The debugger runtime is not responding. You can wait for it to recover, or stop debugging."); - busyStatusIcon.Clicked += delegate { - MessageService.PlaceDialog (busyDialog, MessageService.RootWindow); - }; + busyStatusIcon.Clicked += OnBusyStatusIconClicked; } } else { if (busyStatusIcon != null) { + busyStatusIcon.Clicked -= OnBusyStatusIconClicked; busyStatusIcon.Dispose (); busyStatusIcon = null; } } }); } + + static void OnBusyStatusIconClicked (object sender, StatusBarIconClickedEventArgs args) + { + MessageService.PlaceDialog (busyEvaluator.Dialog, MessageService.RootWindow); + } static bool CheckIsBusy () { - if (isBusy && !busyDialog.Visible) - MessageService.PlaceDialog (busyDialog, MessageService.RootWindow); + if (isBusy && !busyEvaluator.Dialog.Visible) + MessageService.PlaceDialog (busyEvaluator.Dialog, MessageService.RootWindow); return isBusy; } @@ -733,7 +739,7 @@ namespace MonoDevelop.Debugger nextStatementLocations.Clear (); currentBacktrace = null; - DispatchService.GuiDispatch (delegate { + Runtime.RunInMainThread (delegate { HideExceptionCaughtDialog (); if (ResumedEvent != null) ResumedEvent (null, a); @@ -781,7 +787,7 @@ namespace MonoDevelop.Debugger static void NotifyPaused () { - DispatchService.GuiDispatch (delegate { + Runtime.RunInMainThread (delegate { if (PausedEvent != null) PausedEvent (null, EventArgs.Empty); NotifyLocationChanged (); @@ -792,7 +798,7 @@ namespace MonoDevelop.Debugger static void NotifyException (TargetEventArgs args) { if (args.Type == TargetEventType.UnhandledException || args.Type == TargetEventType.ExceptionThrown) { - DispatchService.GuiDispatch (delegate { + Runtime.RunInMainThread (delegate { if (CurrentFrame != null) { ShowExceptionCaughtDialog (); } @@ -802,6 +808,7 @@ namespace MonoDevelop.Debugger static void NotifyLocationChanged () { + Runtime.AssertMainThread (); if (ExecutionLocationChanged != null) ExecutionLocationChanged (null, EventArgs.Empty); } @@ -820,11 +827,6 @@ namespace MonoDevelop.Debugger CallStackChanged (null, EventArgs.Empty); } - static void OnCancelRequested (object sender, EventArgs args) - { - Stop (); - } - public static void Stop () { if (!IsDebugging) @@ -836,6 +838,8 @@ namespace MonoDevelop.Debugger public static void StepInto () { + Runtime.AssertMainThread (); + if (!IsDebugging || IsRunning || CheckIsBusy ()) return; @@ -845,6 +849,8 @@ namespace MonoDevelop.Debugger public static void StepOver () { + Runtime.AssertMainThread (); + if (!IsDebugging || IsRunning || CheckIsBusy ()) return; @@ -854,6 +860,8 @@ namespace MonoDevelop.Debugger public static void StepOut () { + Runtime.AssertMainThread (); + if (!IsDebugging || IsRunning || CheckIsBusy ()) return; @@ -907,7 +915,7 @@ namespace MonoDevelop.Debugger set { if (currentBacktrace != null && value < currentBacktrace.FrameCount) { currentFrame = value; - DispatchService.GuiDispatch (delegate { + Runtime.RunInMainThread (delegate { NotifyCurrentFrameChanged (); }); } @@ -934,30 +942,32 @@ namespace MonoDevelop.Debugger else currentFrame = -1; - DispatchService.GuiDispatch (delegate { + Runtime.RunInMainThread (delegate { NotifyCallStackChanged (); NotifyCurrentFrameChanged (); NotifyLocationChanged (); }); } - public static void ShowCurrentExecutionLine () + public static async void ShowCurrentExecutionLine () { + Runtime.AssertMainThread (); if (currentBacktrace != null) { var sf = GetCurrentVisibleFrame (); if (sf != null && !string.IsNullOrEmpty (sf.SourceLocation.FileName) && System.IO.File.Exists (sf.SourceLocation.FileName) && sf.SourceLocation.Line != -1) { - Document document = IdeApp.Workbench.OpenDocument (sf.SourceLocation.FileName, null, sf.SourceLocation.Line, 1, OpenDocumentOptions.Debugger); + Document document = await IdeApp.Workbench.OpenDocument (sf.SourceLocation.FileName, null, sf.SourceLocation.Line, 1, OpenDocumentOptions.Debugger); OnDisableConditionalCompilation (new DocumentEventArgs (document)); } } } - public static void ShowNextStatement () + public static async void ShowNextStatement () { + Runtime.AssertMainThread (); var location = NextStatementLocation; if (location != null && System.IO.File.Exists (location.FileName)) { - Document document = IdeApp.Workbench.OpenDocument (location.FileName, null, location.Line, 1, OpenDocumentOptions.Debugger); + Document document = await IdeApp.Workbench.OpenDocument (location.FileName, null, location.Line, 1, OpenDocumentOptions.Debugger); OnDisableConditionalCompilation (new DocumentEventArgs (document)); } else { ShowCurrentExecutionLine (); @@ -1038,7 +1048,7 @@ namespace MonoDevelop.Debugger args.Properties.SetValue ("MonoDevelop.Ide.DebuggingService.PinnedWatches", pinnedWatches); } - static void OnLoadUserPrefs (object s, UserPreferencesEventArgs args) + static Task OnLoadUserPrefs (object s, UserPreferencesEventArgs args) { var elem = args.Properties.GetValue<XmlElement> ("MonoDevelop.Ide.DebuggingService.Breakpoints") ?? args.Properties.GetValue<XmlElement> ("MonoDevelop.Ide.DebuggingService"); @@ -1053,6 +1063,8 @@ namespace MonoDevelop.Debugger lock (breakpoints) pinnedWatches.BindAll (breakpoints); + + return Task.FromResult (true); } static void OnSolutionClosed (object s, EventArgs args) @@ -1067,13 +1079,18 @@ namespace MonoDevelop.Debugger if (doc != null) { ITextEditorResolver textEditorResolver = doc.GetContent <ITextEditorResolver> (); if (textEditorResolver != null) { - var rr = textEditorResolver.GetLanguageItem (doc.Editor.Document.LocationToOffset (location.Line, 1), identifier); - var ns = rr as NamespaceResolveResult; + var rr = textEditorResolver.GetLanguageItem (doc.Editor.LocationToOffset (location.Line, 1), identifier); + var ns = rr as Microsoft.CodeAnalysis.INamespaceSymbol; if (ns != null) - return ns.NamespaceName; - var result = rr as TypeResolveResult; - if (result != null && !result.IsError && !(result.Type.Kind == TypeKind.Dynamic && result.Type.FullName == "dynamic")) - return result.Type.FullName; + return ns.ToDisplayString (Microsoft.CodeAnalysis.SymbolDisplayFormat.CSharpErrorMessageFormat); + var result = rr as Microsoft.CodeAnalysis.INamedTypeSymbol; + if (result != null && !(result.TypeKind == Microsoft.CodeAnalysis.TypeKind.Dynamic && result.ToDisplayString (Microsoft.CodeAnalysis.SymbolDisplayFormat.CSharpErrorMessageFormat) == "dynamic")) { + return result.ToDisplayString (new Microsoft.CodeAnalysis.SymbolDisplayFormat ( + typeQualificationStyle: Microsoft.CodeAnalysis.SymbolDisplayTypeQualificationStyle.NameAndContainingTypesAndNamespaces, + miscellaneousOptions: + Microsoft.CodeAnalysis.SymbolDisplayMiscellaneousOptions.EscapeKeywordIdentifiers | + Microsoft.CodeAnalysis.SymbolDisplayMiscellaneousOptions.UseSpecialTypes)); + } } } return null; @@ -1107,7 +1124,7 @@ namespace MonoDevelop.Debugger return SupportedFeatures != DebuggerFeatures.None; } - public IProcessAsyncOperation Execute (ExecutionCommand cmd, IConsole console) + public ProcessAsyncOperation Execute (ExecutionCommand cmd, OperationConsole console) { // Never called throw new NotImplementedException (); @@ -1128,10 +1145,9 @@ namespace MonoDevelop.Debugger return engine.CanDebugCommand (command); } - public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console) + public ProcessAsyncOperation Execute (ExecutionCommand command, OperationConsole console) { - var h = new DebugExecutionHandler (engine); - return h.Execute (command, console); + return DebuggingService.Run (command, console, engine); } } @@ -1142,7 +1158,7 @@ namespace MonoDevelop.Debugger public void SetMessage (DebuggerStartInfo dsi, string message, bool listening, int attemptNumber) { Gtk.Application.Invoke (delegate { - IdeApp.Workbench.StatusBar.ShowMessage (Stock.StatusConnecting, message); + IdeApp.Workbench.StatusBar.ShowMessage (Ide.Gui.Stock.StatusConnecting, message); }); } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs index 890d216812..fbd0d511a3 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs @@ -35,20 +35,19 @@ using MonoDevelop.Ide.Gui; using MonoDevelop.Ide.Gui.Content; using MonoDevelop.Components.Commands; using MonoDevelop.Ide.Commands; -using TextEditor = Mono.TextEditor.TextEditor; -using Mono.TextEditor; using Mono.Debugging.Client; -using Mono.TextEditor.Highlighting; +using MonoDevelop.Ide.Editor; using Gtk; using MonoDevelop.Ide.Gui.Dialogs; using MonoDevelop.Ide; using System.Security.Cryptography; using Gdk; using MonoDevelop.Components; +using System.Threading.Tasks; namespace MonoDevelop.Debugger { - public class DisassemblyView: AbstractViewContent, IClipboardHandler + public class DisassemblyView: ViewContent, IClipboardHandler { Gtk.ScrolledWindow sw; TextEditor editor; @@ -56,10 +55,10 @@ namespace MonoDevelop.Debugger int lastLine; Dictionary<string,int> addressLines = new Dictionary<string,int> (); bool autoRefill; - CurrentDebugLineTextMarker currentDebugLineMarker; + ICurrentDebugLineTextMarker currentDebugLineMarker; bool dragging; FilePath currentFile; - AsmLineMarker asmMarker = new AsmLineMarker (); + ITextLineMarker asmMarker; List<AssemblyLine> cachedLines = new List<AssemblyLine> (); string cachedLinesAddrSpace; @@ -70,12 +69,11 @@ namespace MonoDevelop.Debugger { ContentName = GettextCatalog.GetString ("Disassembly"); sw = new Gtk.ScrolledWindow (); - editor = new TextEditor (); - editor.Document.ReadOnly = true; - - editor.Options = new CommonTextEditorOptions { - ShowLineNumberMargin = false, - }; + editor = TextEditorFactory.CreateNewEditor (); + editor.IsReadOnly = true; + asmMarker = TextMarkerFactory.CreateAsmLineMarker (editor); + + editor.Options = DefaultSourceEditorOptions.PlainEditor; sw.Add (editor); sw.HscrollbarPolicy = Gtk.PolicyType.Automatic; @@ -88,27 +86,26 @@ namespace MonoDevelop.Debugger sw.ShadowType = Gtk.ShadowType.In; sw.Sensitive = false; - - currentDebugLineMarker = new CurrentDebugLineTextMarker (editor); + DebuggingService.StoppedEvent += OnStop; } - - OverlayMessageWindow messageOverlayWindow; + HBox messageOverlayContent; void ShowLoadSourceFile (StackFrame sf) { - if (messageOverlayWindow != null) { - messageOverlayWindow.Destroy (); - messageOverlayWindow = null; + if (messageOverlayContent != null) { + editor.RemoveOverlay (messageOverlayContent); + messageOverlayContent = null; } - messageOverlayWindow = new OverlayMessageWindow (); + messageOverlayContent = new HBox (); var hbox = new HBox (); hbox.Spacing = 8; var label = new Label (string.Format ("{0} not found. Find source file at alternative location.", Path.GetFileName (sf.SourceLocation.FileName))); hbox.TooltipText = sf.SourceLocation.FileName; - var color = (HslColor)editor.ColorStyle.NotificationText.Foreground; + + var color = (HslColor)editor.Options.GetColorStyle ().NotificationText.Foreground; label.ModifyFg (StateType.Normal, color); int w, h; @@ -119,13 +116,10 @@ namespace MonoDevelop.Debugger openButton.WidthRequest = 60; hbox.PackEnd (openButton, false, false, 0); - var container = new HBox (); const int containerPadding = 8; - container.PackStart (hbox, true, true, containerPadding); - messageOverlayWindow.Child = container; - messageOverlayWindow.ShowOverlay (editor); + messageOverlayContent.PackStart (hbox, true, true, containerPadding); + editor.AddOverlay (messageOverlayContent,() => openButton.SizeRequest ().Width + w + hbox.Spacing * 5 + containerPadding * 2); - messageOverlayWindow.SizeFunc = () => openButton.SizeRequest ().Width + w + hbox.Spacing * 5 + containerPadding * 2; openButton.Clicked += delegate { var dlg = new OpenFileDialog (GettextCatalog.GetString ("File to Open"), MonoDevelop.Components.FileChooserAction.Open) { TransientFor = IdeApp.Workbench.RootWindow, @@ -161,15 +155,11 @@ namespace MonoDevelop.Debugger } } - public override Gtk.Widget Control { + public override Control Control { get { return sw; } } - - public override void Load (string fileName) - { - } public override bool IsFile { get { @@ -180,13 +170,15 @@ namespace MonoDevelop.Debugger public void Update () { autoRefill = false; - - editor.Document.RemoveMarker (currentDebugLineMarker); + if (currentDebugLineMarker != null) { + editor.RemoveMarker (currentDebugLineMarker); + currentDebugLineMarker = null; + } if (DebuggingService.CurrentFrame == null) { - if (messageOverlayWindow != null) { - messageOverlayWindow.Destroy (); - messageOverlayWindow = null; + if (messageOverlayContent != null) { + editor.RemoveOverlay (messageOverlayContent); + messageOverlayContent = null; } sw.Sensitive = false; return; @@ -197,9 +189,9 @@ namespace MonoDevelop.Debugger if (!string.IsNullOrWhiteSpace (sf.SourceLocation.FileName) && sf.SourceLocation.Line != -1 && sf.SourceLocation.FileHash != null) { ShowLoadSourceFile (sf); } else { - if (messageOverlayWindow != null) { - messageOverlayWindow.Destroy (); - messageOverlayWindow = null; + if (messageOverlayContent != null) { + editor.RemoveOverlay (messageOverlayContent); + messageOverlayContent = null; } } if (!string.IsNullOrEmpty (sf.SourceLocation.FileName) && File.Exists (sf.SourceLocation.FileName)) @@ -223,7 +215,7 @@ namespace MonoDevelop.Debugger } currentFile = sf.SourceLocation.FileName; addressLines.Clear (); - editor.Document.Text = string.Empty; + editor.Text = string.Empty; StreamReader sr = new StreamReader (sf.SourceLocation.FileName); string line; int sourceLine = 1; @@ -239,9 +231,9 @@ namespace MonoDevelop.Debugger } sourceLine++; } - editor.Document.Text = sb.ToString (); + editor.Text = sb.ToString (); foreach (int li in asmLineNums) - editor.Document.AddMarker (li, asmMarker); + editor.AddMarker (li, asmMarker); } int aline; if (!addressLines.TryGetValue (GetAddrId (sf.Address, sf.AddressSpace), out aline)) @@ -287,8 +279,8 @@ namespace MonoDevelop.Debugger firstLine = -150; lastLine = 150; - editor.Document.MimeType = "text/plain"; - editor.Document.Text = string.Empty; + editor.MimeType = "text/plain"; + editor.Text = string.Empty; InsertLines (0, firstLine, lastLine, out firstLine, out lastLine); autoRefill = true; @@ -298,19 +290,23 @@ namespace MonoDevelop.Debugger void UpdateCurrentLineMarker (bool moveCaret) { - editor.Document.RemoveMarker (currentDebugLineMarker); + if (currentDebugLineMarker != null) { + editor.RemoveMarker (currentDebugLineMarker); + currentDebugLineMarker = null; + } StackFrame sf = DebuggingService.CurrentFrame; int line; if (addressLines.TryGetValue (GetAddrId (sf.Address, sf.AddressSpace), out line)) { - editor.Document.AddMarker (line, currentDebugLineMarker); + var docLine = editor.GetLine (line); + currentDebugLineMarker = TextMarkerFactory.CreateCurrentDebugLineTextMarker (editor, docLine.Offset, docLine.Length); + editor.AddMarker (line, currentDebugLineMarker); if (moveCaret) { - editor.Caret.Line = line; + editor.CaretLine = line; GLib.Timeout.Add (100, delegate { editor.CenterToCaret (); return false; }); } - editor.QueueDraw (); } } @@ -332,8 +328,9 @@ namespace MonoDevelop.Debugger if (!autoRefill || dragging) return; - DocumentLocation loc = editor.PointToLocation (0, 0); - DocumentLocation loc2 = editor.PointToLocation (0, editor.Allocation.Height); + var loc = editor.PointToLocation (0, 0); + Gtk.Widget widget = editor; + var loc2 = editor.PointToLocation (0, widget.Allocation.Height); //bool moveCaret = editor.Caret.Line >= loc.Line && editor.Caret.Line <= loc2.Line; if (firstLine != int.MinValue && loc.Line < FillMarginLines) { @@ -348,17 +345,17 @@ namespace MonoDevelop.Debugger addressLines = newLines; //if (moveCaret) - editor.Caret.Line += num; + editor.CaretLine += num; double hinc = num * editor.LineHeight; sw.Vadjustment.Value += hinc; UpdateCurrentLineMarker (false); } - if (lastLine != int.MinValue && loc2.Line >= editor.Document.LineCount - FillMarginLines) { - int num = (loc2.Line - (editor.Document.LineCount - FillMarginLines) + 1) * 2; + if (lastLine != int.MinValue && loc2.Line >= editor.LineCount - FillMarginLines) { + int num = (loc2.Line - (editor.LineCount - FillMarginLines) + 1) * 2; int newFirst; - InsertLines (editor.Document.TextLength, lastLine + 1, lastLine + num, out newFirst, out lastLine); + InsertLines (editor.Length, lastLine + 1, lastLine + num, out newFirst, out lastLine); } } @@ -383,15 +380,16 @@ namespace MonoDevelop.Debugger lines.RemoveRange (j + 1, lines.Count - j - 1); int lineCount = 0; - int editorLine = editor.GetTextEditorData ().OffsetToLineNumber (offset); + int editorLine = editor.OffsetToLineNumber (offset); foreach (AssemblyLine li in lines) { if (li.IsOutOfRange) continue; InsertAssemblerLine (sb, editorLine++, li); lineCount++; } - editor.Insert (offset, sb.ToString ()); - editor.Document.CommitUpdateAll (); + editor.IsReadOnly = false; + editor.InsertText (offset, sb.ToString ()); + editor.IsReadOnly = true; if (offset == 0) this.cachedLines.InsertRange (0, lines); else @@ -403,13 +401,13 @@ namespace MonoDevelop.Debugger { addressLines.Clear (); currentFile = null; - if (messageOverlayWindow != null) { - messageOverlayWindow.Destroy (); - messageOverlayWindow = null; + if (messageOverlayContent != null) { + editor.RemoveOverlay (messageOverlayContent); + messageOverlayContent = null; } sw.Sensitive = false; autoRefill = false; - editor.Document.Text = string.Empty; + editor.Text = string.Empty; cachedLines.Clear (); } @@ -453,7 +451,7 @@ namespace MonoDevelop.Debugger void IClipboardHandler.Copy () { - editor.RunAction (ClipboardActions.Copy); + editor.EditorActionHost.ClipboardCopy (); } void IClipboardHandler.Paste () @@ -468,7 +466,7 @@ namespace MonoDevelop.Debugger void IClipboardHandler.SelectAll () { - editor.RunAction (SelectionActions.SelectAll); + editor.EditorActionHost.SelectAll (); } bool IClipboardHandler.EnableCut { @@ -476,7 +474,7 @@ namespace MonoDevelop.Debugger } bool IClipboardHandler.EnableCopy { - get { return !editor.SelectionRange.IsEmpty; } + get { return !editor.IsSomethingSelected; } } bool IClipboardHandler.EnablePaste { @@ -493,107 +491,4 @@ namespace MonoDevelop.Debugger #endregion } - - class AsmLineMarker: TextLineMarker - { - public override ChunkStyle GetStyle (ChunkStyle baseStyle) - { - ChunkStyle st = new ChunkStyle (baseStyle); - st.Foreground = new Cairo.Color (125, 125, 125); - return st; - } - } - - //Copy pasted from SourceEditor - class OverlayMessageWindow : Gtk.EventBox - { - const int border = 8; - - public Func<int> SizeFunc; - - TextEditor textEditor; - - public OverlayMessageWindow () - { - AppPaintable = true; - } - - public void ShowOverlay (TextEditor textEditor) - { - this.textEditor = textEditor; - this.ShowAll (); - textEditor.AddTopLevelWidget (this, 0, 0); - textEditor.SizeAllocated += HandleSizeAllocated; - var child = (TextEditor.EditorContainerChild)textEditor [this]; - child.FixedPosition = true; - } - - protected override void OnDestroyed () - { - base.OnDestroyed (); - if (textEditor != null) { - textEditor.SizeAllocated -= HandleSizeAllocated; - textEditor = null; - } - } - - protected override void OnSizeRequested (ref Requisition requisition) - { - base.OnSizeRequested (ref requisition); - - if (wRequest > 0) { - requisition.Width = wRequest; - } - } - - protected override void OnSizeAllocated (Gdk.Rectangle allocation) - { - base.OnSizeAllocated (allocation); - Resize (allocation); - } - - int wRequest = -1; - - void HandleSizeAllocated (object o, Gtk.SizeAllocatedArgs args) - { - if (SizeFunc != null) { - var req = Math.Min (SizeFunc (), textEditor.Allocation.Width - border * 2); - if (req != wRequest) { - wRequest = req; - QueueResize (); - } - } else { - if (Allocation.Width > textEditor.Allocation.Width - border * 2) { - if (textEditor.Allocation.Width - border * 2 > 0) { - QueueResize (); - } - } - } - Resize (Allocation); - } - - void Resize (Gdk.Rectangle alloc) - { - textEditor.MoveTopLevelWidget (this, (textEditor.Allocation.Width - alloc.Width) / 2, textEditor.Allocation.Height - alloc.Height - 8); - } - - protected override bool OnExposeEvent (Gdk.EventExpose evnt) - { - using (var cr = CairoHelper.Create (evnt.Window)) { - cr.LineWidth = 1; - cr.Rectangle (0, 0, Allocation.Width, Allocation.Height); - cr.SetSourceColor (textEditor.ColorStyle.NotificationText.Background); - cr.Fill (); - cr.RoundedRectangle (0, 0, Allocation.Width, Allocation.Height, 3); - cr.SetSourceColor (textEditor.ColorStyle.NotificationText.Background); - cr.FillPreserve (); - - cr.SetSourceColor (textEditor.ColorStyle.NotificationBorder.Color); - cr.Stroke (); - } - - return base.OnExposeEvent (evnt); - } - - } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs index 779c3da033..da38a4f745 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs @@ -38,12 +38,12 @@ using MonoDevelop.Core; using MonoDevelop.Components; using MonoDevelop.Ide.TextEditing; using MonoDevelop.Ide.Gui.Content; -using Mono.TextEditor; +using MonoDevelop.Ide.Editor.Extension; using MonoDevelop.Ide.Fonts; namespace MonoDevelop.Debugger { - class ExceptionCaughtDialog : Dialog + class ExceptionCaughtDialog : Gtk.Dialog { static readonly Xwt.Drawing.Image WarningIconPixbuf = Xwt.Drawing.Image.FromResource ("toolbar-icon.png"); static readonly Xwt.Drawing.Image WarningIconPixbufInner = Xwt.Drawing.Image.FromResource ("exception-outline-16.png"); @@ -74,6 +74,7 @@ namespace MonoDevelop.Debugger public ExceptionCaughtDialog (ExceptionInfo ex, ExceptionCaughtMessage msg) { this.Name = "wizard_dialog"; + this.ApplyTheme (); selected = exception = ex; message = msg; @@ -132,6 +133,7 @@ namespace MonoDevelop.Debugger { ExceptionValueTreeView = new ObjectValueTreeView (); ExceptionValueTreeView.Frame = DebuggingService.CurrentFrame; + ExceptionValueTreeView.ModifyBase (StateType.Normal, Styles.ExceptionCaughtDialog.TreeBackgroundColor.ToGdkColor ()); ExceptionValueTreeView.AllowPopupMenu = false; ExceptionValueTreeView.AllowExpanding = true; ExceptionValueTreeView.AllowPinning = false; @@ -794,7 +796,7 @@ namespace MonoDevelop.Debugger dlg.Line = Line; } - public override Widget CreateWidget () + public override Control CreateWidget () { var icon = Xwt.Drawing.Image.FromResource ("lightning-16.png"); var image = new Xwt.ImageView (icon).ToGtkWidget (); @@ -888,7 +890,7 @@ namespace MonoDevelop.Debugger dlg.Line = Line; } - public override Widget CreateWidget () + public override Control CreateWidget () { var box = new EventBox (); box.VisibleWindow = false; @@ -908,17 +910,17 @@ namespace MonoDevelop.Debugger class ExceptionCaughtTextEditorExtension : TextEditorExtension { - public override bool KeyPress (Gdk.Key key, char keyChar, Gdk.ModifierType modifier) + public override bool KeyPress (KeyDescriptor descriptor) { - if (key == Gdk.Key.Escape && DebuggingService.ExceptionCaughtMessage != null && + if (descriptor.SpecialKey == SpecialKey.Escape && DebuggingService.ExceptionCaughtMessage != null && !DebuggingService.ExceptionCaughtMessage.IsMinimized && - DebuggingService.ExceptionCaughtMessage.File.CanonicalPath == Document.FileName.CanonicalPath) { + DebuggingService.ExceptionCaughtMessage.File.CanonicalPath == new FilePath(DocumentContext.Name).CanonicalPath) { DebuggingService.ExceptionCaughtMessage.ShowMiniButton (); return true; } - return base.KeyPress (key, keyChar, modifier); + return base.KeyPress (descriptor); } } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs index 2a2f7e93dd..f35088bf82 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExpressionEvaluatorDialog.cs @@ -28,6 +28,7 @@ using System; using MonoDevelop.Ide.CodeCompletion; using Gtk; +using MonoDevelop.Ide.Editor.Extension; namespace MonoDevelop.Debugger { @@ -112,7 +113,7 @@ namespace MonoDevelop.Debugger if (keyHandled) return; - CompletionWindowManager.PostProcessKeyEvent (key, keyChar, modifier); + CompletionWindowManager.PostProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier)); PopupCompletion ((Entry) sender); } @@ -131,7 +132,7 @@ namespace MonoDevelop.Debugger } if (currentCompletionData != null) - args.RetVal = keyHandled = CompletionWindowManager.PreProcessKeyEvent (key, keyChar, modifier); + args.RetVal = keyHandled = CompletionWindowManager.PreProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier)); } void OnEditFocusOut (object sender, FocusOutEventArgs args) @@ -181,6 +182,9 @@ namespace MonoDevelop.Debugger get { return entry.Position; } + set { + entry.Position = value; + } } char ICompletionWidget.GetChar (int offset) @@ -255,6 +259,12 @@ namespace MonoDevelop.Debugger return entry.Style; } } + + double ICompletionWidget.ZoomLevel { + get { + return 1; + } + } #endregion } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Extensions.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Extensions.cs index 8ce3fe3f98..c1a7fac6ae 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Extensions.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Extensions.cs @@ -32,6 +32,7 @@ using MonoDevelop.Ide; using MonoDevelop.Ide.Gui; using MonoDevelop.Projects; using System.Collections.Generic; +using System.Threading.Tasks; namespace MonoDevelop.Debugger { @@ -39,50 +40,51 @@ namespace MonoDevelop.Debugger { public static bool CanDebug (this ProjectOperations opers, IBuildTarget entry) { - ExecutionContext context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors, IdeApp.Workspace.ActiveExecutionTarget); + ExecutionContext context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors.ConsoleFactory, IdeApp.Workspace.ActiveExecutionTarget); return opers.CanExecute (entry, context); } - public static IAsyncOperation Debug (this ProjectOperations opers, IBuildTarget entry) + public static AsyncOperation Debug (this ProjectOperations opers, IBuildTarget entry, bool buildBeforeExecuting = true) { if (opers.CurrentRunOperation != null && !opers.CurrentRunOperation.IsCompleted) return opers.CurrentRunOperation; - ExecutionContext context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors, IdeApp.Workspace.ActiveExecutionTarget); + ExecutionContext context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors.ConsoleFactory, IdeApp.Workspace.ActiveExecutionTarget); - IAsyncOperation op = opers.Execute (entry, context); + AsyncOperation op = opers.Execute (entry, context, buildBeforeExecuting); return op; } public static bool CanDebugFile (this ProjectOperations opers, string file) { - var context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors, IdeApp.Workspace.ActiveExecutionTarget); + var context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors.ConsoleFactory, IdeApp.Workspace.ActiveExecutionTarget); return opers.CanExecuteFile (file, context); } - public static IAsyncOperation DebugFile (this ProjectOperations opers, string file) + public static AsyncOperation DebugFile (this ProjectOperations opers, string file) { - var context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors, IdeApp.Workspace.ActiveExecutionTarget); + var context = new ExecutionContext (DebuggingService.GetExecutionHandler (), IdeApp.Workbench.ProgressMonitors.ConsoleFactory, IdeApp.Workspace.ActiveExecutionTarget); return opers.ExecuteFile (file, context); } - public static IAsyncOperation DebugApplication (this ProjectOperations opers, string executableFile, string args, string workingDir, IDictionary<string,string> envVars) + public static AsyncOperation DebugApplication (this ProjectOperations opers, string executableFile, string args, string workingDir, IDictionary<string,string> envVars) { if (opers.CurrentRunOperation != null && !opers.CurrentRunOperation.IsCompleted) return opers.CurrentRunOperation; var monitor = IdeApp.Workbench.ProgressMonitors.GetRunProgressMonitor (); - var oper = DebuggingService.Run (executableFile, args, workingDir, envVars, (IConsole) monitor); - oper.Completed += delegate { + var oper = DebuggingService.Run (executableFile, args, workingDir, envVars, monitor.Console); + opers.CurrentRunOperation = oper; + + oper.Task.ContinueWith (t => { monitor.Dispose (); - }; + }); - opers.CurrentRunOperation = monitor.AsyncOperation; - return opers.CurrentRunOperation; + return oper; } - public static IAsyncOperation AttachToProcess (this ProjectOperations opers, DebuggerEngine debugger, ProcessInfo proc) + public static AsyncOperation AttachToProcess (this ProjectOperations opers, DebuggerEngine debugger, ProcessInfo proc) { if (opers.CurrentRunOperation != null && !opers.CurrentRunOperation.IsCompleted) return opers.CurrentRunOperation; @@ -92,15 +94,5 @@ namespace MonoDevelop.Debugger opers.CurrentRunOperation = oper; return opers.CurrentRunOperation; } - - public static IAsyncOperation Debug (this Document doc) - { - return IdeApp.ProjectOperations.DebugFile (doc.FileName); - } - - public static bool CanDebug (this Document doc) - { - return doc.FileName != FilePath.Null && IdeApp.ProjectOperations.CanDebugFile (doc.FileName); - } } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/IDebuggerExpressionResolver.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/IDebuggerExpressionResolver.cs index 5844aa54ae..a2009111f0 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/IDebuggerExpressionResolver.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/IDebuggerExpressionResolver.cs @@ -26,13 +26,33 @@ using System; -using Mono.TextEditor; using MonoDevelop.Ide.Gui; +using MonoDevelop.Ide.Editor; +using System.Threading.Tasks; +using Microsoft.CodeAnalysis.Text; +using System.Threading; namespace MonoDevelop.Debugger { + public struct DebugDataTipInfo + { + public readonly TextSpan Span; + public readonly string Text; + + public DebugDataTipInfo (TextSpan span, string text) + { + this.Span = span; + this.Text = text; + } + + public bool IsDefault + { + get { return Span.Length == 0 && Span.Start == 0 && Text == null; } + } + } + public interface IDebuggerExpressionResolver { - string ResolveExpression (TextEditorData editor, Document doc, int offset, out int startOffset); + Task<DebugDataTipInfo> ResolveExpressionAsync (IReadonlyTextDocument editor, DocumentContext doc, int offset, CancellationToken cancellationToken); } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs index dd5ac17ce9..1b5489e8f8 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs @@ -37,13 +37,13 @@ using MonoDevelop.Components; namespace MonoDevelop.Debugger { - public class ImmediatePad: IPadContent + public class ImmediatePad: PadContent { static readonly object mutex = new object(); DebuggerConsoleView view; readonly List<uint> timersList = new List<uint>(); - public void Initialize (IPadWindow container) + protected override void Initialize (IPadWindow container) { view = new DebuggerConsoleView (); view.ConsoleInput += OnViewConsoleInput; @@ -263,21 +263,18 @@ namespace MonoDevelop.Debugger }); } - public void RedrawContent () - { - } - - public Gtk.Widget Control { + public override Control Control { get { return view; } } - public void Dispose () + public override void Dispose () { DebuggingService.PausedEvent -= DebuggerPaused; DebuggingService.ResumedEvent -= DebuggerResumed; DebuggingService.StoppedEvent -= DebuggerStopped; + base.Dispose (); } void DebuggerResumed (object sender, EventArgs e) diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/InfoFrame.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/InfoFrame.cs index ca2cebd26b..882f54980b 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/InfoFrame.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/InfoFrame.cs @@ -1,33 +1,34 @@ -// -// InfoFrame.cs -// -// Author: -// Jeffrey Stedfast <jeff@xamarin.com> -// -// Copyright (c) 2013 Xamarin Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - +//
+// InfoFrame.cs
+//
+// Author:
+// Jeffrey Stedfast <jeff@xamarin.com>
+//
+// Copyright (c) 2013 Xamarin Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
using System; using Gtk; - +using MonoDevelop.Components;
+
namespace MonoDevelop.Debugger { [System.ComponentModel.ToolboxItem (true)] @@ -49,10 +50,10 @@ namespace MonoDevelop.Debugger cr.Rectangle (Allocation.X, Allocation.Y, Allocation.Width, Allocation.Height); cr.ClipPreserve (); - cr.SetSourceRGB (1.00, 0.98, 0.91); + cr.SetSourceColor (Styles.ExceptionCaughtDialog.InfoFrameBackgroundColor.ToCairoColor ()); cr.FillPreserve (); - cr.SetSourceRGB (0.87, 0.83, 0.74); + cr.SetSourceColor (Styles.ExceptionCaughtDialog.InfoFrameBorderColor.ToCairoColor ()); cr.LineWidth = 2; cr.Stroke (); } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Initializer.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Initializer.cs index 530207a977..34a83ac4ab 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Initializer.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Initializer.cs @@ -126,8 +126,10 @@ namespace MonoDevelop.Debugger if (!sf.IsExternalCode && sf.SourceLocation.Line != -1 && !string.IsNullOrEmpty (sf.SourceLocation.FileName) && - //Uncomment condition below once logic for ProjectOnlyCode in runtime is fixed - (/*DebuggingService.CurrentSessionSupportsFeature (DebuggerFeatures.Disassembly) ||*/ System.IO.File.Exists (sf.SourceLocation.FileName))) { + //Uncomment condition below once logic for ProjectOnlyCode in runtime is fixed + (/*DebuggingService.CurrentSessionSupportsFeature (DebuggerFeatures.Disassembly) ||*/ + System.IO.File.Exists (sf.SourceLocation.FileName) || + SourceCodeLookup.FindSourceFile (sf.SourceLocation.FileName, sf.SourceLocation.FileHash).IsNotNull)) { if (n != DebuggingService.CurrentFrameIndex) DebuggingService.CurrentFrameIndex = n; break; diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/LocalsPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/LocalsPad.cs index feb6d9c0c3..e0c66098b2 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/LocalsPad.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/LocalsPad.cs @@ -49,7 +49,7 @@ namespace MonoDevelop.Debugger if (frame == null) return; - tree.ClearAll (); + tree.ClearValues (); tree.AddValues (frame.GetAllLocals ().Where (l => !string.IsNullOrWhiteSpace (l.Name) && l.Name != "?").ToArray ()); } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs index 1a5f3dcf5e..eb6217ecec 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs @@ -29,20 +29,20 @@ using System; using Gtk; using MonoDevelop.Ide.Gui; using Mono.Debugging.Client; +using MonoDevelop.Components; namespace MonoDevelop.Debugger { - public class ObjectValuePad: IPadContent + public class ObjectValuePad: PadContent { protected ObjectValueTreeView tree; readonly ScrolledWindow scrolled; bool needsUpdate; - IPadWindow container; bool initialResume; StackFrame lastFrame; PadFontChanger fontChanger; - public Gtk.Widget Control { + public override Control Control { get { return scrolled; } @@ -76,7 +76,7 @@ namespace MonoDevelop.Debugger initialResume = !DebuggingService.IsDebugging; } - public void Dispose () + public override void Dispose () { if (fontChanger == null) return; @@ -88,21 +88,17 @@ namespace MonoDevelop.Debugger DebuggingService.ResumedEvent -= OnDebuggerResumed; DebuggingService.StoppedEvent -= OnDebuggerStopped; DebuggingService.EvaluationOptionsChanged -= OnEvaluationOptionsChanged; + base.Dispose (); } - public void Initialize (IPadWindow container) + protected override void Initialize (IPadWindow container) { - this.container = container; container.PadContentShown += delegate { if (needsUpdate) OnUpdateList (); }; } - public void RedrawContent () - { - } - public virtual void OnUpdateList () { needsUpdate = false; @@ -113,7 +109,7 @@ namespace MonoDevelop.Debugger protected virtual void OnFrameChanged (object s, EventArgs a) { - if (container != null && container.ContentVisible) + if (Window != null && Window.ContentVisible) OnUpdateList (); else needsUpdate = true; @@ -144,7 +140,7 @@ namespace MonoDevelop.Debugger { if (!DebuggingService.IsRunning) { lastFrame = null; - if (container != null && container.ContentVisible) + if (Window != null && Window.ContentVisible) OnUpdateList (); else needsUpdate = true; diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs index da3940e4b1..5a864961fd 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs @@ -39,9 +39,9 @@ using MonoDevelop.Ide; using MonoDevelop.Ide.CodeCompletion; using MonoDevelop.Components.Commands; using MonoDevelop.Ide.Commands; -using Mono.TextEditor; +using MonoDevelop.Ide.Editor.Extension; using System.Linq; - +using MonoDevelop.Ide.Fonts; namespace MonoDevelop.Debugger { @@ -90,10 +90,6 @@ namespace MonoDevelop.Debugger readonly TreeViewColumn typeCol; readonly TreeViewColumn pinCol; - const string errorColor = "red"; - const string modifiedColor = "blue"; - const string disabledColor = "gray"; - static readonly CommandEntrySet menuSet; const int NameColumn = 0; @@ -168,7 +164,7 @@ namespace MonoDevelop.Debugger if (!icon.IsNull) { using (var ctx = Gdk.CairoHelper.Create (window)) { using (var layout = new Pango.Layout (widget.PangoContext)) { - layout.FontDescription = FontDesc.Copy (); + layout.FontDescription = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11); layout.FontDescription.Family = Family; layout.SetText (Text); int w, h; @@ -192,7 +188,7 @@ namespace MonoDevelop.Debugger Uri uri; if (value != null && Uri.TryCreate (value.Trim ('"', '{', '}'), UriKind.Absolute, out uri) && (uri.Scheme == "http" || uri.Scheme == "https")) { Underline = Pango.Underline.Single; - Foreground = "#197CEF"; + Foreground = Ide.Gui.Styles.LinkForegroundColor.ToHexString (false); } else { Underline = Pango.Underline.None; } @@ -256,9 +252,9 @@ namespace MonoDevelop.Debugger cell_area.Height - TopBottomPadding * 2 - 1, (cell_area.Height - (TopBottomPadding * 2)) / 2); cr.LineWidth = 1; - cr.SetSourceRGB (233 / 255.0, 242 / 255.0, 252 / 255.0); + cr.SetSourceColor (Styles.ObjectValueTreeValuesButtonBackground.ToCairoColor ()); cr.FillPreserve (); - cr.SetSourceRGB (82 / 255.0, 148 / 255.0, 235 / 255.0); + cr.SetSourceColor (Styles.ObjectValueTreeValuesButtonBorder.ToCairoColor ()); cr.Stroke (); int YOffset = (cell_area.Height - h) / 2; @@ -267,7 +263,7 @@ namespace MonoDevelop.Debugger window.DrawLayoutWithColors (widget.Style.TextGC (StateType.Normal), cell_area.X + (cell_area.Height - TopBottomPadding * 2 + 1) / 2 + xpad, cell_area.Y + YOffset, - layout, new Gdk.Color (82, 148, 235), new Gdk.Color (233, 242, 252)); + layout, Styles.ObjectValueTreeValuesButtonText.ToGdkColor(), Styles.ObjectValueTreeValuesButtonBackground.ToGdkColor()); } } } @@ -302,11 +298,10 @@ namespace MonoDevelop.Debugger Selection.Mode = Gtk.SelectionMode.Multiple; Selection.Changed += HandleSelectionChanged; ResetColumnSizes (); - - Pango.FontDescription newFont = Style.FontDescription.Copy (); - newFont.Size = (newFont.Size * 8) / 10; - liveIcon = ImageService.GetIcon (Stock.Execute, IconSize.Menu); + Pango.FontDescription newFont = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11); + + liveIcon = ImageService.GetIcon ("md-live", IconSize.Menu); noLiveIcon = liveIcon.WithAlpha (0.5); expCol = new TreeViewColumn (); @@ -474,8 +469,6 @@ namespace MonoDevelop.Debugger } } - Dictionary<TreeIter, bool> evalSpinnersIcons = new Dictionary<TreeIter, bool>(); - void HandleSelectionChanged (object sender, EventArgs e) { if (!currentHoverIter.Equals (TreeIter.Zero) && store.IterIsValid (currentHoverIter)) { @@ -485,25 +478,21 @@ namespace MonoDevelop.Debugger SetPreviewButtonIcon (iconBeforeSelected, currentHoverIter); } } - foreach (var s in evalSpinnersIcons.ToArray()) { - if (store.IterIsValid (s.Key) && Selection.IterIsSelected (s.Key)) { - if (!s.Value) { - store.LoadIcon (s.Key, EvaluateStatusIconColumn, "md-spinner-selected-16", IconSize.Menu); - evalSpinnersIcons [s.Key] = true; - } - } else { - if (s.Value) { - store.LoadIcon (s.Key, EvaluateStatusIconColumn, "md-spinner-normal-16", IconSize.Menu); - evalSpinnersIcons [s.Key] = false; - } - } - } } + Adjustment oldHadjustment; + Adjustment oldVadjustment; + //Don't convert this event handler to override OnSetScrollAdjustments as it causes problems void HandleScrollAdjustmentsSet (object o, ScrollAdjustmentsSetArgs args) { - Hadjustment.ValueChanged += UpdatePreviewPosition; - Vadjustment.ValueChanged += UpdatePreviewPosition; + if (oldHadjustment != null) { + oldHadjustment.ValueChanged -= UpdatePreviewPosition; + oldVadjustment.ValueChanged -= UpdatePreviewPosition; + } + oldHadjustment = Hadjustment; + oldVadjustment = Vadjustment; + oldHadjustment.ValueChanged += UpdatePreviewPosition; + oldVadjustment.ValueChanged += UpdatePreviewPosition; } void UpdatePreviewPosition (object sender, EventArgs e) @@ -560,8 +549,13 @@ namespace MonoDevelop.Debugger valueCol.RemoveNotification ("width", OnColumnWidthChanged); expCol.RemoveNotification ("width", OnColumnWidthChanged); - Hadjustment.ValueChanged -= UpdatePreviewPosition; - Vadjustment.ValueChanged -= UpdatePreviewPosition; + ScrollAdjustmentsSet -= HandleScrollAdjustmentsSet; + if (oldHadjustment != null) { + oldHadjustment.ValueChanged -= UpdatePreviewPosition; + oldVadjustment.ValueChanged -= UpdatePreviewPosition; + oldHadjustment = null; + oldVadjustment = null; + } values.Clear (); valueNames.Clear (); @@ -747,12 +741,11 @@ namespace MonoDevelop.Debugger compact = value; Pango.FontDescription newFont; if (compact) { - newFont = Style.FontDescription.Copy (); - newFont.Size = (newFont.Size * 8) / 10; + newFont = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11); valueCol.MaxWidth = 800; crpViewer.Image = ImageService.GetIcon (Stock.Edit).WithSize (12,12); } else { - newFont = Style.FontDescription; + newFont = FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale12); valueCol.MaxWidth = int.MaxValue; } typeCol.Visible = !compact; @@ -888,7 +881,7 @@ namespace MonoDevelop.Debugger ShowExpanders = true; if (AllowAdding) - store.AppendValues (createMsg, "", "", null, true, true, null, disabledColor, disabledColor); + store.AppendValues (createMsg, "", "", null, true, true, null, Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText), Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText)); LoadState (); } @@ -1135,7 +1128,7 @@ namespace MonoDevelop.Debugger if (val.IsUnknown) { if (frame != null) { strval = GettextCatalog.GetString ("The name '{0}' does not exist in the current context.", val.Name); - nameColor = disabledColor; + nameColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText); canEdit = false; } else { canEdit = !val.IsReadOnly; @@ -1148,27 +1141,22 @@ namespace MonoDevelop.Debugger int i = strval.IndexOf ('\n'); if (i != -1) strval = strval.Substring (0, i); - valueColor = errorColor; + valueColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueErrorText); canEdit = false; } else if (val.IsNotSupported) { strval = "";//val.Value; with new "Show Value" button we don't want to display message "Implicit evaluation is disabled" - valueColor = disabledColor; + valueColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText); if (val.CanRefresh) valueButton = GettextCatalog.GetString ("Show Value"); canEdit = false; } else if (val.IsEvaluating) { strval = GettextCatalog.GetString ("Evaluating..."); - if (Selection.IterIsSelected (it)) { - evalSpinnersIcons [it] = true; - evaluateStatusIcon = "md-spinner-selected-16"; - } else { - evalSpinnersIcons [it] = false; - evaluateStatusIcon = "md-spinner-normal-16"; - } - valueColor = disabledColor; + evaluateStatusIcon = "md-spinner-16"; + + valueColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText); if (val.IsEvaluatingGroup) { - nameColor = disabledColor; + nameColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueDisabledText); name = val.Name; } canEdit = false; @@ -1193,7 +1181,7 @@ namespace MonoDevelop.Debugger strval = val.DisplayValue ?? "(null)"; } if (oldValue != null && strval != oldValue) - nameColor = valueColor = modifiedColor; + nameColor = valueColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueModifiedText); } strval = strval.Replace ("\r\n", " ").Replace ("\n", " "); @@ -1209,9 +1197,6 @@ namespace MonoDevelop.Debugger store.SetValue (it, IconColumn, icon); store.SetValue (it, NameColorColumn, nameColor); store.SetValue (it, ValueColorColumn, valueColor); - if (evaluateStatusIcon != "md-spinner-normal-16" && evaluateStatusIcon != "md-spinner-selected-16") { - evalSpinnersIcons.Remove (it); - } store.SetValue (it, EvaluateStatusIconVisibleColumn, evaluateStatusIcon != null); store.LoadIcon (it, EvaluateStatusIconColumn, evaluateStatusIcon, IconSize.Menu); store.SetValue (it, ValueButtonVisibleColumn, valueButton != null); @@ -1496,7 +1481,7 @@ namespace MonoDevelop.Debugger string oldValue; if (oldValues.TryGetValue (valPath, out oldValue)) { if (oldValue != val.Value) - newColor = modifiedColor; + newColor = Ide.Gui.Styles.ColorGetHex (Styles.ObjectValueTreeValueModifiedText); } store.SetValue (it, NameColorColumn, newColor); @@ -1533,7 +1518,7 @@ namespace MonoDevelop.Debugger void OnEditKeyRelease (object sender, EventArgs e) { if (!wasHandled) { - CompletionWindowManager.PostProcessKeyEvent (key, keyChar, modifierState); + CompletionWindowManager.PostProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifierState)); PopupCompletion ((Entry) sender); } } @@ -1555,7 +1540,7 @@ namespace MonoDevelop.Debugger keyValue = args.Event.KeyValue; if (currentCompletionData != null) { - wasHandled = CompletionWindowManager.PreProcessKeyEvent (key, keyChar, modifierState); + wasHandled = CompletionWindowManager.PreProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifierState)); args.RetVal = wasHandled; } } @@ -1738,10 +1723,10 @@ namespace MonoDevelop.Debugger void CleanPinIcon () { - if (!lastPinIter.Equals (TreeIter.Zero)) { + if (!lastPinIter.Equals (TreeIter.Zero) && store.IterIsValid (lastPinIter)) { store.SetValue (lastPinIter, PinIconColumn, null); - lastPinIter = TreeIter.Zero; } + lastPinIter = TreeIter.Zero; } protected override bool OnLeaveNotifyEvent (Gdk.EventCrossing evnt) @@ -1853,9 +1838,8 @@ namespace MonoDevelop.Debugger TreePath path; bool closePreviewWindow = true; - if (CanQueryDebugger && evnt.Button == 1 && GetCellAtPos ((int)evnt.X, (int)evnt.Y, out path, out col, out cr)) { - TreeIter it; - store.GetIter (out it, path); + TreeIter it; + if (CanQueryDebugger && evnt.Button == 1 && GetCellAtPos ((int)evnt.X, (int)evnt.Y, out path, out col, out cr) && store.GetIter (out it, path)) { if (cr == crpViewer) { var val = (ObjectValue)store.GetValue (it, ObjectColumn); DebuggingService.ShowValueVisualizer (val); @@ -2245,7 +2229,13 @@ namespace MonoDevelop.Debugger return ((ICompletionWidget)this).CreateCodeCompletionContext (editEntry.Position); } } - + + public double ZoomLevel { + get { + return 1; + } + } + public event EventHandler CompletionContextChanged; protected virtual void OnCompletionContextChanged (EventArgs e) @@ -2280,6 +2270,9 @@ namespace MonoDevelop.Debugger get { return editEntry.Position; } + set { + editEntry.Position = value; + } } char ICompletionWidget.GetChar (int offset) @@ -2352,6 +2345,7 @@ namespace MonoDevelop.Debugger return editEntry.Style; } } + #endregion ObjectValue[] GetValues (string[] names) @@ -2401,8 +2395,9 @@ namespace MonoDevelop.Debugger } } - class DebugCompletionDataList: List<ICSharpCode.NRefactory.Completion.ICompletionData>, ICompletionDataList + class DebugCompletionDataList: List<MonoDevelop.Ide.CodeCompletion.CompletionData>, ICompletionDataList { + public int TriggerWordLength { get; set; } public bool IsSorted { get; set; } public DebugCompletionDataList (Mono.Debugging.Client.CompletionData data) { diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs index 4d9bc48f2f..52ac37e34e 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/PinnedWatchStore.cs @@ -272,7 +272,7 @@ namespace MonoDevelop.Debugger batchChanged.Add (watch); return; } - DispatchService.GuiDispatch (() => { + Runtime.RunInMainThread (() => { if (WatchChanged != null) WatchChanged (this, new PinnedWatchEventArgs (watch)); }); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs index 97164a0ca5..3e46fd0f6d 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs @@ -45,7 +45,29 @@ using System.Linq; namespace MonoDevelop.Debugger { - public class StackTracePad : ScrolledWindow, IPadContent + public class StackTracePad : PadContent + { + StackTracePadWidget control; + + public StackTracePad () + { + Id = "MonoDevelop.Debugger.StackTracePad"; + control = new StackTracePadWidget (); + } + + protected override void Initialize (IPadWindow window) + { + control.Initialize (window); + } + + public override Control Control { + get { + return control; + } + } + } + + public class StackTracePadWidget : ScrolledWindow { const int IconColumn = 0; const int MethodColumn = 1; @@ -62,9 +84,9 @@ namespace MonoDevelop.Debugger IPadWindow window; bool needsUpdate; - static Xwt.Drawing.Image pointerImage = Xwt.Drawing.Image.FromResource ("stack-pointer-16.png"); + static Xwt.Drawing.Image pointerImage = ImageService.GetIcon ("md-stack-pointer", IconSize.Menu); - public StackTracePad () + public StackTracePadWidget () { this.ShadowType = ShadowType.None; @@ -189,7 +211,7 @@ namespace MonoDevelop.Debugger return !value.Contains (key); } - void IPadContent.Initialize (IPadWindow window) + public void Initialize (IPadWindow window) { this.window = window; window.PadContentShown += delegate { @@ -344,25 +366,6 @@ namespace MonoDevelop.Debugger ActivateFrame (); } - public Widget Control { - get { - return this; - } - } - - public string Id { - get { return "MonoDevelop.Debugger.StackTracePad"; } - } - - public string DefaultPlacement { - get { return "Bottom"; } - } - - public void RedrawContent () - { - UpdateDisplay (); - } - void ShowPopup (Gdk.EventButton evt) { var context_menu = new ContextMenu (); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Styles.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Styles.cs new file mode 100644 index 0000000000..d4f4f51226 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Styles.cs @@ -0,0 +1,104 @@ +// +// Styles.cs +// +// Author: +// Vsevolod Kukol <sevo@xamarin.com> +// +// Copyright (c) 2015 Xamarin Inc. (http://www.xamarin.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using MonoDevelop.Ide; +using Xwt.Drawing; + +namespace MonoDevelop.Debugger +{ + public static class Styles + { + public static Color ObjectValueTreeValuesButtonBackground { get; internal set; } + public static Color ObjectValueTreeValuesButtonText { get; internal set; } + public static Color ObjectValueTreeValuesButtonBorder { get; internal set; } + public static Color ObjectValueTreeValueErrorText { get; internal set; } + public static Color ObjectValueTreeValueDisabledText { get; internal set; } + public static Color ObjectValueTreeValueModifiedText { get; internal set; } + public static Color PreviewVisualizerBackgroundColor { get; internal set; } + public static Color PreviewVisualizerTextColor { get; internal set; } + public static Color PreviewVisualizerHeaderTextColor { get; internal set; } + + public static ExceptionCaughtDialogStyle ExceptionCaughtDialog { get; internal set; } + + public class ExceptionCaughtDialogStyle + { + public Color TreeBackgroundColor { get; internal set; } + public Color InfoFrameBackgroundColor { get; internal set; } + public Color InfoFrameBorderColor { get; internal set; } + public Color LineNumberBackgroundColor { get; internal set; } + public Color LineNumberInUserCodeBackgroundColor { get; internal set; } + public Color LineNumberTextColor { get; internal set; } + } + + static Styles () + { + LoadStyles (); + Ide.Gui.Styles.Changed += (o, e) => LoadStyles (); + } + + public static void LoadStyles () + { + ExceptionCaughtDialog = new ExceptionCaughtDialogStyle (); + + if (IdeApp.Preferences.UserInterfaceSkin == Skin.Light) { + ObjectValueTreeValuesButtonBackground = Color.FromName ("#e9f2fc"); + ObjectValueTreeValuesButtonText = Color.FromName ("#5294eb"); + ObjectValueTreeValuesButtonBorder = Color.FromName ("#5294eb"); + ObjectValueTreeValueDisabledText = Color.FromName ("#7f7f7f"); + ObjectValueTreeValueModifiedText = Color.FromName ("#1FAECE"); + + ExceptionCaughtDialog.InfoFrameBackgroundColor = Color.FromName ("#fbefce"); + ExceptionCaughtDialog.InfoFrameBorderColor = Color.FromName ("#f0e4c2"); + ExceptionCaughtDialog.LineNumberBackgroundColor = Color.FromName ("#c4c4c4"); + ExceptionCaughtDialog.LineNumberInUserCodeBackgroundColor = Color.FromName ("#e599de"); + ExceptionCaughtDialog.LineNumberTextColor = Color.FromName ("#ffffff"); + } else { + ObjectValueTreeValuesButtonBackground = Color.FromName ("#7c8695"); + ObjectValueTreeValuesButtonText = Color.FromName ("#cbe5ff"); + ObjectValueTreeValuesButtonBorder = Color.FromName ("#a4bbd5"); + ObjectValueTreeValueDisabledText = Color.FromName ("#5a5a5a"); + ObjectValueTreeValueModifiedText = Color.FromName ("#4FCAE6"); + + ExceptionCaughtDialog.InfoFrameBackgroundColor = Color.FromName ("#675831"); + ExceptionCaughtDialog.InfoFrameBorderColor = Color.FromName ("#7a6a3d"); + ExceptionCaughtDialog.LineNumberBackgroundColor = Color.FromName ("#c4c4c4"); + ExceptionCaughtDialog.LineNumberInUserCodeBackgroundColor = Color.FromName ("#e599de"); + ExceptionCaughtDialog.LineNumberTextColor = Color.FromName ("#222222"); + } + + // Shared + + ObjectValueTreeValueErrorText = Ide.Gui.Styles.WarningForegroundColor; + + PreviewVisualizerBackgroundColor = Ide.Gui.Styles.PopoverWindow.DefaultBackgroundColor; + PreviewVisualizerTextColor = Ide.Gui.Styles.PopoverWindow.DefaultTextColor; + PreviewVisualizerHeaderTextColor = Ide.Gui.Styles.PopoverWindow.DefaultTextColor; + + ExceptionCaughtDialog.TreeBackgroundColor = Ide.Gui.Styles.PrimaryBackgroundColor; + } + } +} + diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/TextEntryWithCodeCompletion.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/TextEntryWithCodeCompletion.cs index 8d78436425..108ea39c90 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/TextEntryWithCodeCompletion.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/TextEntryWithCodeCompletion.cs @@ -27,6 +27,7 @@ using System; using Xwt; using MonoDevelop.Ide.CodeCompletion; using System.Collections.Generic; +using MonoDevelop.Ide.Editor.Extension; namespace MonoDevelop.Debugger { @@ -51,6 +52,12 @@ namespace MonoDevelop.Debugger CompletionWindowManager.WindowClosed += HandleWindowClosed; } + protected override void Dispose (bool disposing)
+ { + CompletionWindowManager.WindowClosed -= HandleWindowClosed;
+ base.Dispose (disposing);
+ } + void HandleWindowClosed (object sender, EventArgs e) { ctx = null; @@ -73,7 +80,7 @@ namespace MonoDevelop.Debugger } if (list != null) - args.RetVal = keyHandled = CompletionWindowManager.PreProcessKeyEvent (key, keyChar, modifier); + args.RetVal = keyHandled = CompletionWindowManager.PreProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier)); } void HandleKeyReleaseEvent (object o, Gtk.KeyReleaseEventArgs args) @@ -83,7 +90,7 @@ namespace MonoDevelop.Debugger string text = ctx == null ? Text : Text.Substring (Math.Max (0, Math.Min (ctx.TriggerOffset, Text.Length))); CompletionWindowManager.UpdateWordSelection (text); - CompletionWindowManager.PostProcessKeyEvent (key, keyChar, modifier); + CompletionWindowManager.PostProcessKeyEvent (KeyDescriptor.FromGtk (key, keyChar, modifier)); PopupCompletion (); } @@ -116,19 +123,19 @@ namespace MonoDevelop.Debugger { #region ICompletionKeyHandler implementation - public bool PreProcessKey (CompletionListWindow listWindow, Gdk.Key key, char keyChar, Gdk.ModifierType modifier, out KeyActions keyAction) + public bool PreProcessKey (CompletionListWindow listWindow, KeyDescriptor descriptor, out KeyActions keyAction) { keyAction = KeyActions.None; - if (keyChar == '.') { + if (descriptor.KeyChar == '.') { return true; } return false; } - public bool PostProcessKey (CompletionListWindow listWindow, Gdk.Key key, char keyChar, Gdk.ModifierType modifier, out KeyActions keyAction) + public bool PostProcessKey (CompletionListWindow listWindow, KeyDescriptor descriptor, out KeyActions keyAction) { keyAction = KeyActions.None; - if (keyChar == '.') { + if (descriptor.KeyChar == '.') { return true; } return false; @@ -150,6 +157,11 @@ namespace MonoDevelop.Debugger return Text.Substring (startOffset, endOffset - startOffset); } + public void AddSkipChar (int cursorPosition, char c) + { + // ignore + } + public char GetChar (int offset) { if (offset >= Text.Length) @@ -214,6 +226,9 @@ namespace MonoDevelop.Debugger get { return gtkEntry.Position; } + set { + gtkEntry.Position = value; + } } public int TextLength { @@ -234,6 +249,11 @@ namespace MonoDevelop.Debugger } } + double ICompletionWidget.ZoomLevel { + get { + return 1; + } + } #endregion } } diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs index 073c65ba75..9fa65e2afc 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs @@ -41,7 +41,24 @@ using MonoDevelop.Ide; namespace MonoDevelop.Debugger { - public class ThreadsPad : Gtk.ScrolledWindow, IPadContent + public class ThreadsPad: PadContent + { + ThreadsPadWidget control = new ThreadsPadWidget (); + + protected override void Initialize (IPadWindow window) + { + Id = "MonoDevelop.Debugger.ThreadsPad"; + control.Initialize (window); + } + + public override Control Control { + get { + return control; + } + } + } + + public class ThreadsPadWidget : Gtk.ScrolledWindow { TreeViewState treeViewState; PadTreeView tree; @@ -59,7 +76,7 @@ namespace MonoDevelop.Debugger Location } - public ThreadsPad () + public ThreadsPadWidget () { this.ShadowType = ShadowType.None; @@ -127,7 +144,7 @@ namespace MonoDevelop.Debugger UpdateDisplay (); } - void IPadContent.Initialize (IPadWindow window) + public void Initialize (IPadWindow window) { this.window = window; window.PadContentShown += delegate { @@ -234,7 +251,7 @@ namespace MonoDevelop.Debugger void OnRowActivated (object s, RowActivatedArgs args) { - TreeIter iter, selected; + TreeIter selected; if (!tree.Selection.GetSelected (out selected)) return; @@ -254,23 +271,6 @@ namespace MonoDevelop.Debugger } } - public Widget Control { - get { return this; } - } - - public string Id { - get { return "MonoDevelop.Debugger.ThreadsPad"; } - } - - public string DefaultPlacement { - get { return "Bottom"; } - } - - public void RedrawContent () - { - UpdateDisplay (); - } - void OnDebuggerPaused (object s, EventArgs a) { UpdateDisplay (); diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16.png Binary files differindex c0c017eb32..b9a52a2203 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16@2x.png Binary files differindex 9f68a52e2f..e9c7987cef 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark.png Binary files differnew file mode 100644 index 0000000000..de38a0fb46 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..040f23e224 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled.png Binary files differnew file mode 100644 index 0000000000..2c4c08f2d9 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled@2x.png Binary files differnew file mode 100644 index 0000000000..a411a244df --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~dark~disabled@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled.png Binary files differnew file mode 100644 index 0000000000..40138ca93c --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled@2x.png Binary files differnew file mode 100644 index 0000000000..0aa16e9590 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/breakpoint-16~disabled@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark.png Binary files differnew file mode 100644 index 0000000000..55be4cd553 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..e537469f3e --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/continue-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16.png Binary files differdeleted file mode 100644 index f26e32207e..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16@2x.png Binary files differdeleted file mode 100644 index 158308d290..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-16@2x.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22.png Binary files differdeleted file mode 100644 index 610440161f..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22@2x.png Binary files differdeleted file mode 100644 index fae72407dd..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-22@2x.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24.png Binary files differdeleted file mode 100644 index 80cd6238a2..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24@2x.png Binary files differdeleted file mode 100644 index ef83576302..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-24@2x.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32.png Binary files differdeleted file mode 100644 index e17cb11f60..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32@2x.png Binary files differdeleted file mode 100644 index 07f213f055..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/debug-overlay-32@2x.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/exception-48.png b/main/src/addins/MonoDevelop.Debugger/icons/exception-48.png Binary files differnew file mode 100644 index 0000000000..c4c6a89206 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/exception-48.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/exception-48@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/exception-48@2x.png Binary files differnew file mode 100644 index 0000000000..f0aedb903c --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/exception-48@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark.png Binary files differnew file mode 100644 index 0000000000..f51108466b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark@2x.png Binary files differnew file mode 100644 index 0000000000..ad0ac47266 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/exception-48~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15.png Binary files differindex 20ecca2fc7..66e56539b2 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15@2x.png Binary files differindex 872a5ff363..f93311be73 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark.png Binary files differnew file mode 100644 index 0000000000..9264ccc01e --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark@2x.png Binary files differnew file mode 100644 index 0000000000..86c904bca7 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-15~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15.png Binary files differindex ada1ad3fb5..b6a2c3ed16 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15@2x.png Binary files differindex a56d3aef2d..415b83ec16 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark.png Binary files differnew file mode 100644 index 0000000000..7b8522627b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark@2x.png Binary files differnew file mode 100644 index 0000000000..69a9ea9df7 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-disabled-15~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15.png Binary files differindex bfaf88cf34..e35a7fe46a 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15@2x.png Binary files differindex cbf06776a2..8516777e7b 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark.png Binary files differnew file mode 100644 index 0000000000..3e17554ad6 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark@2x.png Binary files differnew file mode 100644 index 0000000000..e69eb688e6 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-breakpoint-invalid-15~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15.png Binary files differindex d66862ca68..4aff120d7f 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15@2x.png Binary files differindex 493c4c5647..2d6626b35b 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark.png Binary files differnew file mode 100644 index 0000000000..75d029e290 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark@2x.png Binary files differnew file mode 100644 index 0000000000..d80113c471 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-execution-15~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15.png Binary files differindex 04730ee9f5..10f0020062 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15@2x.png Binary files differindex d731b20293..8db6d07582 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark.png Binary files differnew file mode 100644 index 0000000000..838d428b56 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark@2x.png Binary files differnew file mode 100644 index 0000000000..b136fe4252 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-stack-15~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15.png Binary files differindex e17b374a94..b8d8dee132 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15@2x.png Binary files differindex dc4002600d..58ae8d61a5 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark.png Binary files differnew file mode 100644 index 0000000000..7c3b36e74a --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark@2x.png Binary files differnew file mode 100644 index 0000000000..b4709dcc77 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-15~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15.png Binary files differindex d06ef8747f..51093a409f 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15@2x.png Binary files differindex 66f4d95b84..e82a46c94c 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark.png Binary files differnew file mode 100644 index 0000000000..e9bb5e5067 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark@2x.png Binary files differnew file mode 100644 index 0000000000..df49804f20 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-disabled-15~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15.png Binary files differindex 4f126b81b3..5d1692454e 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15@2x.png Binary files differindex e100e3de2c..2337f90cb7 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark.png Binary files differnew file mode 100644 index 0000000000..fa41eef150 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark@2x.png Binary files differnew file mode 100644 index 0000000000..d7660a1ed0 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/gutter-tracepoint-invalid-15~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16.png Binary files differindex f55eaee908..4d329b86de 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16@2x.png Binary files differindex 172998cd35..6ee71a6ad6 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark.png Binary files differnew file mode 100644 index 0000000000..a30a6b829d --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..3231ab61b1 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled.png Binary files differnew file mode 100644 index 0000000000..5fe3aea858 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled@2x.png Binary files differnew file mode 100644 index 0000000000..e847c5bf2f --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~dark~disabled@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled.png Binary files differnew file mode 100644 index 0000000000..0c142aece1 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled@2x.png Binary files differnew file mode 100644 index 0000000000..2d6e69fac9 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/lightning-16~disabled@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16.png Binary files differindex 70960c9a1d..4d3bc37de5 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16@2x.png Binary files differindex a1d9ab2387..ed0aba7675 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark.png Binary files differnew file mode 100644 index 0000000000..479a5dcc25 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..058843874b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/continue-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16.png Binary files differnew file mode 100644 index 0000000000..442624355f --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16@2x.png Binary files differnew file mode 100644 index 0000000000..c6cb9c762b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark.png Binary files differnew file mode 100644 index 0000000000..3caf33cd7e --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..d559606f8f --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause.png Binary files differdeleted file mode 100644 index 6603c0d1cf..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/pause@2x.png Binary files differdeleted file mode 100644 index f1cd97e5ae..0000000000 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/pause@2x.png +++ /dev/null diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16.png Binary files differindex 9dcded3b92..4d4936779b 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16@2x.png Binary files differindex 5e455c726e..58797d6652 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark.png Binary files differnew file mode 100644 index 0000000000..265152a27f --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..2fbe610a91 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled.png Binary files differnew file mode 100644 index 0000000000..9de59a516c --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled@2x.png Binary files differnew file mode 100644 index 0000000000..1b3044a2be --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark.png Binary files differnew file mode 100644 index 0000000000..85a3ff79df --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark@2x.png Binary files differnew file mode 100644 index 0000000000..fcfae41a39 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-in-16~disabled~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16.png Binary files differindex 67eed7f9da..10cff84795 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16@2x.png Binary files differindex eb9aa52862..b6fdedfe42 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark.png Binary files differnew file mode 100644 index 0000000000..89041ced27 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..d95df3d982 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled.png Binary files differnew file mode 100644 index 0000000000..c3e39ecec0 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled@2x.png Binary files differnew file mode 100644 index 0000000000..06704e58d4 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark.png Binary files differnew file mode 100644 index 0000000000..f451ea5798 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark@2x.png Binary files differnew file mode 100644 index 0000000000..e5525d478b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-out-16~disabled~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16.png Binary files differindex bcdacbb88b..8d69d17061 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16@2x.png Binary files differindex 0a7b96e9ce..7e040e8dbf 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark.png Binary files differnew file mode 100644 index 0000000000..f2da4e883e --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..be282f1dd1 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled.png Binary files differnew file mode 100644 index 0000000000..d10925a213 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled@2x.png Binary files differnew file mode 100644 index 0000000000..9168634ddc --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark.png Binary files differnew file mode 100644 index 0000000000..9d1563efdb --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark@2x.png Binary files differnew file mode 100644 index 0000000000..aeb917d31b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/mac/step-over-16~disabled~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16.png Binary files differnew file mode 100644 index 0000000000..879d553aca --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16@2x.png Binary files differnew file mode 100644 index 0000000000..5778c526cc --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark.png Binary files differnew file mode 100644 index 0000000000..7ade180b2a --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..d04fcbaa44 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel.png Binary files differnew file mode 100644 index 0000000000..4805daf179 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel@2x.png Binary files differnew file mode 100644 index 0000000000..e1cb0c72ea --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~dark~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel.png Binary files differnew file mode 100644 index 0000000000..4805daf179 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel@2x.png Binary files differnew file mode 100644 index 0000000000..e1cb0c72ea --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-breakpoints-16~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16.png Binary files differindex ee336018f8..a3441895de 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16@2x.png Binary files differindex 04577e051a..06e6ec4268 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark.png Binary files differnew file mode 100644 index 0000000000..910478d160 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..89082d5735 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel.png Binary files differnew file mode 100644 index 0000000000..50bf3900bf --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel@2x.png Binary files differnew file mode 100644 index 0000000000..139f3cc034 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~dark~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel.png Binary files differnew file mode 100644 index 0000000000..50bf3900bf --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel@2x.png Binary files differnew file mode 100644 index 0000000000..139f3cc034 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-call-stack-16~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16.png Binary files differindex bd7976085e..cd3124c76c 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16@2x.png Binary files differindex b88716e4b9..7e6f661afe 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark.png Binary files differnew file mode 100644 index 0000000000..4eedc51b5a --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..0ba8d38c46 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel.png Binary files differnew file mode 100644 index 0000000000..829a25877b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel@2x.png Binary files differnew file mode 100644 index 0000000000..9182a875cb --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~dark~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel.png Binary files differnew file mode 100644 index 0000000000..829a25877b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel@2x.png Binary files differnew file mode 100644 index 0000000000..9182a875cb --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-locals-16~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16.png Binary files differindex 7a77d14929..7256ded2cf 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16@2x.png Binary files differindex dfd9e9f12e..71d19442d5 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark.png Binary files differnew file mode 100644 index 0000000000..efeff10ce7 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..b2c40af2a5 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel.png Binary files differnew file mode 100644 index 0000000000..9bdc6e66f1 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel@2x.png Binary files differnew file mode 100644 index 0000000000..fb0259fb85 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~dark~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel.png Binary files differnew file mode 100644 index 0000000000..9bdc6e66f1 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel@2x.png Binary files differnew file mode 100644 index 0000000000..fb0259fb85 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-threads-16~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16.png Binary files differindex bfb4cd5e3b..a69ea1fc49 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16@2x.png Binary files differindex 63120d12ce..8ae68592ed 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark.png Binary files differnew file mode 100644 index 0000000000..6f0b38f989 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..6c9424c687 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel.png Binary files differnew file mode 100644 index 0000000000..fa35a1ecd9 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel@2x.png Binary files differnew file mode 100644 index 0000000000..2d5c8dbc0d --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~dark~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel.png Binary files differnew file mode 100644 index 0000000000..fa35a1ecd9 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel@2x.png Binary files differnew file mode 100644 index 0000000000..2d5c8dbc0d --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pad-watch-16~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark.png Binary files differnew file mode 100644 index 0000000000..7964ea8283 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..d2feceaeb9 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/pause-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16.png Binary files differindex f26e32207e..c00254dd9f 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16@2x.png Binary files differindex b8681ba963..4c1654ebfd 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark.png Binary files differnew file mode 100644 index 0000000000..dbd2c9da8f --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..d03a48d630 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel.png Binary files differnew file mode 100644 index 0000000000..9f98c3062b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel@2x.png Binary files differnew file mode 100644 index 0000000000..0b660d7edc --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~dark~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel.png Binary files differnew file mode 100644 index 0000000000..9f98c3062b --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel@2x.png Binary files differnew file mode 100644 index 0000000000..0b660d7edc --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/prefs-debugger-16~sel@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16.png Binary files differindex a9c99d7ea1..3c0b36c9c6 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16@2x.png Binary files differindex 2379b82339..6a0e1eb227 100644 --- a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16@2x.png +++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark.png Binary files differnew file mode 100644 index 0000000000..d94d819df0 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..0e16ba3d8a --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled.png Binary files differnew file mode 100644 index 0000000000..388ec23b6c --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled@2x.png Binary files differnew file mode 100644 index 0000000000..9fd925bd50 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~dark~disabled@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled.png Binary files differnew file mode 100644 index 0000000000..b90f6cfd67 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled@2x.png Binary files differnew file mode 100644 index 0000000000..74fd0875d0 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/stack-pointer-16~disabled@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark.png Binary files differnew file mode 100644 index 0000000000..9f77c395f5 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..5e82ea7766 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/step-in-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark.png Binary files differnew file mode 100644 index 0000000000..9c5471918d --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..8b34d302f3 --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/step-out-16~dark@2x.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark.png b/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark.png Binary files differnew file mode 100644 index 0000000000..8813df49da --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark.png diff --git a/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark@2x.png b/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark@2x.png Binary files differnew file mode 100644 index 0000000000..2a4035681a --- /dev/null +++ b/main/src/addins/MonoDevelop.Debugger/icons/step-over-16~dark@2x.png |