mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
[255026] Use inspector debug hover in DSF-GDB, based on a preference
This commit is contained in:
parent
9792eb18f1
commit
bece9d323f
8 changed files with 92 additions and 46 deletions
|
@ -72,6 +72,7 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentati
|
||||||
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
|
||||||
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory;
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactory;
|
||||||
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelSelectionPolicyFactory;
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelSelectionPolicyFactory;
|
||||||
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputProvider;
|
||||||
import org.eclipse.debug.ui.contexts.ISuspendTrigger;
|
import org.eclipse.debug.ui.contexts.ISuspendTrigger;
|
||||||
import org.eclipse.debug.ui.sourcelookup.ISourceDisplay;
|
import org.eclipse.debug.ui.sourcelookup.ISourceDisplay;
|
||||||
|
|
||||||
|
@ -123,7 +124,8 @@ public class GdbAdapterFactory
|
||||||
session.registerModelAdapter(SteppingController.class, fSteppingController);
|
session.registerModelAdapter(SteppingController.class, fSteppingController);
|
||||||
|
|
||||||
fViewModelAdapter = new GdbViewModelAdapter(session, fSteppingController);
|
fViewModelAdapter = new GdbViewModelAdapter(session, fSteppingController);
|
||||||
|
session.registerModelAdapter(IViewerInputProvider.class, fViewModelAdapter);
|
||||||
|
|
||||||
if (launch.getSourceLocator() instanceof ISourceLookupDirector) {
|
if (launch.getSourceLocator() instanceof ISourceLookupDirector) {
|
||||||
fSourceDisplayAdapter = new DsfSourceDisplayAdapter(session, (ISourceLookupDirector)launch.getSourceLocator(), fSteppingController);
|
fSourceDisplayAdapter = new DsfSourceDisplayAdapter(session, (ISourceLookupDirector)launch.getSourceLocator(), fSteppingController);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -12,8 +12,10 @@
|
||||||
package org.eclipse.cdt.dsf.gdb.internal.ui;
|
package org.eclipse.cdt.dsf.gdb.internal.ui;
|
||||||
|
|
||||||
import org.eclipse.cdt.dsf.debug.ui.AbstractDsfDebugTextHover;
|
import org.eclipse.cdt.dsf.debug.ui.AbstractDsfDebugTextHover;
|
||||||
|
import org.eclipse.cdt.dsf.gdb.IGdbDebugPreferenceConstants;
|
||||||
import org.eclipse.cdt.dsf.gdb.launching.GdbLaunchDelegate;
|
import org.eclipse.cdt.dsf.gdb.launching.GdbLaunchDelegate;
|
||||||
import org.eclipse.cdt.dsf.mi.service.MIExpressions;
|
import org.eclipse.cdt.dsf.mi.service.MIExpressions;
|
||||||
|
import org.eclipse.core.runtime.Platform;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debug editor text hover for GDB.
|
* Debug editor text hover for GDB.
|
||||||
|
@ -31,4 +33,14 @@ public class GdbDebugTextHover extends AbstractDsfDebugTextHover {
|
||||||
protected String getHoverFormat() {
|
protected String getHoverFormat() {
|
||||||
return MIExpressions.DETAILS_FORMAT;
|
return MIExpressions.DETAILS_FORMAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean useExpressionExplorer() {
|
||||||
|
if (Platform.getPreferencesService().getBoolean(GdbUIPlugin.PLUGIN_ID,
|
||||||
|
IGdbDebugPreferenceConstants.PREF_USE_INSPECTOR_HOVER,
|
||||||
|
true, null)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009 Ericsson and others.
|
* Copyright (c) 2009, 2010 Ericsson and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -84,6 +84,22 @@ public class GdbDebugPreferencePage extends FieldEditorPreferencePage implements
|
||||||
// need to set layout again
|
// need to set layout again
|
||||||
group.setLayout(groupLayout);
|
group.setLayout(groupLayout);
|
||||||
|
|
||||||
|
group= new Group(parent, SWT.NONE);
|
||||||
|
group.setText(MessagesForPreferences.GdbDebugPreferencePage_hover_label);
|
||||||
|
groupLayout= new GridLayout(3, false);
|
||||||
|
group.setLayout(groupLayout);
|
||||||
|
group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
|
|
||||||
|
boolField= new BooleanFieldEditor(
|
||||||
|
IGdbDebugPreferenceConstants.PREF_USE_INSPECTOR_HOVER,
|
||||||
|
MessagesForPreferences.GdbDebugPreferencePage_useInspectorHover_label,
|
||||||
|
group);
|
||||||
|
|
||||||
|
boolField.fillIntoGrid(group, 3);
|
||||||
|
addField(boolField);
|
||||||
|
// need to set layout again
|
||||||
|
group.setLayout(groupLayout);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009 Ericsson and others.
|
* Copyright (c) 2009, 2010 Ericsson and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -24,5 +24,6 @@ public class GdbPreferenceInitializer extends AbstractPreferenceInitializer {
|
||||||
IPreferenceStore store = GdbUIPlugin.getDefault().getPreferenceStore();
|
IPreferenceStore store = GdbUIPlugin.getDefault().getPreferenceStore();
|
||||||
store.setDefault(IGdbDebugPreferenceConstants.PREF_TRACES_ENABLE, true);
|
store.setDefault(IGdbDebugPreferenceConstants.PREF_TRACES_ENABLE, true);
|
||||||
store.setDefault(IGdbDebugPreferenceConstants.PREF_AUTO_TERMINATE_GDB, true);
|
store.setDefault(IGdbDebugPreferenceConstants.PREF_AUTO_TERMINATE_GDB, true);
|
||||||
|
store.setDefault(IGdbDebugPreferenceConstants.PREF_USE_INSPECTOR_HOVER, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009 Ericsson and others.
|
* Copyright (c) 2009, 2010 Ericsson and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -23,6 +23,8 @@ class MessagesForPreferences extends NLS {
|
||||||
public static String GdbDebugPreferencePage_enableTraces_label;
|
public static String GdbDebugPreferencePage_enableTraces_label;
|
||||||
public static String GdbDebugPreferencePage_termination_label;
|
public static String GdbDebugPreferencePage_termination_label;
|
||||||
public static String GdbDebugPreferencePage_autoTerminateGdb_label;
|
public static String GdbDebugPreferencePage_autoTerminateGdb_label;
|
||||||
|
public static String GdbDebugPreferencePage_hover_label;
|
||||||
|
public static String GdbDebugPreferencePage_useInspectorHover_label;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// initialize resource bundle
|
// initialize resource bundle
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Copyright (c) 2009 Ericsson and others.
|
# Copyright (c) 2009, 2010 Ericsson and others.
|
||||||
# All rights reserved. This program and the accompanying materials
|
# All rights reserved. This program and the accompanying materials
|
||||||
# are made available under the terms of the Eclipse Public License v1.0
|
# are made available under the terms of the Eclipse Public License v1.0
|
||||||
# which accompanies this distribution, and is available at
|
# which accompanies this distribution, and is available at
|
||||||
|
@ -16,3 +16,6 @@ GdbDebugPreferencePage_enableTraces_label=Enable GDB traces
|
||||||
|
|
||||||
GdbDebugPreferencePage_termination_label=Termination
|
GdbDebugPreferencePage_termination_label=Termination
|
||||||
GdbDebugPreferencePage_autoTerminateGdb_label=Terminate GDB when last process exits
|
GdbDebugPreferencePage_autoTerminateGdb_label=Terminate GDB when last process exits
|
||||||
|
|
||||||
|
GdbDebugPreferencePage_hover_label=Debug Text Hover
|
||||||
|
GdbDebugPreferencePage_useInspectorHover_label=Use Inspector Debug Hover
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2006, 2008 Wind River Systems and others.
|
* Copyright (c) 2006, 2010 Wind River Systems and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -11,8 +11,10 @@
|
||||||
package org.eclipse.cdt.dsf.gdb.internal.ui.viewmodel;
|
package org.eclipse.cdt.dsf.gdb.internal.ui.viewmodel;
|
||||||
|
|
||||||
import org.eclipse.cdt.dsf.concurrent.ThreadSafe;
|
import org.eclipse.cdt.dsf.concurrent.ThreadSafe;
|
||||||
|
import org.eclipse.cdt.dsf.debug.ui.IDsfDebugUIConstants;
|
||||||
import org.eclipse.cdt.dsf.debug.ui.viewmodel.AbstractDebugVMAdapter;
|
import org.eclipse.cdt.dsf.debug.ui.viewmodel.AbstractDebugVMAdapter;
|
||||||
import org.eclipse.cdt.dsf.debug.ui.viewmodel.SteppingController;
|
import org.eclipse.cdt.dsf.debug.ui.viewmodel.SteppingController;
|
||||||
|
import org.eclipse.cdt.dsf.debug.ui.viewmodel.expression.ExpressionVMProvider;
|
||||||
import org.eclipse.cdt.dsf.debug.ui.viewmodel.modules.ModulesVMProvider;
|
import org.eclipse.cdt.dsf.debug.ui.viewmodel.modules.ModulesVMProvider;
|
||||||
import org.eclipse.cdt.dsf.debug.ui.viewmodel.register.RegisterVMProvider;
|
import org.eclipse.cdt.dsf.debug.ui.viewmodel.register.RegisterVMProvider;
|
||||||
import org.eclipse.cdt.dsf.gdb.internal.ui.viewmodel.breakpoints.GdbBreakpointVMProvider;
|
import org.eclipse.cdt.dsf.gdb.internal.ui.viewmodel.breakpoints.GdbBreakpointVMProvider;
|
||||||
|
@ -50,6 +52,8 @@ public class GdbViewModelAdapter extends AbstractDebugVMAdapter
|
||||||
return new RegisterVMProvider(this, context, getSession());
|
return new RegisterVMProvider(this, context, getSession());
|
||||||
} else if (IDebugUIConstants.ID_EXPRESSION_VIEW.equals(context.getId()) ) {
|
} else if (IDebugUIConstants.ID_EXPRESSION_VIEW.equals(context.getId()) ) {
|
||||||
return new GdbExpressionVMProvider(this, context, getSession());
|
return new GdbExpressionVMProvider(this, context, getSession());
|
||||||
|
} else if (IDsfDebugUIConstants.ID_EXPRESSION_HOVER.equals(context.getId()) ) {
|
||||||
|
return new ExpressionVMProvider(this, context, getSession());
|
||||||
} else if (IDebugUIConstants.ID_MODULE_VIEW.equals(context.getId()) ) {
|
} else if (IDebugUIConstants.ID_MODULE_VIEW.equals(context.getId()) ) {
|
||||||
return new ModulesVMProvider(this, context, getSession());
|
return new ModulesVMProvider(this, context, getSession());
|
||||||
} else if (IDebugUIConstants.ID_BREAKPOINT_VIEW.equals(context.getId()) ) {
|
} else if (IDebugUIConstants.ID_BREAKPOINT_VIEW.equals(context.getId()) ) {
|
||||||
|
|
|
@ -1,40 +1,46 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009 Ericsson and others.
|
* Copyright (c) 2009, 2010 Ericsson and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Ericsson - initial implementation
|
* Ericsson - initial implementation
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.dsf.gdb;
|
package org.eclipse.cdt.dsf.gdb;
|
||||||
|
|
||||||
import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin;
|
import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @noimplement This interface is not intended to be implemented by clients.
|
* @noimplement This interface is not intended to be implemented by clients.
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
public interface IGdbDebugPreferenceConstants {
|
public interface IGdbDebugPreferenceConstants {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Boolean preference whether to enable GDB traces. Default is <code>true</code>.
|
* Boolean preference whether to enable GDB traces. Default is <code>true</code>.
|
||||||
*/
|
*/
|
||||||
public static final String PREF_TRACES_ENABLE = "tracesEnable"; //$NON-NLS-1$
|
public static final String PREF_TRACES_ENABLE = "tracesEnable"; //$NON-NLS-1$
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Boolean preference whether to automatically terminate GDB when the inferior exists. Default is <code>true</code>.
|
* Boolean preference whether to automatically terminate GDB when the inferior exists. Default is <code>true</code>.
|
||||||
*/
|
*/
|
||||||
public static final String PREF_AUTO_TERMINATE_GDB = "autoTerminateGdb"; //$NON-NLS-1$
|
public static final String PREF_AUTO_TERMINATE_GDB = "autoTerminateGdb"; //$NON-NLS-1$
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Help prefixes.
|
* Boolean preference whether to use the advanced Inspect debug text hover. Default is <code>true</code>.
|
||||||
*/
|
* @since 3.0
|
||||||
public static final String PREFIX = GdbPlugin.PLUGIN_ID + "."; //$NON-NLS-1$
|
*/
|
||||||
|
public static final String PREF_USE_INSPECTOR_HOVER = "useInspectorHover"; //$NON-NLS-1$
|
||||||
public static final String PREFERENCE_PAGE= PREFIX + "preference_page_context"; //$NON-NLS-1$
|
|
||||||
}
|
/**
|
||||||
|
* Help prefixes.
|
||||||
|
*/
|
||||||
|
public static final String PREFIX = GdbPlugin.PLUGIN_ID + "."; //$NON-NLS-1$
|
||||||
|
|
||||||
|
public static final String PREFERENCE_PAGE= PREFIX + "preference_page_context"; //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue