1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

Bug 303808: Add a Preference page for GDB CLI consoles

In addition, a new "Preferences" Action is available for
the GDB CLI consoles so the user can easily find/adjust them.

Change-Id: I8d2756683f92ca9b42454906dd600c97e1e07cd2
Signed-off-by: Alvaro Sanchez-Leon <alvsan09@gmail.com>
This commit is contained in:
Alvaro Sanchez-Leon 2016-09-14 16:35:08 -04:00
parent 1cfa38948c
commit b63adf43db
17 changed files with 277 additions and 73 deletions

View file

@ -61,3 +61,6 @@ command.connect.description = Connect to selected processes
command.connect.name = Connect
command.connect.label = Connect
command.connect.tooltip = Connect to process
# GDB CLI Console
console.preferences.name = Console

View file

@ -524,6 +524,12 @@
id="org.eclipse.cdt.dsf.gdb.ui.preferences.reversedebugpreferences"
name="%reverseDebugPreferences.name">
</page>
<page
category="org.eclipse.cdt.dsf.gdb.ui.preferences"
class="org.eclipse.cdt.dsf.gdb.internal.ui.preferences.GdbConsolePreferencePage"
id="org.eclipse.cdt.dsf.gdb.ui.preferences.console.GdbConsolePreferencePage"
name="%console.preferences.name">
</page>
</extension>
<extension
point="org.eclipse.ui.console.consolePageParticipants">

View file

@ -49,6 +49,8 @@ public class ConsoleMessages extends NLS {
public static String ConsoleAutoTerminateAction_name;
public static String ConsoleAutoTerminateAction_description;
public static String GdbConsolePreferences_name;
static {
// initialize resource bundle
NLS.initializeMessages(ConsoleMessages.class.getName(), ConsoleMessages.class);

View file

@ -41,3 +41,5 @@ ConsoleSelectAllAction_description=Select All available text in the associated c
ConsoleAutoTerminateAction_name=Terminate GDB when last process exits
ConsoleAutoTerminateAction_description=Automatically terminate GDB when the last process being debugged exits
GdbConsolePreferences_name=Preferences...

View file

@ -0,0 +1,38 @@
/*******************************************************************************
* Copyright (c) 2016 Ericsson and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.internal.ui.console;
import org.eclipse.cdt.dsf.gdb.IGdbDebugPreferenceConstants;
import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
public abstract class GdbAbstractConsolePreferenceListener implements IPropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent event) {
String property = event.getProperty();
if (property.equals(IGdbDebugPreferenceConstants.PREF_AUTO_TERMINATE_GDB)) {
String terminateStr = event.getNewValue().toString();
boolean terminate = terminateStr.equals(Boolean.FALSE.toString()) ? false : true;
handleAutoTerminatePref(terminate);
} else if (property.equals(IGdbDebugPreferenceConstants.PREF_CONSOLE_INVERTED_COLORS)) {
boolean enabled = Platform.getPreferencesService().getBoolean(GdbPlugin.PLUGIN_ID, IGdbDebugPreferenceConstants.PREF_CONSOLE_INVERTED_COLORS, IGdbDebugPreferenceConstants.CONSOLE_INVERTED_COLORS_DEFAULT, null);
handleInvertColorsPref(enabled);
} else if (property.equals(IGdbDebugPreferenceConstants.PREF_CONSOLE_BUFFERLINES)) {
int bufferLines = Platform.getPreferencesService().getInt(GdbPlugin.PLUGIN_ID, IGdbDebugPreferenceConstants.PREF_CONSOLE_BUFFERLINES, IGdbDebugPreferenceConstants.CONSOLE_BUFFERLINES_DEFAULT, null);
handleBufferLinesPref(bufferLines);
}
}
protected abstract void handleAutoTerminatePref(boolean enabled);
protected abstract void handleInvertColorsPref(boolean enabled);
protected abstract void handleBufferLinesPref(int bufferLines);
}

View file

@ -37,7 +37,13 @@ import org.eclipse.ui.part.IPageBookViewPage;
* towards GDB. It is used whenever {@link IGDBBackend#isFullGdbConsoleSupported()}
* returns false.
*/
public class GdbBasicCliConsole extends IOConsole implements IDebuggerConsole, IGdbCliConsole {
public class GdbBasicCliConsole extends IOConsole implements IDebuggerConsole {
/**
* A conversion factor used to resolve number of characters from number of lines
*/
private final static int CHARS_PER_LINE_AVG = 80;
private final static int HIGH_WATERMARK_OFFSET_CHARS = 8000;
private final ILaunch fLaunch;
private final String fLabel;
@ -45,6 +51,24 @@ public class GdbBasicCliConsole extends IOConsole implements IDebuggerConsole, I
private final IOConsoleOutputStream fOutputStream;
private final IOConsoleOutputStream fErrorStream;
private GdbAbstractConsolePreferenceListener fPreferenceListener = new GdbAbstractConsolePreferenceListener() {
@Override
protected void handleAutoTerminatePref(boolean enabled) {
// Nothing to do for this class
}
@Override
protected void handleInvertColorsPref(boolean enabled) {
setInvertedColors(enabled);
}
@Override
protected void handleBufferLinesPref(int bufferLines) {
setBufferLineLimit(bufferLines);
}
};
public GdbBasicCliConsole(ILaunch launch, String label, Process process) {
super("", null, null, false); //$NON-NLS-1$
fLaunch = launch;
@ -58,8 +82,10 @@ public class GdbBasicCliConsole extends IOConsole implements IDebuggerConsole, I
// Create a lifecycle listener to call init() and dispose()
new GdbConsoleLifecycleListener(this);
GdbUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(fPreferenceListener);
resetName();
setColors();
setDefaults();
new InputReadJob().schedule();
new OutputReadJob().schedule();
@ -77,19 +103,22 @@ public class GdbBasicCliConsole extends IOConsole implements IDebuggerConsole, I
} catch (IOException e) {
}
GdbUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(fPreferenceListener);
super.dispose();
}
private void setColors() {
// Set the inverted colors option based on the stored preference
private void setDefaults() {
IPreferenceStore store = GdbUIPlugin.getDefault().getPreferenceStore();
boolean enabled = store.getBoolean(IGdbDebugPreferenceConstants.PREF_CONSOLE_INVERTED_COLORS);
int bufferLines = store.getInt(IGdbDebugPreferenceConstants.PREF_CONSOLE_BUFFERLINES);
Display.getDefault().asyncExec(() -> {
getInputStream().setColor(Display.getDefault().getSystemColor(SWT.COLOR_GREEN));
fErrorStream.setColor(Display.getDefault().getSystemColor(SWT.COLOR_RED));
setInvertedColors(enabled);
setBufferLineLimit(bufferLines);
});
}
@ -152,8 +181,7 @@ public class GdbBasicCliConsole extends IOConsole implements IDebuggerConsole, I
return null;
}
@Override
public void setInvertedColors(boolean enable) {
private void setInvertedColors(boolean enable) {
if (enable) {
setBackground(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
fOutputStream.setColor(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
@ -163,6 +191,14 @@ public class GdbBasicCliConsole extends IOConsole implements IDebuggerConsole, I
}
}
private void setBufferLineLimit(int bufferLines) {
int chars = bufferLines * CHARS_PER_LINE_AVG;
// The buffer will be allowed to grow up-to the high watermark.
// When high watermark is passed, it will be trimmed-down to the low watermark.
// So here add an extra buffer for high watermark.
setWaterMarks(chars, chars + HIGH_WATERMARK_OFFSET_CHARS);
}
private class InputReadJob extends Job {
{
setSystem(true);

View file

@ -16,6 +16,7 @@ import org.eclipse.debug.ui.contexts.DebugContextEvent;
import org.eclipse.debug.ui.contexts.IDebugContextListener;
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.console.IConsoleView;
import org.eclipse.ui.internal.console.IOConsolePage;
@ -29,6 +30,7 @@ public class GdbBasicCliConsolePage extends IOConsolePage implements IDebugConte
private GdbConsoleInvertColorsAction fInvertColorsAction;
private GdbConsoleTerminateLaunchAction fTerminateLaunchAction;
private GdbConsoleShowPreferencesAction fShowPreferencePageAction;
public GdbBasicCliConsolePage(GdbBasicCliConsole gdbConsole, IConsoleView view) {
super(gdbConsole, view);
@ -58,12 +60,15 @@ public class GdbBasicCliConsolePage extends IOConsolePage implements IDebugConte
protected void createActions() {
fInvertColorsAction = new GdbConsoleInvertColorsAction();
fTerminateLaunchAction = new GdbConsoleTerminateLaunchAction(fLaunch);
fShowPreferencePageAction = new GdbConsoleShowPreferencesAction(getSite().getShell());
}
@Override
protected void contextMenuAboutToShow(IMenuManager menuManager) {
menuManager.add(fTerminateLaunchAction);
menuManager.add(fInvertColorsAction);
menuManager.add(new Separator());
menuManager.add(fShowPreferencePageAction);
}
/**

View file

@ -7,9 +7,6 @@
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.internal.ui.console;
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
import org.eclipse.cdt.debug.ui.debuggerconsole.IDebuggerConsole;
import org.eclipse.cdt.debug.ui.debuggerconsole.IDebuggerConsoleManager;
import org.eclipse.cdt.dsf.gdb.IGdbDebugPreferenceConstants;
import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin;
import org.eclipse.cdt.dsf.gdb.internal.ui.GdbUIPlugin;
@ -38,12 +35,5 @@ public class GdbConsoleInvertColorsAction extends Action {
preferences.flush();
} catch (BackingStoreException e) {
}
IDebuggerConsoleManager manager = CDebugUIPlugin.getDebuggerConsoleManager();
for (IDebuggerConsole console : manager.getConsoles()) {
if (console instanceof IGdbCliConsole) {
((IGdbCliConsole)console).setInvertedColors(!enabled);
}
}
}
}

View file

@ -0,0 +1,27 @@
/*******************************************************************************
* Copyright (c) 2016 Ericsson AB and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.internal.ui.console;
import org.eclipse.jface.action.Action;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.dialogs.PreferencesUtil;
public class GdbConsoleShowPreferencesAction extends Action {
private final static String PREF_PAGE_ID = "org.eclipse.cdt.dsf.gdb.ui.preferences.console.GdbConsolePreferencePage"; //$NON-NLS-1$
private final Shell fShell;
public GdbConsoleShowPreferencesAction(Shell shell) {
fShell = shell;
setText(ConsoleMessages.GdbConsolePreferences_name);
}
@Override
public void run() {
PreferencesUtil.createPreferenceDialogOn(fShell, PREF_PAGE_ID, new String[] { PREF_PAGE_ID }, null).open();
}
}

View file

@ -36,7 +36,7 @@ import org.eclipse.ui.part.IPageBookViewPage;
* full-featured CLI interface. This is only supported with GDB >= 7.12
* and if IGDBBackend.isFullGdbConsoleSupported() returns true.
*/
public class GdbFullCliConsole extends AbstractConsole implements IDebuggerConsole, IGdbCliConsole {
public class GdbFullCliConsole extends AbstractConsole implements IDebuggerConsole {
private final ILaunch fLaunch;
private final String fLabel;
private final PTY fGdbPty;
@ -203,13 +203,6 @@ public class GdbFullCliConsole extends AbstractConsole implements IDebuggerConso
return fConsolePage;
}
@Override
public void setInvertedColors(boolean enable) {
if (fConsolePage != null) {
fConsolePage.setInvertedColors(enable);
}
}
public IGdbTerminalControlConnector getTerminalControlConnector() {
return fTerminalConnector;
}

View file

@ -26,8 +26,6 @@ import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
@ -67,8 +65,27 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
private GdbConsoleSelectAllAction fSelectAllAction;
private GdbAutoTerminateAction fAutoTerminateAction;
private IPropertyChangeListener fConsolePropertyChangeListener;
private GdbConsoleShowPreferencesAction fShowPreferencePageAction;
private GdbAbstractConsolePreferenceListener fPreferenceListener = new GdbAbstractConsolePreferenceListener() {
@Override
protected void handleAutoTerminatePref(boolean enabled) {
if (fAutoTerminateAction != null) {
fAutoTerminateAction.setChecked(enabled);
}
}
@Override
protected void handleInvertColorsPref(boolean enabled) {
setInvertedColors(enabled);
}
@Override
protected void handleBufferLinesPref(int bufferLines) {
setBufferLineLimit(bufferLines);
}
};
public GdbFullCliConsolePage(GdbFullCliConsole gdbConsole, IDebuggerConsoleView view, PTY pty) {
fConsole = gdbConsole;
@ -77,18 +94,7 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
fLaunch = gdbConsole.getLaunch();
fGdbPty = pty;
fConsolePropertyChangeListener = new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(IGdbDebugPreferenceConstants.PREF_AUTO_TERMINATE_GDB) && fAutoTerminateAction != null) {
String terminateStr = event.getNewValue().toString();
boolean terminate = terminateStr.equals(Boolean.FALSE.toString()) ? false : true;
fAutoTerminateAction.setChecked(terminate);
}
}
};
GdbUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(fConsolePropertyChangeListener);
GdbUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(fPreferenceListener);
}
@Override
@ -98,8 +104,7 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
getSite().getWorkbenchWindow()).removeDebugContextListener(this);
fTerminalControl.disposeTerminal();
fMenuManager.dispose();
GdbUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(fConsolePropertyChangeListener);
GdbUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(fPreferenceListener);
}
@Override
@ -116,8 +121,16 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
configureToolBar(getSite().getActionBars().getToolBarManager());
}
private void setDefaults() {
IPreferenceStore store = GdbUIPlugin.getDefault().getPreferenceStore();
setInvertedColors(store.getBoolean(IGdbDebugPreferenceConstants.PREF_CONSOLE_INVERTED_COLORS));
setBufferLineLimit(store.getInt(IGdbDebugPreferenceConstants.PREF_CONSOLE_BUFFERLINES));
}
private void createTerminalControl() {
// Create the terminal control that will be used to interact with GDB
// Don't use common terminal preferences as GDB consoles are having their own
boolean useCommonPrefs = false;
fTerminalControl = TerminalViewControlFactory.makeControl(
new ITerminalListener() {
@Override public void setState(TerminalState state) {}
@ -125,7 +138,7 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
},
fMainComposite,
new ITerminalConnector[] {},
true);
useCommonPrefs);
fTerminalControl.setConnector(new GdbTerminalPageConnector(fGdbTerminalControlConnector, fGdbPty));
@ -133,15 +146,11 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
fTerminalControl.setEncoding(Charset.defaultCharset().name());
} catch (UnsupportedEncodingException e) {
}
if (fTerminalControl instanceof ITerminalControl) {
((ITerminalControl)fTerminalControl).setConnectOnEnterIfClosed(false);
((ITerminalControl)fTerminalControl).setVT100LineWrapping(true);
}
// Set the inverted colors option based on the stored preference
IPreferenceStore store = GdbUIPlugin.getDefault().getPreferenceStore();
setInvertedColors(store.getBoolean(IGdbDebugPreferenceConstants.PREF_CONSOLE_INVERTED_COLORS));
// Must use syncExec because the logic within must complete before the rest
// of the class methods (specifically getProcess()) is called
@ -151,6 +160,10 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
if (fTerminalControl != null && !fTerminalControl.isDisposed()) {
fTerminalControl.clearTerminal();
fTerminalControl.connectTerminal();
// The actual terminal widget initializes its defaults in the line above,
// lets override them with our application defaults right after.
setDefaults();
}
}
});
@ -177,6 +190,7 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
fScrollLockAction = new GdbConsoleScrollLockAction(fTerminalControl);
fSelectAllAction = new GdbConsoleSelectAllAction(fTerminalControl);
fAutoTerminateAction = new GdbAutoTerminateAction();
fShowPreferencePageAction = new GdbConsoleShowPreferencesAction(getSite().getShell());
}
protected void configureToolBar(IToolBarManager mgr) {
@ -200,6 +214,9 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
menuManager.add(fTerminateLaunchAction);
menuManager.add(fInvertColorsAction);
menuManager.add(fAutoTerminateAction);
menuManager.add(new Separator());
menuManager.add(fShowPreferencePageAction);
}
@Override
@ -212,6 +229,7 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
fTerminalControl.setFocus();
}
/**
* Returns the launch to which the current selection belongs.
*
@ -236,7 +254,15 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
}
}
public void setInvertedColors(boolean enable) {
private void setInvertedColors(boolean enable) {
if (fTerminalControl != null) {
fTerminalControl.setInvertedColors(enable);
}
}
private void setBufferLineLimit(int bufferLines) {
if (fTerminalControl != null) {
fTerminalControl.setBufferLineLimit(bufferLines);
}
}
}

View file

@ -1,17 +0,0 @@
/*******************************************************************************
* Copyright (c) 2016 Ericsson and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.internal.ui.console;
import org.eclipse.ui.console.IConsole;
public interface IGdbCliConsole extends IConsole {
/**
* Enable or disable the inverted color option of the console.
*/
void setInvertedColors(boolean enable);
}

