diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsole.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsole.java index 46233f7ab29..105e16fc195 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsole.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsole.java @@ -69,7 +69,7 @@ public class GdbBasicCliConsole extends IOConsole implements IGDBDebuggerConsole }; public GdbBasicCliConsole(ILaunch launch, String label, Process process) { - super("", null, null, false); //$NON-NLS-1$ + super("", "GdbBasicCliConsole", null, false); //$NON-NLS-1$ //$NON-NLS-2$ fLaunch = launch; fLabel = label; fProcess = process; diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsolePage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsolePage.java index dc0e4785123..71e51083fd4 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsolePage.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsolePage.java @@ -20,9 +20,20 @@ import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.Separator; import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.console.IConsoleView; import org.eclipse.ui.internal.console.IOConsolePage; +/** + * Page used for a basic GDB console. Each Debug session which uses the basic GDB console will + * use its own instance of this page. The basic console is used for older GDB versions. + * + * Contributions to this page's context menu can be done using id "GdbBasicCliConsole.#ContextMenu". + * For example, using the extension point:
+ * + * menuContribution locationURI="popup:GdbBasicCliConsole.#ContextMenu?after=additions" + * + */ @SuppressWarnings("restriction") public class GdbBasicCliConsolePage extends IOConsolePage implements IDebugContextListener { @@ -67,6 +78,10 @@ public class GdbBasicCliConsolePage extends IOConsolePage implements IDebugConte protected void contextMenuAboutToShow(IMenuManager menuManager) { menuManager.add(fTerminateLaunchAction); menuManager.add(new Separator()); + + // Other plug-ins can contribute there actions here + menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); + menuManager.add(fShowPreferencePageAction); } diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java index b83af80eedc..81b0c7bd2ac 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java @@ -46,8 +46,19 @@ import org.eclipse.tm.internal.terminal.control.TerminalViewControlFactory; import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector; import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl; import org.eclipse.tm.internal.terminal.provisional.api.TerminalState; +import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.part.Page; +/** + * Page used for a full GDB console. Each Debug session which uses the full GDB console will + * use its own instance of this page. GDB 7.12 is required to use the full GDB console. + * + * Contributions to this page's context menu can be done using id "GdbFullCliConsole.#ContextMenu". + * For example, using the extension point:
+ * + * menuContribution locationURI="popup:GdbFullCliConsole.#ContextMenu?after=additions" + * + */ public class GdbFullCliConsolePage extends Page implements IDebugContextListener { private final ILaunch fLaunch; @@ -177,7 +188,10 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener } protected void createContextMenu() { - fMenuManager = new MenuManager(); + // Choose the id to be similar in format to what + // the GdbBasicCliConsole has as id, for consistency + String id = "GdbFullCliConsole.#ContextMenu"; //$NON-NLS-1$ + fMenuManager = new MenuManager(id, id); fMenuManager.setRemoveAllWhenShown(true); fMenuManager.addMenuListener((menuManager) -> { contextMenuAboutToShow(menuManager); }); Menu menu = fMenuManager.createContextMenu(fTerminalControl.getControl()); @@ -185,7 +199,7 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener createActions(); - getSite().registerContextMenu(null, fMenuManager, getSite().getSelectionProvider()); + getSite().registerContextMenu(id, fMenuManager, getSite().getSelectionProvider()); } protected void createActions() { @@ -220,6 +234,9 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener menuManager.add(fTerminateLaunchAction); menuManager.add(fAutoTerminateAction); menuManager.add(new Separator()); + + // Other plug-ins can contribute their actions here + menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); menuManager.add(fShowPreferencePageAction); } diff --git a/dsf-gdb/org.eclipse.cdt.examples.dsf.gdb/plugin.xml b/dsf-gdb/org.eclipse.cdt.examples.dsf.gdb/plugin.xml index 48784e99f4f..5dcafe3f209 100644 --- a/dsf-gdb/org.eclipse.cdt.examples.dsf.gdb/plugin.xml +++ b/dsf-gdb/org.eclipse.cdt.examples.dsf.gdb/plugin.xml @@ -180,6 +180,48 @@ + + + + + + + + + + + + + + + + + + + + + + + +