View file

@ -0,0 +1,68 @@
/*******************************************************************************
* Copyright (c) 2016 Wind River Systems, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Initial version is based on:
* org.eclipse.tm.terminal.control/src/org/eclipse/tm/internal/terminal/preferences/TerminalPreferencePage.java
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.internal.ui.preferences;
import org.eclipse.cdt.dsf.gdb.IGdbDebugPreferenceConstants;
import org.eclipse.cdt.dsf.gdb.internal.ui.GdbUIPlugin;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
/**
* GDB CLI Console Preference Page.
*
* @noextend This class is not intended to be subclassed by clients.
* @noinstantiate This class is not intended to be instantiated by clients.
* @noreference This class is not intended to be referenced by clients.
*/
public class GdbConsolePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
private static final int MIN_BUFFER_LINES = 16; /* minimum of ~1000 chars */
// Instead of using a maximum of Integer.MAX_VALUE (which is some obscure number),
// let's use a well defined limit e.g. 2 billion lines, which is readable.
private static final int MAX_BUFFER_LINES = 2000000000;
public GdbConsolePreferencePage() {
super(GRID);
}
@Override
protected void createFieldEditors() {
setupPage();
}
@Override
public void init(IWorkbench workbench) {
// do nothing
}
private void setupPage() {
setupData();
setupEditors();
}
private void setupData() {
setPreferenceStore(GdbUIPlugin.getDefault().getPreferenceStore());
}
private void setupEditors() {
BooleanFieldEditor invertColors = new BooleanFieldEditor(IGdbDebugPreferenceConstants.PREF_CONSOLE_INVERTED_COLORS,
MessagesForPreferences.GdbConsolePreferencePage_InvertColors, getFieldEditorParent());
IntegerFieldEditor editorBufferSize = new IntegerFieldEditor(IGdbDebugPreferenceConstants.PREF_CONSOLE_BUFFERLINES,
MessagesForPreferences.GdbConsolePreferencePage_BufferLines, getFieldEditorParent());
editorBufferSize.setValidRange(MIN_BUFFER_LINES, MAX_BUFFER_LINES);
addField(invertColors);
addField(editorBufferSize);
}
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2009, 2012 Ericsson and others.
* Copyright (c) 2009, 2016 Ericsson and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -73,6 +73,9 @@ class MessagesForPreferences extends NLS {
public static String ReverseDebugPreferencePage_BranchTrace;
public static String ReverseDebugPreferencePage_ProcessorTrace;
public static String GdbConsolePreferencePage_InvertColors;
public static String GdbConsolePreferencePage_BufferLines;
static {
// initialize resource bundle
NLS.initializeMessages(MessagesForPreferences.class.getName(), MessagesForPreferences.class);

View file

@ -1,5 +1,5 @@
###############################################################################
# Copyright (c) 2009, 2012 Ericsson and others.
# Copyright (c) 2009, 2016 Ericsson and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
@ -61,3 +61,6 @@ ReverseDebugPreferencePage_SelectHardwareTracingMethod=Hardware technology for i
ReverseDebugPreferencePage_GDBPreference=Automatic (let GDB choose)
ReverseDebugPreferencePage_BranchTrace=Branch Trace Store
ReverseDebugPreferencePage_ProcessorTrace=Intel(R) Processor Trace
GdbConsolePreferencePage_InvertColors = Invert console colors
GdbConsolePreferencePage_BufferLines = Console buffer lines:

View file

@ -173,9 +173,27 @@ public interface IGdbDebugPreferenceConstants {
public static final String PREF_REVERSE_TRACE_METHOD_PROCESSOR_TRACE = "UseProcessorTrace"; //$NON-NLS-1$
/**
* Boolean preference indicating if the GDB console should be shown using inverted colors. Default is <code>false</code>.
* Preference key controlling the coloring of GDB CLI consoles
* @since 5.2
*/
public static final String PREF_CONSOLE_INVERTED_COLORS = PREFIX + "consoleInvertedColors"; //$NON-NLS-1$
}
/**
* Default preference value for the colors used by GDB CLI consoles
* @since 5.2
*/
public static final Boolean CONSOLE_INVERTED_COLORS_DEFAULT = false;
/**
* Preference key controlling the number of buffered lines used by GDB CLI consoles
* @since 5.2
*/
public static final String PREF_CONSOLE_BUFFERLINES = PREFIX + "consoleBufferLines"; //$NON-NLS-1$
/**
* Default preference value for the number of buffered lines used by GDB CLI consoles
* @since 5.2
*/
public static final int CONSOLE_BUFFERLINES_DEFAULT = 1000;
}

View file

@ -47,6 +47,7 @@ public class GdbPreferenceInitializer extends AbstractPreferenceInitializer {
node.putBoolean(IGdbDebugPreferenceConstants.PREF_HIDE_RUNNING_THREADS, false);
node.putBoolean(IGdbDebugPreferenceConstants.PREF_AGGRESSIVE_BP_FILTER, true);
node.put(IGdbDebugPreferenceConstants.PREF_REVERSE_TRACE_METHOD_HARDWARE, IGdbDebugPreferenceConstants.PREF_REVERSE_TRACE_METHOD_GDB_TRACE);
node.putBoolean(IGdbDebugPreferenceConstants.PREF_CONSOLE_INVERTED_COLORS, false);
node.putBoolean(IGdbDebugPreferenceConstants.PREF_CONSOLE_INVERTED_COLORS, IGdbDebugPreferenceConstants.CONSOLE_INVERTED_COLORS_DEFAULT);
node.putInt(IGdbDebugPreferenceConstants.PREF_CONSOLE_BUFFERLINES, IGdbDebugPreferenceConstants.CONSOLE_BUFFERLINES_DEFAULT);
}
}