From 2dea3d4a339d49579b06d13399e66adb03556fd8 Mon Sep 17 00:00:00 2001
From: Markus Schorn
Date: Wed, 21 Dec 2011 13:56:22 +0100
Subject: [PATCH 01/60] Bug 362442: Considering all expansions for significant
macros.
---
.../cdt/internal/pdom/tests/DBTest.java | 14 +-
.../core/parser/scanner/CPreprocessor.java | 19 +-
.../core/parser/scanner/ScannerContext.java | 7 +-
.../parser/scanner/SignificantMacros.java | 74 ++--
.../eclipse/cdt/internal/core/pdom/PDOM.java | 7 +-
.../cdt/internal/core/pdom/db/Chunk.java | 36 +-
.../cdt/internal/core/pdom/db/Database.java | 39 +-
.../cdt/internal/core/pdom/db/LongString.java | 386 ++++++------------
.../internal/core/pdom/db/ShortString.java | 301 ++++----------
9 files changed, 331 insertions(+), 552 deletions(-)
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/DBTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/DBTest.java
index 932fc73b827..08275ed495a 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/DBTest.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/pdom/tests/DBTest.java
@@ -136,10 +136,12 @@ public class DBTest extends BaseTestCase {
this.key = key;
}
+ @Override
public int compare(long record) throws CoreException {
return db.getString(db.getRecPtr(record + 4)).compare(key, true);
}
+ @Override
public boolean visit(long record) throws CoreException {
this.record = record;
return false;
@@ -185,6 +187,7 @@ public class DBTest extends BaseTestCase {
};
IBTreeComparator comparator = new IBTreeComparator() {
+ @Override
public int compare(long record1, long record2) throws CoreException {
IString string1 = db.getString(db.getRecPtr(record1 + 4));
IString string2 = db.getString(db.getRecPtr(record2 + 4));
@@ -221,9 +224,10 @@ public class DBTest extends BaseTestCase {
assertCMP("", EQ, "", true);
assertCMP("", EQ, "", false);
- doTrials(1000, 1, ShortString.MAX_LENGTH, r, true);
-
- doTrials(1000, 1, ShortString.MAX_LENGTH, r, false);
+ doTrials(1000, 1, ShortString.MAX_BYTE_LENGTH/2, r, true);
+ doTrials(1000, 1, ShortString.MAX_BYTE_LENGTH/2, r, false);
+ doTrials(1000, 1, ShortString.MAX_BYTE_LENGTH, r, true);
+ doTrials(1000, 1, ShortString.MAX_BYTE_LENGTH, r, false);
assertCMP("a", LT, "b", true);
assertCMP("aa", LT, "ab", true);
@@ -239,8 +243,8 @@ public class DBTest extends BaseTestCase {
public void testLongStringComparison() throws CoreException {
Random r= new Random(314159265);
- doTrials(100, ShortString.MAX_LENGTH+1, ShortString.MAX_LENGTH*2, r, true);
- doTrials(100, ShortString.MAX_LENGTH+1, ShortString.MAX_LENGTH*2, r, false);
+ doTrials(100, ShortString.MAX_BYTE_LENGTH+1, ShortString.MAX_BYTE_LENGTH*2, r, true);
+ doTrials(100, ShortString.MAX_BYTE_LENGTH+1, ShortString.MAX_BYTE_LENGTH*2, r, false);
}
private void doTrials(int n, int min, int max, Random r, boolean caseSensitive) throws CoreException {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java
index 0cd5d9e9944..c84bd8ff4da 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java
@@ -133,7 +133,7 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
@Override
public boolean visitValue(char[] macro, char[] value) {
PreprocessorMacro m = fMacroDictionary.get(macro);
- return m != null && CharArrayUtils.equals(m.getExpansion(), value);
+ return m != null && CharArrayUtils.equals(SignificantMacros.shortenValue(m.getExpansion()), value);
}
private boolean isDefined(char[] macro) {
@@ -246,7 +246,6 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
private final LocationMap fLocationMap;
private CharArraySet fPreventInclusion= new CharArraySet(0);
- private final Lexer fRootLexer;
private final ScannerContext fRootContext;
protected ScannerContext fCurrentContext;
@@ -302,8 +301,8 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
setupMacroDictionary(configuration, info, language);
ILocationCtx ctx= fLocationMap.pushTranslationUnit(filePath, fRootContent.getSource());
- fRootLexer= new Lexer(fRootContent.getSource(), fLexOptions, this, this);
- fRootContext= fCurrentContext= new ScannerContext(ctx, null, fRootLexer);
+ Lexer lexer = new Lexer(fRootContent.getSource(), fLexOptions, this, this);
+ fRootContext= fCurrentContext= new ScannerContext(ctx, null, lexer);
if (info instanceof IExtendedScannerInfo) {
final IExtendedScannerInfo einfo= (IExtendedScannerInfo) info;
fPreIncludedFiles= new String[][] { einfo.getMacroFiles(), einfo.getIncludeFiles() };
@@ -346,11 +345,11 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
@Override
public void setContentAssistMode(int offset) {
fContentAssistLimit= offset;
- fRootLexer.setContentAssistMode(offset);
+ fRootContext.getLexer().setContentAssistMode(offset);
}
public boolean isContentAssistMode() {
- return fRootLexer.isContentAssistMode();
+ return fRootContext.getLexer().isContentAssistMode();
}
@Override
@@ -469,7 +468,7 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
InternalFileContent content= fFileContentProvider.getContentForContextToHeaderGap(location,
fMacroDictionaryFacade);
if (content != null && content.getKind() == InclusionKind.FOUND_IN_INDEX) {
- processInclusionFromIndex(0, location, content, false);
+ processInclusionFromIndex(0, content, false);
}
detectIncludeGuard(location, fRootContent.getSource(), fRootContext);
@@ -577,7 +576,7 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
}
try {
- t= internalFetchToken(fRootContext, CHECK_NUMBERS, false);
+ t= internalFetchToken(fRootContext, CHECK_NUMBERS | REPORT_SIGNIFICANT_MACROS | IGNORE_UNDEFINED_SIGNIFICANT_MACROS, false);
} catch (OffsetLimitReachedException e) {
fHandledCompletion= true;
throw e;
@@ -1463,7 +1462,7 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
} catch (CoreException e) {
}
- processInclusionFromIndex(poundOffset, path, fi, true);
+ processInclusionFromIndex(poundOffset, fi, true);
break;
case USE_SOURCE:
// Will be parsed
@@ -1502,7 +1501,7 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
}
}
- private void processInclusionFromIndex(int offset, String path, InternalFileContent fi, boolean updateContext) {
+ private void processInclusionFromIndex(int offset, InternalFileContent fi, boolean updateContext) {
List mdefs= fi.getMacroDefinitions();
for (IIndexMacro macro : mdefs) {
addMacroDefinition(macro);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerContext.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerContext.java
index 256fb07825e..9a059e6f9ad 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerContext.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerContext.java
@@ -337,7 +337,9 @@ final class ScannerContext {
public void significantMacro(IMacroBinding macro) {
final char[] macroName= macro.getNameCharArray();
if (fInternalModifications != null && !fInternalModifications.containsKey(macroName)) {
- fSignificantMacros.put(macroName, macro.getExpansion());
+ final char[] expansion = macro.getExpansion();
+ if (expansion != null)
+ fSignificantMacros.put(macroName, SignificantMacros.shortenValue(expansion));
}
}
@@ -398,18 +400,21 @@ final class ScannerContext {
return;
sm.accept(new ISignificantMacros.IVisitor() {
+ @Override
public boolean visitValue(char[] macro, char[] value) {
if (!fInternalModifications.containsKey(macro)) {
fSignificantMacros.put(macro, value);
}
return true;
}
+ @Override
public boolean visitUndefined(char[] macro) {
if (!fInternalModifications.containsKey(macro)) {
fSignificantMacros.put(macro, SignificantMacros.UNDEFINED);
}
return true;
}
+ @Override
public boolean visitDefined(char[] macro) {
if (!fInternalModifications.containsKey(macro)) {
fSignificantMacros.put(macro, SignificantMacros.DEFINED);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/SignificantMacros.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/SignificantMacros.java
index a997540fd5b..909b930f61b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/SignificantMacros.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/SignificantMacros.java
@@ -28,11 +28,10 @@ import org.eclipse.cdt.core.parser.util.CharArrayUtils;
* A null string is encoded as a single comma.
*/
public class SignificantMacros implements ISignificantMacros {
- public static final char[] UNDEFINED = {};
- public static final char[] DEFINED = {};
- private static final int ENCODED_UNDEFINED = Character.MAX_VALUE;
- private static final int ENCODED_DEFINED = Character.MAX_VALUE-1;
+ public static final char[] DEFINED = {0};
+ public static final char[] UNDEFINED = {1};
private static final Comparator
+ */
+ void columnCreated();
+
+ /**
+ * Hook method called after a column has been removed from the {@link org.eclipse.jface.text.source.CompositeRuler}.
+ *
+ * This happens when
+ *
+ *
the column is hidden by the user or programmatically
+ *
the disassembly part is closed
+ *
the disassembly part input changes and the column no longer targets the disassembly part
+ * contents.
+ *
+ *
+ *
+ * The column will not be used after this method has been called. A new
+ * column will be instantiated if the same column type should be shown for
+ * the same disassembly part.
+ *
+ */
+ void columnRemoved();
+
+}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/disassembly/rulers/RulerColumnDescriptor.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/disassembly/rulers/RulerColumnDescriptor.java
new file mode 100644
index 00000000000..48dfaef455f
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/disassembly/rulers/RulerColumnDescriptor.java
@@ -0,0 +1,309 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2011 IBM Corporation 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
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Wind River Systems, Inc. - adapted for for disassembly parts
+ *******************************************************************************/
+package org.eclipse.cdt.debug.ui.disassembly.rulers;
+
+import java.net.URL;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.InvalidRegistryObjectException;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.internal.texteditor.rulers.ExtensionPointHelper;
+import org.eclipse.ui.internal.texteditor.rulers.RulerColumnMessages;
+import org.eclipse.ui.internal.texteditor.rulers.RulerColumnPlacement;
+import org.eclipse.ui.internal.texteditor.rulers.RulerColumnTarget;
+
+
+/**
+ * The description of an extension to the
+ * org.eclipse.ui.workbench.texteditor.rulerColumns extension point. Instances are
+ * immutable. Instances can be obtained from a {@link RulerColumnRegistry}.
+ *
+ * @since 7.2
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ */
+public final class RulerColumnDescriptor {
+ /** The extension schema name of the class attribute. */
+ private static final String CLASS= "class"; //$NON-NLS-1$
+ /** The extension schema name of the id attribute. */
+ private static final String ID= "id"; //$NON-NLS-1$
+ /** The extension schema name of the optional name attribute. */
+ private static final String NAME= "name"; //$NON-NLS-1$
+ /** The extension schema name of the optional enabled attribute. */
+ private static final String ENABLED= "enabled"; //$NON-NLS-1$
+ /** The extension schema name of the optional icon attribute. */
+ private static final String ICON= "icon"; //$NON-NLS-1$
+ /** The extension schema name of the optional global attribute. */
+ private static final String GLOBAL= "global"; //$NON-NLS-1$
+ /** The extension schema name of the optional menu inclusion attribute. */
+ private static final String INCLUDE_IN_MENU= "includeInMenu"; //$NON-NLS-1$
+ /** The extension schema name of the targetEditor element. */
+ private static final String TARGET_ID= "targetId"; //$NON-NLS-1$
+ /** The extension schema name of the targetClass element. */
+ private static final String TARGET_CLASS= "targetClass"; //$NON-NLS-1$
+ /** The extension schema name of the placement element. */
+ private static final String PLACEMENT= "placement"; //$NON-NLS-1$
+
+ /** The identifier of the extension. */
+ private final String fId;
+ /** The name of the extension, equal to the id if no name is given. */
+ private final String fName;
+ /** The icon descriptor. */
+ private final ImageDescriptor fIcon;
+ /** The configuration element of this extension. */
+ private final IConfigurationElement fElement;
+ /** The target specification of the ruler column contribution. */
+ private final RulerColumnTarget fTarget;
+ /** The placement specification of the ruler column contribution. */
+ private final RulerColumnPlacement fRulerColumnPlacement;
+ /** The default enablement setting of the ruler column contribution. */
+ private final boolean fDefaultEnablement;
+ /** The global setting of the ruler column contribution. */
+ private final boolean fIsGlobal;
+ /** The menu inclusion setting of the ruler column contribution. */
+ private final boolean fIncludeInMenu;
+
+ /**
+ * Creates a new descriptor.
+ *
+ * @param element the configuration element to read
+ * @param registry the computer registry creating this descriptor
+ * @throws InvalidRegistryObjectException if the configuration element is no longer valid
+ * @throws CoreException if the configuration element does not conform to the extension point spec
+ */
+ RulerColumnDescriptor(IConfigurationElement element, RulerColumnRegistry registry) throws InvalidRegistryObjectException, CoreException {
+ Assert.isLegal(registry != null);
+ Assert.isLegal(element != null);
+ fElement= element;
+
+ ExtensionPointHelper helper= new ExtensionPointHelper(element);
+
+ fId= helper.getNonNullAttribute(ID);
+ fName= helper.getDefaultAttribute(NAME, fId);
+ helper.getNonNullAttribute(CLASS); // just check validity
+ URL iconURL= helper.getDefaultResourceURL(ICON, null);
+ fIcon= iconURL == null ? null : ImageDescriptor.createFromURL(iconURL);
+ fDefaultEnablement= helper.getDefaultAttribute(ENABLED, true);
+ fIsGlobal= helper.getDefaultAttribute(GLOBAL, true);
+ fIncludeInMenu= helper.getDefaultAttribute(INCLUDE_IN_MENU, true);
+
+ @SuppressWarnings("null")
+ IConfigurationElement[] targetEditors= element.getChildren(TARGET_ID);
+ IConfigurationElement[] targetClasses= element.getChildren(TARGET_CLASS);
+
+ RulerColumnTarget combined= null;
+ for (int i= 0; i < targetEditors.length; i++) {
+ IConfigurationElement targetEditor= targetEditors[i];
+ RulerColumnTarget target= RulerColumnTarget.createEditorIdTarget(new ExtensionPointHelper(targetEditor).getNonNullAttribute(ID));
+ combined= RulerColumnTarget.createOrTarget(combined, target);
+ }
+ for (int i= 0; i < targetClasses.length; i++) {
+ IConfigurationElement targetClass= targetClasses[i];
+ RulerColumnTarget target= RulerColumnTarget.createClassTarget(new ExtensionPointHelper(targetClass).getNonNullAttribute(CLASS));
+ combined= RulerColumnTarget.createOrTarget(combined, target);
+ }
+ fTarget= combined;
+
+ IConfigurationElement[] placements= element.getChildren(PLACEMENT);
+ switch (placements.length) {
+ case 0:
+ fRulerColumnPlacement= new RulerColumnPlacement();
+ break;
+ case 1:
+ fRulerColumnPlacement= new RulerColumnPlacement(placements[0]);
+ break;
+ default:
+ helper.fail(RulerColumnMessages.RulerColumnDescriptor_invalid_placement_msg);
+ fRulerColumnPlacement= null; // dummy
+ break;
+ }
+
+ Assert.isTrue(fTarget != null);
+ Assert.isTrue(fRulerColumnPlacement != null);
+ }
+
+ /**
+ * Returns the identifier of the described extension.
+ *
+ * @return the identifier of the described extension
+ */
+ public String getId() {
+ return fId;
+ }
+
+ /**
+ * Returns the name of the described extension.
+ *
+ * @return the name of the described extension
+ */
+ public String getName() {
+ return fName;
+ }
+
+ /**
+ * Returns the image descriptor of the described extension, null if it does not
+ * have an image.
+ *
+ * @return the image descriptor of the described extension or null for no image
+ */
+ public ImageDescriptor getIcon() {
+ return fIcon;
+ }
+
+ RulerColumnTarget getTarget() {
+ return fTarget;
+ }
+
+ RulerColumnPlacement getPlacement() {
+ return fRulerColumnPlacement;
+ }
+
+ /**
+ * Returns the default enablement of the described extension. Editors that support this
+ * contribution should typically enable the column by default.
+ *
+ * @return the default enablement of the described extension
+ */
+ public boolean getDefaultEnablement() {
+ return fDefaultEnablement;
+ }
+
+ /**
+ * Returns the global property of the described extension. Changing the visibility of a column
+ * with the global property set to true should typically affect all matching
+ * editors. Changing the visibility of a column with the global property set to
+ * false should only affect the current disassembly part.
+ *
+ * @return the global property of the described extension
+ */
+ public boolean isGlobal() {
+ return fIsGlobal;
+ }
+
+ /**
+ * Returns the menu inclusion property of the described extension. A toggle menu entry should be
+ * inluded in the ruler context menu for columns with this property set to true.
+ *
+ * @return the menu inclusion property of the described extension
+ */
+ public boolean isIncludedInMenu() {
+ return fIncludeInMenu;
+ }
+
+ /**
+ * Returns true if this contribution matches the passed disassembly part , false if not.
+ *
+ * @param disassembly the disassembly part to check
+ * @return true if this contribution targets the passed disassembly part
+ */
+ public boolean matchesPart(IWorkbenchPart disassembly) {
+ Assert.isLegal(disassembly != null);
+ RulerColumnTarget target= getTarget();
+
+ @SuppressWarnings("null")
+ IWorkbenchPartSite site= disassembly.getSite();
+ if (site != null && target.matchesEditorId(site.getId()))
+ return true;
+
+ if (target.matchesClass(disassembly.getClass()))
+ return true;
+
+ IContentType contentType= getContentType(disassembly);
+ return contentType != null && target.matchesContentType(contentType);
+
+ }
+
+ /**
+ * Creates a {@link IContributedRulerColumn} instance as described by the receiver. This may load the contributing plug-in.
+ *
+ * @param disassembly the disassembly part that loads the contributed column
+ * @return the instantiated column
+ * @throws CoreException as thrown by {@link IConfigurationElement#createExecutableExtension(String)}
+ * @throws InvalidRegistryObjectException as thrown by {@link IConfigurationElement#createExecutableExtension(String)}
+ */
+ public IContributedRulerColumn createColumn(IWorkbenchPart disassembly) throws CoreException, InvalidRegistryObjectException {
+ Assert.isLegal(disassembly != null);
+ IContributedRulerColumn column= (IContributedRulerColumn)fElement.createExecutableExtension(CLASS);
+ column.setDescriptor(this);
+ column.setDisassemblyPart(disassembly);
+ column.columnCreated();
+ return column;
+ }
+
+ /*
+ * @see java.lang.Object#toString()
+ * @since 3.3
+ */
+ @Override
+ public String toString() {
+ return "RulerColumnDescriptor[name=" + getName() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ IConfigurationElement getConfigurationElement() {
+ return fElement;
+ }
+
+ /*
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime= 31;
+ int result= 1;
+ result= prime * result + ((fId == null) ? 0 : fId.hashCode());
+ return result;
+ }
+
+ /*
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final RulerColumnDescriptor other= (RulerColumnDescriptor) obj;
+ if (fId == null) {
+ if (other.fId != null)
+ return false;
+ } else if (!fId.equals(other.fId))
+ return false;
+ return true;
+ }
+
+ /**
+ * Returns the content type of the disassembly part's input, null if the disassembly part input or
+ * the document provider is null or the content type cannot be determined.
+ *
+ * @param disassembly part the disassembly part to get the content type from
+ * @return the content type of the disassembly part's input, null if it cannot be
+ * determined
+ */
+ private IContentType getContentType(IWorkbenchPart disassembly) {
+ return null;
+ }
+
+ String getContributor() {
+ try {
+ return fElement.getContributor().getName();
+ } catch (InvalidRegistryObjectException e) {
+ return "unknown"; //$NON-NLS-1$
+ }
+ }
+}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/disassembly/rulers/RulerColumnPreferenceAdapter.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/disassembly/rulers/RulerColumnPreferenceAdapter.java
new file mode 100644
index 00000000000..b924ec41782
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/disassembly/rulers/RulerColumnPreferenceAdapter.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 201 IBM Corporation 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
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Wind River Systems, Inc. - adapted for for disassembly parts
+ *******************************************************************************/
+package org.eclipse.cdt.debug.ui.disassembly.rulers;
+
+import java.util.Set;
+
+import org.eclipse.cdt.debug.internal.ui.preferences.StringSetSerializer;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.jface.preference.IPreferenceStore;
+
+/**
+ * Manages the preferences for ruler contributions stored in a preference store.
+ *
+ * @since 7.2
+ */
+public final class RulerColumnPreferenceAdapter {
+ private final IPreferenceStore fStore;
+ private final String fKey;
+
+ /**
+ * Creates a new preference adapter that will read and write under the specified key in the
+ * given preference store.
+ *
+ * @param store the preference store
+ * @param key the key
+ */
+ public RulerColumnPreferenceAdapter(IPreferenceStore store, String key) {
+ Assert.isLegal(store != null);
+ Assert.isLegal(key != null);
+ fStore= store;
+ fKey= key;
+ }
+
+ /**
+ * Returns the enablement state of the given ruler contribution.
+ *
+ * @param descriptor a ruler contribution descriptor
+ * @return true if the ruler is enabled, false otherwise
+ */
+ @SuppressWarnings("null")
+ public boolean isEnabled(RulerColumnDescriptor descriptor) {
+ Assert.isLegal(descriptor != null);
+ String preference= fStore.getString(fKey);
+ return StringSetSerializer.deserialize(preference).contains(descriptor.getId()) ^ descriptor.getDefaultEnablement();
+ }
+
+ /**
+ * Sets the enablement state of the given ruler contribution.
+ *
+ * @param descriptor a ruler contribution descriptor
+ * @param enabled true to enable the contribution, false to
+ * disable it
+ */
+ public void setEnabled(RulerColumnDescriptor descriptor, boolean enabled) {
+ Assert.isLegal(descriptor != null);
+ @SuppressWarnings("null")
+ String id= descriptor.getId();
+ String preference= fStore.getString(fKey);
+ Set marked= StringSetSerializer.deserialize(preference);
+ boolean shouldMark= enabled ^ descriptor.getDefaultEnablement();
+ boolean isMarked= marked.contains(id);
+ if (isMarked != shouldMark) {
+ if (shouldMark)
+ marked.add(id);
+ else
+ marked.remove(id);
+ fStore.setValue(fKey, StringSetSerializer.serialize(marked));
+ }
+ }
+
+ /**
+ * Toggles the enablement state of given the ruler contribution.
+ *
+ * @param descriptor a ruler contribution descriptor
+ */
+ public void toggle(RulerColumnDescriptor descriptor) {
+ Assert.isLegal(descriptor != null);
+ setEnabled(descriptor, !isEnabled(descriptor));
+ }
+}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/disassembly/rulers/RulerColumnRegistry.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/disassembly/rulers/RulerColumnRegistry.java
new file mode 100644
index 00000000000..024d07e97b0
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/disassembly/rulers/RulerColumnRegistry.java
@@ -0,0 +1,294 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2011 IBM Corporation 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
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Wind River Systems, Inc. - adapted for for disassembly parts
+ *******************************************************************************/
+package org.eclipse.cdt.debug.ui.disassembly.rulers;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.InvalidRegistryObjectException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.internal.texteditor.TextEditorPlugin;
+import org.eclipse.ui.internal.texteditor.rulers.DAG;
+import org.eclipse.ui.internal.texteditor.rulers.ExtensionPointHelper;
+import org.eclipse.ui.internal.texteditor.rulers.RulerColumnMessages;
+import org.eclipse.ui.internal.texteditor.rulers.RulerColumnPlacementConstraint;
+import org.eclipse.ui.texteditor.ConfigurationElementSorter;
+
+import com.ibm.icu.text.MessageFormat;
+
+
+/**
+ * A registry for all extensions to the
+ * rulerColumns extension point.
+ *
+ * @since 7.2
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ */
+public final class RulerColumnRegistry {
+
+ private static final String EXTENSION_POINT= "disassemblyRulerColumns"; //$NON-NLS-1$
+ private static final String QUALIFIED_EXTENSION_POINT= CDebugUIPlugin.PLUGIN_ID + '.' + EXTENSION_POINT;
+
+ /** The singleton instance. */
+ private static RulerColumnRegistry fgSingleton= null;
+
+ /**
+ * Returns the default computer registry.
+ *
+ * @return the singleton instance
+ */
+ public static synchronized RulerColumnRegistry getDefault() {
+ if (fgSingleton == null) {
+ fgSingleton= new RulerColumnRegistry();
+ }
+
+ return fgSingleton;
+ }
+
+ /**
+ * All descriptors (element type:
+ * {@link RulerColumnDescriptor}).
+ */
+ private List fDescriptors= null;
+ /**
+ * All descriptors by id (element type: {@link RulerColumnDescriptor}).
+ */
+ private Map fDescriptorMap= null;
+
+ /**
+ * true if this registry has been loaded.
+ */
+ private boolean fLoaded= false;
+
+ /**
+ * Creates a new instance.
+ */
+ RulerColumnRegistry() {
+ }
+
+ /**
+ * Returns the list of {@link RulerColumnDescriptor}s describing all extensions to the
+ * rulerColumns extension point. The list's iterator traverses the descriptors in
+ * the ordering implied by the placement specifications of the contributions.
+ *
+ * The returned list is unmodifiable and guaranteed to never change. Note that the set of
+ * descriptors may change over time due to dynamic plug-in removal or addition.
+ *
+ *
+ * @return the sorted list of extensions to the rulerColumns extension point
+ * (element type: {@link RulerColumnDescriptor})
+ */
+ public List getColumnDescriptors() {
+ ensureExtensionPointRead();
+ return fDescriptors;
+ }
+
+ /**
+ * Returns the {@link RulerColumnDescriptor} with the given identity, null if no
+ * such descriptor exists.
+ *
+ * @param id the identity of the ruler contribution as given in the extension point xml.
+ * @return the {@link RulerColumnDescriptor} with the given identity, null if no
+ * such descriptor exists
+ */
+ public RulerColumnDescriptor getColumnDescriptor(String id) {
+ Assert.isLegal(id != null);
+ ensureExtensionPointRead();
+ return fDescriptorMap.get(id);
+ }
+
+ /**
+ * Ensures that the extensions are read and stored in
+ * fDescriptorsByPartition.
+ */
+ private void ensureExtensionPointRead() {
+ boolean reload;
+ synchronized (this) {
+ reload= !fLoaded;
+ fLoaded= true;
+ }
+ if (reload)
+ reload();
+ }
+
+ /**
+ * Reloads the extensions to the extension point.
+ *
+ * This method can be called more than once in order to reload from
+ * a changed extension registry.
+ *
+ */
+ public void reload() {
+ IExtensionRegistry registry= Platform.getExtensionRegistry();
+ List elements= new ArrayList(Arrays.asList(registry.getConfigurationElementsFor(CDebugUIPlugin.PLUGIN_ID, EXTENSION_POINT)));
+
+ List descriptors= new ArrayList();
+ Map descriptorMap= new HashMap();
+
+ for (Iterator iter= elements.iterator(); iter.hasNext();) {
+ IConfigurationElement element= iter.next();
+ try {
+ RulerColumnDescriptor desc= new RulerColumnDescriptor(element, this);
+ String id= desc.getId();
+ if (descriptorMap.containsKey(id)) {
+ noteDuplicateId(desc);
+ continue;
+ }
+
+ descriptors.add(desc);
+ descriptorMap.put(id, desc);
+ } catch (InvalidRegistryObjectException x) {
+ /*
+ * Element is not valid any longer as the contributing plug-in was unloaded or for
+ * some other reason. Do not include the extension in the list and inform the user
+ * about it.
+ */
+ noteInvalidExtension(element, x);
+ } catch (CoreException x) {
+ warnUser(x.getStatus());
+ }
+ }
+
+ sort(descriptors);
+
+ synchronized (this) {
+ fDescriptors= Collections.unmodifiableList(descriptors);
+ fDescriptorMap= Collections.unmodifiableMap(descriptorMap);
+ }
+ }
+
+ /**
+ * Sorts the column contributions.
+ *
+ * @param descriptors the descriptors to sort
+ */
+ @SuppressWarnings("unchecked")
+ private void sort(List descriptors) {
+ /*
+ * Topological sort of the DAG defined by the plug-in dependencies
+ * 1. TopoSort descriptors by plug-in dependency
+ * 2. Insert into Directed Acyclic Graph
+ * 3. TopoSort DAG: pick the source with the lowest gravity and remove from DAG
+ */
+ ConfigurationElementSorter sorter= new ConfigurationElementSorter() {
+ @Override
+ public IConfigurationElement getConfigurationElement(Object object) {
+ return ((RulerColumnDescriptor) object).getConfigurationElement();
+ }
+ };
+ RulerColumnDescriptor[] array= new RulerColumnDescriptor[descriptors.size()];
+ descriptors.toArray(array);
+ sorter.sort(array);
+
+ Map descriptorsById= new HashMap();
+ for (RulerColumnDescriptor desc : array) {
+ descriptorsById.put(desc.getId(), desc);
+ }
+
+ DAG dag= new DAG();
+ for (RulerColumnDescriptor desc : array) {
+ dag.addVertex(desc);
+
+ Set> before= desc.getPlacement().getConstraints();
+ for (Iterator> it= before.iterator(); it.hasNext();) {
+ RulerColumnPlacementConstraint constraint= (RulerColumnPlacementConstraint) it.next();
+ String id= constraint.getId();
+ RulerColumnDescriptor target= descriptorsById.get(id);
+ if (target == null) {
+ noteUnknownTarget(desc, id);
+ } else {
+ boolean success;
+ if (constraint.isBefore())
+ success= dag.addEdge(desc, target);
+ else
+ success= dag.addEdge(target, desc);
+ if (!success)
+ noteCycle(desc, target);
+ }
+ }
+ }
+
+ Comparator gravityComp= new Comparator() {
+ @Override
+ public int compare(RulerColumnDescriptor o1, RulerColumnDescriptor o2) {
+ float diff= o1.getPlacement().getGravity() - o2.getPlacement().getGravity();
+ if (diff == 0)
+ return 0;
+ if (diff < 0)
+ return -1;
+ return 1;
+ }
+ };
+
+ /* Topological sort - always select the source with the least gravity */
+ Set toProcess= dag.getSources();
+ int index= 0;
+ while (!toProcess.isEmpty()) {
+ RulerColumnDescriptor next= Collections.min(toProcess, gravityComp);
+ array[index]= next;
+ index++;
+ dag.removeVertex(next);
+ toProcess= dag.getSources();
+ }
+ Assert.isTrue(index == array.length);
+
+ ListIterator it= descriptors.listIterator();
+ for (int i= 0; i < index; i++) {
+ it.next();
+ it.set(array[i]);
+ }
+ }
+
+ private void noteInvalidExtension(IConfigurationElement element, InvalidRegistryObjectException x) {
+ String message= MessageFormat.format(RulerColumnMessages.RulerColumnRegistry_invalid_msg, new Object[] {ExtensionPointHelper.findId(element)});
+ warnUser(message, x);
+ }
+
+ private void noteUnknownTarget(RulerColumnDescriptor desc, String referencedId) {
+ String message= MessageFormat.format(RulerColumnMessages.RulerColumnRegistry_unresolved_placement_msg, new Object[] {QUALIFIED_EXTENSION_POINT, referencedId, desc.getName(), desc.getContributor()});
+ warnUser(message, null);
+ }
+
+ private void noteCycle(RulerColumnDescriptor desc, RulerColumnDescriptor target) {
+ String message= MessageFormat.format(RulerColumnMessages.RulerColumnRegistry_cyclic_placement_msg, new Object[] {QUALIFIED_EXTENSION_POINT, target.getName(), desc.getName(), desc.getContributor()});
+ warnUser(message, null);
+ }
+
+ private void noteDuplicateId(RulerColumnDescriptor desc) {
+ String message= MessageFormat.format(RulerColumnMessages.RulerColumnRegistry_duplicate_id_msg, new Object[] {QUALIFIED_EXTENSION_POINT, desc.getId(), desc.getContributor()});
+ warnUser(message, null);
+ }
+
+ private void warnUser(String message, Exception exception) {
+ IStatus status= new Status(IStatus.WARNING, TextEditorPlugin.PLUGIN_ID, IStatus.OK, message, exception);
+ warnUser(status);
+ }
+
+ private void warnUser(IStatus status) {
+ TextEditorPlugin.getDefault().getLog().log(status);
+ }
+}
diff --git a/dsf/org.eclipse.cdt.dsf.ui/.settings/.api_filters b/dsf/org.eclipse.cdt.dsf.ui/.settings/.api_filters
index 6dfc9ce04a6..d89b3e85b34 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/.settings/.api_filters
+++ b/dsf/org.eclipse.cdt.dsf.ui/.settings/.api_filters
@@ -1,5 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/dsf/org.eclipse.cdt.dsf.ui/plugin.properties b/dsf/org.eclipse.cdt.dsf.ui/plugin.properties
index b88d2ccf30c..fa604141f8f 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/plugin.properties
+++ b/dsf/org.eclipse.cdt.dsf.ui/plugin.properties
@@ -66,4 +66,9 @@ debugUpdateModes.label = Debug Update Modes
# Pin & Clone
PinView.name = Pin to Debug Context
-OpenNewView.name = Open New View
\ No newline at end of file
+OpenNewView.name = Open New View
+
+# Disassembly ruler columns
+disassemblyRulerColumn.addresses=Addresses
+disassemblyRulerColumn.functionOffsets=Function Offsets
+disassemblyRulerColumn.opcodes=Opcodes
diff --git a/dsf/org.eclipse.cdt.dsf.ui/plugin.xml b/dsf/org.eclipse.cdt.dsf.ui/plugin.xml
index 6fbd3346834..95ad92131b9 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/plugin.xml
+++ b/dsf/org.eclipse.cdt.dsf.ui/plugin.xml
@@ -789,6 +789,59 @@
name="%disassemblyView.name">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/AddressRulerColumn.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/AddressRulerColumn.java
index d5cfa50889a..00dee41f8b6 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/AddressRulerColumn.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/AddressRulerColumn.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2010 Wind River Systems and others.
+ * Copyright (c) 2007, 2011 Wind River Systems 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
@@ -15,6 +15,9 @@ import java.math.BigInteger;
import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.AddressRangePosition;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.model.DisassemblyDocument;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.model.SourceFileInfo;
+import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.preferences.DisassemblyPreferenceConstants;
+import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.provisional.DisassemblyRulerColumn;
+import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.source.IAnnotationHover;
import org.eclipse.jface.text.source.IAnnotationModel;
@@ -22,6 +25,7 @@ import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.IVerticalRulerInfo;
import org.eclipse.jface.text.source.IVerticalRulerInfoExtension;
import org.eclipse.jface.text.source.IVerticalRulerListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
/**
@@ -29,6 +33,8 @@ import org.eclipse.swt.SWT;
*/
public class AddressRulerColumn extends DisassemblyRulerColumn implements IVerticalRulerInfo, IVerticalRulerInfoExtension, IAnnotationHover {
+ public static final String ID = "org.eclipse.cdt.dsf.ui.disassemblyColumn.address"; //$NON-NLS-1$
+
private int fRadix;
private boolean fShowRadixPrefix;
private String fRadixPrefix;
@@ -40,9 +46,11 @@ public class AddressRulerColumn extends DisassemblyRulerColumn implements IVerti
*/
public AddressRulerColumn() {
super(SWT.LEFT);
- setShowRadixPrefix(true);
+ IPreferenceStore prefs = getPreferenceStore();
+ setForeground(getColor(DisassemblyPreferenceConstants.ADDRESS_COLOR));
+ setRadix(prefs.getInt(DisassemblyPreferenceConstants.ADDRESS_RADIX));
+ setShowRadixPrefix(prefs.getBoolean(DisassemblyPreferenceConstants.SHOW_ADDRESS_RADIX));
setAddressSize(32);
- setRadix(16);
}
@Override
@@ -128,49 +136,35 @@ public class AddressRulerColumn extends DisassemblyRulerColumn implements IVerti
return buf.toString();
}
- /*
- * @see org.eclipse.jface.text.source.IVerticalRulerInfo#getLineOfLastMouseButtonActivity()
- */
+ @Override
public int getLineOfLastMouseButtonActivity() {
return getParentRuler().getLineOfLastMouseButtonActivity();
}
- /*
- * @see org.eclipse.jface.text.source.IVerticalRulerInfo#toDocumentLineNumber(int)
- */
+ @Override
public int toDocumentLineNumber(int y_coordinate) {
return getParentRuler().toDocumentLineNumber(y_coordinate);
}
- /*
- * @see org.eclipse.jface.text.source.IVerticalRulerInfoExtension#getHover()
- */
+ @Override
public IAnnotationHover getHover() {
return this;
}
- /*
- * @see org.eclipse.jface.text.source.IVerticalRulerInfoExtension#getModel()
- */
+ @Override
public IAnnotationModel getModel() {
return null;
}
- /*
- * @see org.eclipse.jface.text.source.IVerticalRulerInfoExtension#addVerticalRulerListener(org.eclipse.jface.text.source.IVerticalRulerListener)
- */
+ @Override
public void addVerticalRulerListener(IVerticalRulerListener listener) {
}
- /*
- * @see org.eclipse.jface.text.source.IVerticalRulerInfoExtension#removeVerticalRulerListener(org.eclipse.jface.text.source.IVerticalRulerListener)
- */
+ @Override
public void removeVerticalRulerListener(IVerticalRulerListener listener) {
}
- /*
- * @see org.eclipse.jface.text.source.IAnnotationHover#getHoverInfo(org.eclipse.jface.text.source.ISourceViewer, int)
- */
+ @Override
public String getHoverInfo(ISourceViewer sourceViewer, int line) {
DisassemblyDocument doc = (DisassemblyDocument)getParentRuler().getTextViewer().getDocument();
BigInteger address = doc.getAddressOfLine(line);
@@ -181,4 +175,30 @@ public class AddressRulerColumn extends DisassemblyRulerColumn implements IVerti
return null;
}
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ String property = event.getProperty();
+ IPreferenceStore store = getPreferenceStore();
+ boolean needRedraw = false;
+ if (DisassemblyPreferenceConstants.ADDRESS_COLOR.equals(property)) {
+ setForeground(getColor(property));
+ needRedraw = true;
+ } else if (DisassemblyPreferenceConstants.ADDRESS_RADIX.equals(property)) {
+ setRadix(store.getInt(property));
+ updateNumberOfDigits();
+ computeIndentations();
+ layout(false);
+ needRedraw = true;
+ } else if (DisassemblyPreferenceConstants.SHOW_ADDRESS_RADIX.equals(property)) {
+ setShowRadixPrefix(store.getBoolean(property));
+ updateNumberOfDigits();
+ computeIndentations();
+ layout(false);
+ needRedraw = true;
+ }
+ if (needRedraw) {
+ redraw();
+ }
+ }
+
}
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyColumnSupport.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyColumnSupport.java
new file mode 100644
index 00000000000..09f48dbba8c
--- /dev/null
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyColumnSupport.java
@@ -0,0 +1,209 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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
+ *
+ * Contributors:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.dsf.debug.internal.ui.disassembly;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.cdt.debug.ui.disassembly.rulers.IColumnSupport;
+import org.eclipse.cdt.debug.ui.disassembly.rulers.IContributedRulerColumn;
+import org.eclipse.cdt.debug.ui.disassembly.rulers.RulerColumnDescriptor;
+import org.eclipse.cdt.debug.ui.disassembly.rulers.RulerColumnRegistry;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.jface.text.source.CompositeRuler;
+import org.eclipse.jface.text.source.IVerticalRulerColumn;
+import org.eclipse.jface.text.source.IVerticalRulerInfo;
+import org.eclipse.jface.util.SafeRunnable;
+
+/**
+ * Implements the ruler column support of for the given disassembly part.
+ *
+ * This is currently only used to support vertical ruler columns.
+ *
+ */
+class DisassemblyColumnSupport implements IColumnSupport {
+ private final DisassemblyPart fDisassembly;
+ private final RulerColumnRegistry fRegistry;
+ private final List fColumns;
+
+ /**
+ * Creates a new column support for the given disassembly part. Only the disassembly part itself should normally
+ * create such an instance.
+ *
+ * @param editor the disassembly part
+ * @param registry the contribution registry to refer to
+ */
+ public DisassemblyColumnSupport(DisassemblyPart disassembly, RulerColumnRegistry registry) {
+ Assert.isLegal(disassembly != null);
+ Assert.isLegal(registry != null);
+ fDisassembly= disassembly;
+ fRegistry= registry;
+ fColumns= new ArrayList();
+ }
+
+ /*
+ * @see org.eclipse.ui.texteditor.IColumnSupport#setColumnVisible(java.lang.String, boolean)
+ */
+ @Override
+ public final void setColumnVisible(RulerColumnDescriptor descriptor, boolean visible) {
+ Assert.isLegal(descriptor != null);
+
+ final CompositeRuler ruler= getRuler();
+ if (ruler == null)
+ return;
+
+ if (!isColumnSupported(descriptor))
+ visible= false;
+
+ if (isColumnVisible(descriptor)) {
+ if (!visible)
+ removeColumn(ruler, descriptor);
+ } else {
+ if (visible)
+ addColumn(ruler, descriptor);
+ }
+ }
+
+ private void addColumn(final CompositeRuler ruler, final RulerColumnDescriptor descriptor) {
+
+ final int idx= computeIndex(ruler, descriptor);
+
+ SafeRunnable runnable= new SafeRunnable() {
+ @Override
+ public void run() throws Exception {
+ IContributedRulerColumn column= descriptor.createColumn(fDisassembly);
+ fColumns.add(column);
+ initializeColumn(column);
+ ruler.addDecorator(idx, column);
+ }
+ };
+ SafeRunner.run(runnable);
+ }
+
+ /**
+ * Hook to let subclasses initialize a newly created column.
+ *
+ * Subclasses may extend this method.
+ *
+ * @param column the created column
+ */
+ protected void initializeColumn(IContributedRulerColumn column) {
+ }
+
+ private void removeColumn(final CompositeRuler ruler, final RulerColumnDescriptor descriptor) {
+ removeColumn(ruler, getVisibleColumn(ruler, descriptor));
+ }
+
+ private void removeColumn(final CompositeRuler ruler, final IContributedRulerColumn rulerColumn) {
+ if (rulerColumn != null) {
+ SafeRunnable runnable= new SafeRunnable() {
+ @Override
+ public void run() throws Exception {
+ if (ruler != null)
+ ruler.removeDecorator(rulerColumn);
+ rulerColumn.columnRemoved();
+ }
+ };
+ SafeRunner.run(runnable);
+ }
+ }
+
+ /**
+ * Returns the currently visible column matching id, null if
+ * none.
+ *
+ * @param ruler the composite ruler to scan
+ * @param descriptor the descriptor of the column of interest
+ * @return the matching column or null
+ */
+ private IContributedRulerColumn getVisibleColumn(CompositeRuler ruler, RulerColumnDescriptor descriptor) {
+ for (Iterator> it= ruler.getDecoratorIterator(); it.hasNext();) {
+ IVerticalRulerColumn column= (IVerticalRulerColumn)it.next();
+ if (column instanceof IContributedRulerColumn) {
+ IContributedRulerColumn rulerColumn= (IContributedRulerColumn)column;
+ RulerColumnDescriptor rcd= rulerColumn.getDescriptor();
+ if (descriptor.equals(rcd))
+ return rulerColumn;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Computes the insertion index for a column contribution into the currently visible columns.
+ *
+ * @param ruler the composite ruler into which to insert the column
+ * @param descriptor the descriptor to compute the index for
+ * @return the insertion index for a new column
+ */
+ private int computeIndex(CompositeRuler ruler, RulerColumnDescriptor descriptor) {
+ int index= 0;
+ List> all= fRegistry.getColumnDescriptors();
+ int newPos= all.indexOf(descriptor);
+ for (Iterator> it= ruler.getDecoratorIterator(); it.hasNext();) {
+ IVerticalRulerColumn column= (IVerticalRulerColumn) it.next();
+ if (column instanceof IContributedRulerColumn) {
+ RulerColumnDescriptor rcd= ((IContributedRulerColumn)column).getDescriptor();
+ if (rcd != null && all.indexOf(rcd) > newPos)
+ break;
+ }
+ index++;
+ }
+ return index;
+ }
+
+ @Override
+ public final boolean isColumnVisible(RulerColumnDescriptor descriptor) {
+ Assert.isLegal(descriptor != null);
+ CompositeRuler ruler= getRuler();
+ return ruler != null && getVisibleColumn(ruler, descriptor) != null;
+ }
+
+ @Override
+ public final boolean isColumnSupported(RulerColumnDescriptor descriptor) {
+ Assert.isLegal(descriptor != null);
+ if (getRuler() == null)
+ return false;
+
+ if (descriptor == null)
+ return false;
+
+ return descriptor.matchesPart(fDisassembly);
+ }
+
+ /**
+ * Returns the disassembly part's vertical ruler, if it is a {@link CompositeRuler}, null
+ * otherwise.
+ *
+ * @return the disassembly part's {@link CompositeRuler} or null
+ */
+ private CompositeRuler getRuler() {
+ Object ruler= fDisassembly.getAdapter(IVerticalRulerInfo.class);
+ if (ruler instanceof CompositeRuler)
+ return (CompositeRuler) ruler;
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * Subclasses may extend this method.
+ *
+ */
+ @Override
+ public void dispose() {
+ for (Iterator iter= new ArrayList(fColumns).iterator(); iter.hasNext();)
+ removeColumn(getRuler(), iter.next());
+ fColumns.clear();
+ }
+}
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyMessages.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyMessages.java
index 43f06655e32..909f8e9f931 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyMessages.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyMessages.java
@@ -29,9 +29,6 @@ public final class DisassemblyMessages extends NLS {
return fgBundleForConstructedKeys;
}
- public static String Disassembly_action_ShowAddresses_label;
- public static String Disassembly_action_ShowFunctionOffsets_label;
- public static String Disassembly_action_ShowOpcode_label;
public static String Disassembly_action_ShowSource_label;
public static String Disassembly_action_ShowSymbols_label;
public static String Disassembly_action_GotoPC_label;
@@ -52,6 +49,7 @@ public final class DisassemblyMessages extends NLS {
public static String Disassembly_log_error_expression_eval;
public static String Disassembly_log_error_locateFile;
public static String Disassembly_log_error_readFile;
+ public static String DisassemblyPart_showRulerColumn_label;
public static String DisassemblyPreferencePage_addressFormatTooltip;
public static String DisassemblyPreferencePage_addressRadix;
public static String DisassemblyPreferencePage_showAddressRadix;
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyMessages.properties b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyMessages.properties
index 9ba33204d52..a4098d6aa1b 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyMessages.properties
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyMessages.properties
@@ -11,9 +11,6 @@
# Patrick Chuong (Texas Instruments) - Bug fix (329682)
##########################################################################
-Disassembly_action_ShowAddresses_label=Show Addresses
-Disassembly_action_ShowFunctionOffsets_label=Show Function Offsets
-Disassembly_action_ShowOpcode_label=Show Opcodes
Disassembly_action_ShowSource_label=Show Source
Disassembly_action_ShowSymbols_label=Show Symbols
Disassembly_action_GotoPC_label=Go to Program Counter
@@ -44,9 +41,10 @@ Disassembly_log_error_expression_eval=Expression does not evaluate to an address
Disassembly_log_error_locateFile=Unable to locate file:\
Disassembly_log_error_readFile=Cannot read source file:\
+DisassemblyPart_showRulerColumn_label=Show {0}
DisassemblyPreferencePage_addressFormatTooltip=Use this format for the instruction address
DisassemblyPreferencePage_addressRadix=Address display format:
-DisassemblyPreferencePage_showAddressRadix=Force radix prefixes
+DisassemblyPreferencePage_showAddressRadix=Force radix prefix
DisassemblyPreferencePage_showSource=Show source
DisassemblyPreferencePage_showSourceTooltip=Show source code interleaved with instructions
DisassemblyPreferencePage_showSymbols=Show symbols
@@ -56,14 +54,8 @@ DisassemblyPreferencePage_error_negative_number=Address cannot be negative
DisassemblyPreferencePage_radix_octal=Octal
DisassemblyPreferencePage_radix_decimal=Decimal
DisassemblyPreferencePage_radix_hexadecimal=Hexadecimal
-DisassemblyPreferencePage_showFunctionOffsets=Show function offsets
-DisassemblyPreferencePage_showFunctionOffsetsTooltip=Show offsets of addresses in a function
-DisassemblyPreferencePage_showCodeBytes=Show instruction code bytes
-DisassemblyPreferencePage_showCodeBytesTooltip=Show the value of the address for the instruction code bytes
-DisassemblyPreferencePage_showAddress=Show instruction address
DisassemblyPreferencePage_OpcodeFormatTooltip=Use this format for the instruction value
DisassemblyPreferencePage_OpcodeFormat=Opcode display format:
-DisassemblyPreferencePage_showAddressTooltip=Show the address of each instruction
DisassemblyPreferencePage_showRadixTooltip=Show '0x' with hexadecimal addresses
DisassemblyIPAnnotation_primary=Debug Current Instruction Pointer
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java
index b90e8e99e9a..275588b02d8 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java
@@ -38,6 +38,12 @@ import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyBackend;
import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyDocument;
import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback;
import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.LabelPosition;
+import org.eclipse.cdt.debug.internal.ui.preferences.StringSetSerializer;
+import org.eclipse.cdt.debug.ui.disassembly.rulers.IColumnSupport;
+import org.eclipse.cdt.debug.ui.disassembly.rulers.IContributedRulerColumn;
+import org.eclipse.cdt.debug.ui.disassembly.rulers.RulerColumnDescriptor;
+import org.eclipse.cdt.debug.ui.disassembly.rulers.RulerColumnPreferenceAdapter;
+import org.eclipse.cdt.debug.ui.disassembly.rulers.RulerColumnRegistry;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.actions.AbstractDisassemblyAction;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.actions.ActionGotoAddress;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.actions.ActionGotoProgramCounter;
@@ -50,6 +56,8 @@ import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.model.DisassemblyDocume
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.model.SourceFileInfo;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.preferences.DisassemblyPreferenceConstants;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.presentation.DisassemblyIPAnnotation;
+import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.provisional.DisassemblyRulerColumn;
+import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.provisional.DisassemblyViewer;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.provisional.IDisassemblyPart;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.util.HSL;
import org.eclipse.cdt.dsf.internal.ui.DsfUIPlugin;
@@ -125,6 +133,7 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.custom.VerifyKeyListener;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSource;
import org.eclipse.swt.dnd.DropTarget;
@@ -133,6 +142,7 @@ import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
@@ -171,6 +181,9 @@ import org.eclipse.ui.texteditor.IUpdate;
import org.eclipse.ui.texteditor.MarkerAnnotationPreferences;
import org.eclipse.ui.texteditor.SimpleMarkerAnnotation;
import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;
+
+import com.ibm.icu.text.MessageFormat;
+
/**
* DisassemblyPart
*/
@@ -206,17 +219,19 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
public static final String KEY_BINDING_CONTEXT_DISASSEMBLY = "org.eclipse.cdt.dsf.debug.ui.disassembly.context"; //$NON-NLS-1$
+ /**
+ * A named preference that controls the visible ruler column contributions.
+ */
+ public static final String PREFERENCE_RULER_CONTRIBUTIONS= "rulerContributions"; //$NON-NLS-1$
+
protected DisassemblyViewer fViewer;
protected AbstractDisassemblyAction fActionGotoPC;
protected AbstractDisassemblyAction fActionGotoAddress;
protected AbstractDisassemblyAction fActionToggleSource;
- private AbstractDisassemblyAction fActionToggleFunctionColumn;
- private AbstractDisassemblyAction fActionToggleOpcodeColumn;
protected AbstractDisassemblyAction fActionToggleSymbols;
protected AbstractDisassemblyAction fActionRefreshView;
protected Action fActionOpenPreferences;
- private AbstractDisassemblyAction fActionToggleAddressColumn;
private AbstractDisassemblyAction fActionToggleBreakpointEnablement;
protected DisassemblyDocument fDocument;
@@ -244,10 +259,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
private TextViewerDragAdapter fDragSourceAdapter;
private DisassemblyDropAdapter fDropTargetAdapter;
- private FunctionOffsetRulerColumn fFunctionOffsetRulerColumn;
- private OpcodeRulerColumn fOpcodeRulerColumn;
- private AddressRulerColumn fAddressRulerColumn;
-
private BigInteger fStartAddress;
private BigInteger fEndAddress;
private int fAddressSize= 32;
@@ -272,8 +283,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
private List fSelectionActions = new ArrayList();
private List fStateDependentActions = new ArrayList();
private boolean fShowSource;
- private boolean fShowFunctionOffsets;
- private boolean fShowOpcodes;
private boolean fShowSymbols;
private Map fFile2Storage = new HashMap();
private boolean fShowDisassembly = true;
@@ -294,26 +303,34 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
protected IPartListener2 fPartListener =
new IPartListener2() {
+ @Override
public void partActivated(IWorkbenchPartReference partRef) {
}
+ @Override
public void partBroughtToTop(IWorkbenchPartReference partRef) {
}
+ @Override
public void partClosed(IWorkbenchPartReference partRef) {
}
+ @Override
public void partDeactivated(IWorkbenchPartReference partRef) {
}
+ @Override
public void partOpened(IWorkbenchPartReference partRef) {
}
+ @Override
public void partHidden(IWorkbenchPartReference partRef) {
if (partRef.getPart(false) == DisassemblyPart.this) {
setActive(false);
}
}
+ @Override
public void partVisible(IWorkbenchPartReference partRef) {
if (partRef.getPart(false) == DisassemblyPart.this) {
setActive(true);
}
}
+ @Override
public void partInputChanged(IWorkbenchPartReference partRef) {
}
};
@@ -338,6 +355,8 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
private IDebugContextListener fDebugContextListener;
+ private IColumnSupport fColumnSupport;
+
private final class SyncActiveDebugContextAction extends Action {
public SyncActiveDebugContextAction() {
setChecked(DisassemblyPart.this.isSyncWithActiveDebugContext());
@@ -380,54 +399,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
}
}
- private final class ActionToggleAddressColumn extends AbstractDisassemblyAction {
- ActionToggleAddressColumn () {
- super(DisassemblyPart.this);
- setText(DisassemblyMessages.Disassembly_action_ShowAddresses_label);
- }
- @Override
- public void run() {
- IPreferenceStore store = DsfUIPlugin.getDefault().getPreferenceStore();
- store.setValue(DisassemblyPreferenceConstants.SHOW_ADDRESS_RULER, !isAddressRulerVisible());
- }
- @Override
- public void update() {
- setChecked(isAddressRulerVisible());
- }
- }
-
- private final class ActionToggleFunctionColumn extends AbstractDisassemblyAction {
- ActionToggleFunctionColumn() {
- super(DisassemblyPart.this);
- setText(DisassemblyMessages.Disassembly_action_ShowFunctionOffsets_label);
- }
- @Override
- public void run() {
- IPreferenceStore store = DsfUIPlugin.getDefault().getPreferenceStore();
- store.setValue(DisassemblyPreferenceConstants.SHOW_FUNCTION_OFFSETS, !isFunctionOffsetsRulerVisible());
- }
- @Override
- public void update() {
- setChecked(isFunctionOffsetsRulerVisible());
- }
- }
-
- private final class ActionToggleOpcodeColumn extends AbstractDisassemblyAction {
- ActionToggleOpcodeColumn() {
- super(DisassemblyPart.this);
- setText(DisassemblyMessages.Disassembly_action_ShowOpcode_label);
- }
- @Override
- public void run() {
- IPreferenceStore store = DsfUIPlugin.getDefault().getPreferenceStore();
- store.setValue(DisassemblyPreferenceConstants.SHOW_CODE_BYTES, !isOpcodeRulerVisible());
- }
- @Override
- public void update() {
- setChecked(isOpcodeRulerVisible());
- }
- }
-
private final class ActionToggleBreakpointEnablement extends AbstractDisassemblyAction {
private IBreakpoint fBreakpoint;
public ActionToggleBreakpointEnablement() {
@@ -511,6 +482,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
*/
+ @Override
public void propertyChange(PropertyChangeEvent event) {
handlePreferenceStoreChanged(event);
}
@@ -537,8 +509,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
else
fEndAddress = new BigInteger(endAddressString, 16);
fShowSource = prefs.getBoolean(DisassemblyPreferenceConstants.SHOW_SOURCE);
- fShowFunctionOffsets = prefs.getBoolean(DisassemblyPreferenceConstants.SHOW_FUNCTION_OFFSETS);
- fShowOpcodes = prefs.getBoolean(DisassemblyPreferenceConstants.SHOW_CODE_BYTES);
fShowSymbols = prefs.getBoolean(DisassemblyPreferenceConstants.SHOW_SYMBOLS);
fUpdateBeforeFocus = !prefs.getBoolean(DisassemblyPreferenceConstants.AVOID_READ_BEFORE_PC);
fPCHistorySizeMax = prefs.getInt(DisassemblyPreferenceConstants.PC_HISTORY_SIZE);
@@ -571,13 +541,76 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
return fViewer != null ? fViewer.getTextWidget() : null;
} else if (IGotoMarker.class.equals(required)) {
return new IGotoMarker() {
+ @Override
public void gotoMarker(IMarker marker) {
DisassemblyPart.this.gotoMarker(marker);
}};
+ } else if (IColumnSupport.class.equals(required)) {
+ if (fColumnSupport == null)
+ fColumnSupport= createColumnSupport();
+ return fColumnSupport;
}
+
return super.getAdapter(required);
}
+ /**
+ * Adds "show" actions for all contributed rulers that support it.
+ *
+ * @param menu the ruler context menu
+ */
+ private void addRulerContributionActions(IMenuManager menu) {
+ // store directly in generic editor preferences
+ final IColumnSupport support= (IColumnSupport) getAdapter(IColumnSupport.class);
+ IPreferenceStore store= DsfUIPlugin.getDefault().getPreferenceStore();
+ final RulerColumnPreferenceAdapter adapter= new RulerColumnPreferenceAdapter(store, PREFERENCE_RULER_CONTRIBUTIONS);
+ List descriptors= RulerColumnRegistry.getDefault().getColumnDescriptors();
+ for (final RulerColumnDescriptor descriptor : descriptors) {
+ if (!descriptor.isIncludedInMenu() || !support.isColumnSupported(descriptor))
+ continue;
+ final boolean isVisible= support.isColumnVisible(descriptor);
+ IAction action= new Action(MessageFormat.format(DisassemblyMessages.DisassemblyPart_showRulerColumn_label, new Object[] {descriptor.getName()}), IAction.AS_CHECK_BOX) {
+ @Override
+ public void run() {
+ if (descriptor.isGlobal())
+ // column state is modified via preference listener
+ adapter.setEnabled(descriptor, !isVisible);
+ else
+ // directly modify column for this editor instance
+ support.setColumnVisible(descriptor, !isVisible);
+ }
+ };
+ action.setChecked(isVisible);
+ action.setImageDescriptor(descriptor.getIcon());
+ menu.appendToGroup(ITextEditorActionConstants.GROUP_RULERS, action);
+ }
+ }
+
+ /**
+ * Adds enabled ruler contributions to the vertical ruler.
+ *
+ * @param ruler the composite ruler to add contributions to
+ */
+ protected void updateContributedRulerColumns(CompositeRuler ruler) {
+ IColumnSupport support= (IColumnSupport)getAdapter(IColumnSupport.class);
+ if (support == null)
+ return;
+
+ RulerColumnPreferenceAdapter adapter= null;
+ if (fPreferenceStore != null)
+ adapter= new RulerColumnPreferenceAdapter(getPreferenceStore(), PREFERENCE_RULER_CONTRIBUTIONS);
+
+ RulerColumnRegistry registry= RulerColumnRegistry.getDefault();
+ List descriptors= registry.getColumnDescriptors();
+ for (RulerColumnDescriptor descriptor : descriptors) {
+ support.setColumnVisible(descriptor, adapter == null || adapter.isEnabled(descriptor));
+ }
+ }
+
+ protected IColumnSupport createColumnSupport() {
+ return new DisassemblyColumnSupport(this, RulerColumnRegistry.getDefault());
+ }
+
private void setPreferenceStore(IPreferenceStore store) {
if (fPreferenceStore != null) {
fPreferenceStore.removePropertyChangeListener(fPropertyChangeListener);
@@ -610,28 +643,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
if (getFontPropertyPreferenceKey().equals(property)) {
initializeViewerFont(fViewer);
- } else if (property.equals(DisassemblyPreferenceConstants.SHOW_ADDRESS_RULER)) {
- fActionToggleAddressColumn.update();
- if (isAddressRulerVisible()) {
- showAddressRuler();
- } else {
- hideAddressRuler();
- }
- } else if (property.equals(DisassemblyPreferenceConstants.ADDRESS_RADIX)) {
- if (fAddressRulerColumn != null) {
- hideAddressRuler();
- showAddressRuler();
- }
- } else if (property.equals(DisassemblyPreferenceConstants.OPCODE_RADIX)) {
- if (isOpcodeRulerVisible()) {
- hideOpcodeRuler();
- showOpcodeRuler();
- }
- } else if (property.equals(DisassemblyPreferenceConstants.SHOW_ADDRESS_RADIX)) {
- if (fAddressRulerColumn != null) {
- hideAddressRuler();
- showAddressRuler();
- }
} else if (property.equals(DisassemblyPreferenceConstants.SHOW_SOURCE)) {
boolean showSource = store.getBoolean(property);
if (fShowSource == showSource) {
@@ -648,22 +659,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
fShowSymbols = showSymbols;
fActionToggleSymbols.update();
refreshView(10);
- } else if (property.equals(DisassemblyPreferenceConstants.SHOW_FUNCTION_OFFSETS)) {
- fShowFunctionOffsets = store.getBoolean(property);
- fActionToggleFunctionColumn.update();
- if (isFunctionOffsetsRulerVisible()) {
- showFunctionOffsetsRuler();
- } else {
- hideFunctionOffsetsRuler();
- }
- } else if (property.equals(DisassemblyPreferenceConstants.SHOW_CODE_BYTES)) {
- fShowOpcodes = store.getBoolean(property);
- fActionToggleOpcodeColumn.update();
- if (isOpcodeRulerVisible()) {
- showOpcodeRuler();
- } else {
- hideOpcodeRuler();
- }
} else if (property.equals(DisassemblyPreferenceConstants.AVOID_READ_BEFORE_PC)) {
fUpdateBeforeFocus = !store.getBoolean(property);
updateVisibleArea();
@@ -676,7 +671,18 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
}
} else if (property.equals(DisassemblyPreferenceConstants.PC_HISTORY_SIZE)) {
fPCHistorySizeMax = store.getInt(property);
+ } else if (PREFERENCE_RULER_CONTRIBUTIONS.equals(property)) {
+ String[] difference= StringSetSerializer.getDifference((String) event.getOldValue(), (String) event.getNewValue());
+ IColumnSupport support= (IColumnSupport) getAdapter(IColumnSupport.class);
+ for (int i= 0; i < difference.length; i++) {
+ RulerColumnDescriptor desc= RulerColumnRegistry.getDefault().getColumnDescriptor(difference[i]);
+ if (desc != null && support.isColumnSupported(desc)) {
+ boolean newState= !support.isColumnVisible(desc);
+ support.setColumnVisible(desc, newState);
+ }
+ }
}
+
}
/**
@@ -691,7 +697,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
parent.setLayout(layout);
fVerticalRuler = createVerticalRuler();
int styles = SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION;
- fViewer = new DisassemblyViewer(this, parent, fVerticalRuler, getOverviewRuler(), true, styles);
+ fViewer = new DisassemblyViewer(parent, fVerticalRuler, getOverviewRuler(), true, styles);
SourceViewerConfiguration sourceViewerConfig = new DisassemblyViewerConfiguration(this);
fViewer.addTextPresentationListener(this);
fViewer.configure(sourceViewerConfig);
@@ -715,7 +721,21 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
hookContextMenu();
contributeToActionBars();
+ fViewer.getTextWidget().addVerifyKeyListener(new VerifyKeyListener() {
+ @Override
+ public void verifyKey(VerifyEvent event) {
+ switch (event.keyCode) {
+ case SWT.PAGE_UP:
+ case SWT.PAGE_DOWN:
+ case SWT.ARROW_UP:
+ case SWT.ARROW_DOWN:
+ event.doit = !keyScroll(event.keyCode);
+ }
+ }
+ });
+
fViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+ @Override
public void selectionChanged(SelectionChangedEvent event) {
updateSelectionDependentActions();
}
@@ -726,14 +746,9 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
fSourceColor = getSharedColors().getColor(new RGB(64, 0, 80));
fLabelColor = getSharedColors().getColor(new RGB(0, 0, 96));
- if (isAddressRulerVisible()) {
- showAddressRuler();
- }
- if (isFunctionOffsetsRulerVisible()) {
- showFunctionOffsetsRuler();
- }
- if (isOpcodeRulerVisible()) {
- showOpcodeRuler();
+ IVerticalRuler ruler= getVerticalRuler();
+ if (ruler instanceof CompositeRuler) {
+ updateContributedRulerColumns((CompositeRuler) ruler);
}
initDragAndDrop();
@@ -756,7 +771,8 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
super.setSite(site);
site.getPage().addPartListener(fPartListener);
fDebugContextListener = new IDebugContextListener() {
- public void debugContextChanged(DebugContextEvent event) {
+ @Override
+ public void debugContextChanged(DebugContextEvent event) {
if ((event.getFlags() & DebugContextEvent.ACTIVATED) != 0) {
updateDebugContext();
}
@@ -823,6 +839,10 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
}
fPropertyChangeListener = null;
}
+ if (fColumnSupport != null) {
+ fColumnSupport.dispose();
+ fColumnSupport= null;
+ }
fDocument.dispose();
fDocument = null;
@@ -1042,44 +1062,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
return ruler;
}
- /**
- * Creates a new address ruler column that is appropriately initialized.
- *
- * @return the created line number column
- */
- protected IVerticalRulerColumn createAddressRulerColumn() {
- fAddressRulerColumn= new AddressRulerColumn();
- initializeRulerColumn(fAddressRulerColumn, DisassemblyPreferenceConstants.ADDRESS_COLOR);
- IPreferenceStore prefs = getPreferenceStore();
- fAddressRulerColumn.setRadix(prefs.getInt(DisassemblyPreferenceConstants.ADDRESS_RADIX));
- fAddressRulerColumn.setShowRadixPrefix(prefs.getBoolean(DisassemblyPreferenceConstants.SHOW_ADDRESS_RADIX));
- return fAddressRulerColumn;
- }
-
- /**
- * Creates a new ruler column that is appropriately initialized.
- *
- * @return the created line number column
- */
- protected IVerticalRulerColumn createFunctionOffsetsRulerColumn() {
- fFunctionOffsetRulerColumn= new FunctionOffsetRulerColumn();
-
- initializeRulerColumn(fFunctionOffsetRulerColumn, DisassemblyPreferenceConstants.FUNCTION_OFFSETS_COLOR);
-
- return fFunctionOffsetRulerColumn;
- }
-
- protected IVerticalRulerColumn createOpcodeRulerColumn() {
- fOpcodeRulerColumn= new OpcodeRulerColumn();
-
- initializeRulerColumn(fOpcodeRulerColumn, DisassemblyPreferenceConstants.CODE_BYTES_COLOR);
-
- IPreferenceStore prefs = getPreferenceStore();
- fOpcodeRulerColumn.setRadix(prefs.getInt(DisassemblyPreferenceConstants.OPCODE_RADIX));
-
- return fOpcodeRulerColumn;
- }
-
/**
* Initializes the given address ruler column from the preference store.
*
@@ -1128,99 +1110,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
return ruler;
}
- private boolean isAddressRulerVisible() {
- return getPreferenceStore().getBoolean(DisassemblyPreferenceConstants.SHOW_ADDRESS_RULER);
- }
-
- /**
- * Shows the address ruler column.
- */
- private void showAddressRuler() {
- if (fAddressRulerColumn == null) {
- IVerticalRuler v= getVerticalRuler();
- if (v instanceof CompositeRuler) {
- CompositeRuler c= (CompositeRuler) v;
- c.addDecorator(1, createAddressRulerColumn());
- }
- }
- }
-
- /**
- * Hides the address ruler column.
- */
- private void hideAddressRuler() {
- if (fAddressRulerColumn != null) {
- IVerticalRuler v= getVerticalRuler();
- if (v instanceof CompositeRuler) {
- CompositeRuler c= (CompositeRuler) v;
- c.removeDecorator(fAddressRulerColumn);
- }
- fAddressRulerColumn = null;
- }
- }
-
- private boolean isFunctionOffsetsRulerVisible() {
- return fShowFunctionOffsets;
- }
-
- private boolean isOpcodeRulerVisible() {
- return fShowOpcodes;
- }
-
- /**
- * Shows the function offset ruler column.
- */
- private void showFunctionOffsetsRuler() {
- if (fFunctionOffsetRulerColumn == null) {
- IVerticalRuler v= getVerticalRuler();
- if (v instanceof CompositeRuler) {
- CompositeRuler c= (CompositeRuler) v;
- c.addDecorator(3, createFunctionOffsetsRulerColumn());
- }
- }
- }
-
- /**
- * Hides the function offset ruler column.
- */
- private void hideFunctionOffsetsRuler() {
- if (fFunctionOffsetRulerColumn != null) {
- IVerticalRuler v= getVerticalRuler();
- if (v instanceof CompositeRuler) {
- CompositeRuler c= (CompositeRuler) v;
- c.removeDecorator(fFunctionOffsetRulerColumn);
- }
- fFunctionOffsetRulerColumn = null;
- }
- }
-
- /**
- * Shows the opcode ruler column.
- */
- private void showOpcodeRuler() {
- if (fOpcodeRulerColumn == null) {
- IVerticalRuler v= getVerticalRuler();
- if (v instanceof CompositeRuler) {
- CompositeRuler c= (CompositeRuler) v;
- c.addDecorator(2, createOpcodeRulerColumn());
- }
- }
- }
-
- /**
- * Hides the opcode ruler column.
- */
- private void hideOpcodeRuler() {
- if (fOpcodeRulerColumn != null) {
- IVerticalRuler v= getVerticalRuler();
- if (v instanceof CompositeRuler) {
- CompositeRuler c= (CompositeRuler) v;
- c.removeDecorator(fOpcodeRulerColumn);
- }
- fOpcodeRulerColumn = null;
- }
- }
-
/**
* Returns the annotation access.
*
@@ -1246,6 +1135,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
MenuManager menuMgr = new MenuManager(id, id);
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
+ @Override
public void menuAboutToShow(IMenuManager manager) {
DisassemblyPart.this.fillContextMenu(manager);
}
@@ -1260,6 +1150,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
MenuManager menuMgr = new MenuManager(id, id);
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
+ @Override
public void menuAboutToShow(IMenuManager manager) {
DisassemblyPart.this.fillRulerContextMenu(manager);
}
@@ -1315,9 +1206,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
protected void fillRulerContextMenu(IMenuManager manager) {
fActionToggleBreakpointEnablement.update();
- fActionToggleAddressColumn.update();
- fActionToggleOpcodeColumn.update();
- fActionToggleFunctionColumn.update();
manager.add(new GroupMarker("group.top")); // ICommonMenuConstants.GROUP_TOP //$NON-NLS-1$
manager.add(new Separator("group.breakpoints")); //$NON-NLS-1$
@@ -1327,9 +1215,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
manager.add(new GroupMarker(ITextEditorActionConstants.GROUP_RESTORE));
manager.add(new Separator("add")); //$NON-NLS-1$
manager.add(new Separator(ITextEditorActionConstants.GROUP_RULERS));
- manager.add(fActionToggleAddressColumn);
- manager.add(fActionToggleOpcodeColumn);
- manager.add(fActionToggleFunctionColumn);
+ addRulerContributionActions(manager);
manager.add(new Separator(ITextEditorActionConstants.GROUP_REST));
for (Object listener : fRulerContextMenuListeners.getListeners())
@@ -1429,9 +1315,6 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
}
});
fActionToggleBreakpointEnablement = new ActionToggleBreakpointEnablement();
- fActionToggleAddressColumn = new ActionToggleAddressColumn();
- fActionToggleOpcodeColumn = new ActionToggleOpcodeColumn();
- fActionToggleFunctionColumn = new ActionToggleFunctionColumn();
fActionToggleSymbols = new ActionToggleSymbols();
fActionRefreshView = new ActionRefreshView();
fSyncAction = new SyncActiveDebugContextAction();
@@ -1457,6 +1340,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.dsf.debug.internal.ui.disassembly.IDisassemblyPart#gotoProgramCounter()
*/
+ @Override
public final void gotoProgramCounter() {
if (fPCAddress != PC_RUNNING) {
fPCLastAddress = PC_UNKNOWN;
@@ -1467,6 +1351,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.dsf.debug.internal.ui.disassembly.IDisassemblyPart#gotoAddress(java.math.BigInteger)
*/
+ @Override
public final void gotoAddress(IAddress address) {
if (address != null) {
gotoAddress(address.getValue());
@@ -1486,6 +1371,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#gotoAddress(java.math.BigInteger)
*/
+ @Override
public final void gotoAddress(BigInteger address) {
fFocusAddress = address;
if (fDebugSessionId == null) {
@@ -1517,6 +1403,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.dsf.debug.internal.ui.disassembly.IDisassemblyPart#gotoSymbol(java.lang.String)
*/
+ @Override
public final void gotoSymbol(final String symbol) {
if (!fActive || fBackend == null || !fBackend.hasFrameContext()) {
return;
@@ -1563,12 +1450,14 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.jface.text.IViewportListener#viewportChanged(int)
*/
+ @Override
public void viewportChanged(int verticalOffset) {
if (fDebugSessionId != null && fGotoAddressPending == PC_UNKNOWN && fScrollPos == null && !fUpdatePending && !fRefreshViewPending) {
fUpdatePending = true;
final int updateCount = fUpdateCount;
invokeLater(new Runnable() {
- public void run() {
+ @Override
+ public void run() {
if (updateCount == fUpdateCount) {
assert fUpdatePending;
if (fUpdatePending) {
@@ -1586,6 +1475,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
*
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#updateVisibleArea()
*/
+ @Override
public void updateVisibleArea() {
assert isGuiThread();
if (!fActive || fUpdatePending || fViewer == null || fDebugSessionId == null) {
@@ -1699,6 +1589,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#asyncExec(java.lang.Runnable)
*/
+ @Override
public void asyncExec(Runnable runnable) {
if (fViewer != null) {
fViewer.getControl().getDisplay().asyncExec(runnable);
@@ -1718,6 +1609,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
*
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#updateInvalidSource()
*/
+ @Override
public void updateInvalidSource() {
assert isGuiThread();
if (fViewer == null) {
@@ -1765,7 +1657,8 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
return;
}
startUpdate(new Runnable() {
- public void run() {
+ @Override
+ public void run() {
if (DEBUG) System.out.println("retrieveDisassembly "+file); //$NON-NLS-1$
fBackend.retrieveDisassembly(file, lines, fEndAddress, mixed, fShowSymbols, fShowDisassembly);
}
@@ -1783,6 +1676,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#retrieveDisassembly(java.math.BigInteger, java.math.BigInteger, int, boolean, boolean)
*/
+ @Override
public void retrieveDisassembly(final BigInteger startAddress, BigInteger endAddress, final int linesHint, boolean mixed, boolean ignoreFile) {
assert isGuiThread();
assert !fUpdatePending;
@@ -1811,6 +1705,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#insertError(java.math.BigInteger, java.lang.String)
*/
+ @Override
public void insertError(BigInteger address, String message) {
assert isGuiThread();
AddressRangePosition p = null;
@@ -1828,6 +1723,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#getAddressSize()
*/
+ @Override
public int getAddressSize() {
assert isGuiThread();
return fAddressSize;
@@ -1836,6 +1732,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#addressSizeChanged(int)
*/
+ @Override
public void addressSizeChanged(int addressSize) {
assert isGuiThread();
BigInteger oldEndAddress= fEndAddress;
@@ -1864,7 +1761,8 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
} else {
return;
}
- if (fAddressRulerColumn != null) {
+ AddressRulerColumn fAddressRulerColumn = (AddressRulerColumn) getRulerColumn(AddressRulerColumn.ID);
+ if (fAddressRulerColumn != null) {
fAddressRulerColumn.setAddressSize(addressSize);
if (fComposite != null) {
fComposite.layout(true);
@@ -1872,9 +1770,24 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
}
}
+ private IContributedRulerColumn getRulerColumn(String id) {
+ CompositeRuler compositeRuler = (CompositeRuler) getVerticalRuler();
+ for (Iterator> iter = compositeRuler.getDecoratorIterator(); iter.hasNext();) {
+ IVerticalRulerColumn column = (IVerticalRulerColumn) iter.next();
+ if (column instanceof IContributedRulerColumn) {
+ IContributedRulerColumn contributedColumn = (IContributedRulerColumn) column;
+ if (id.equals(contributedColumn.getDescriptor().getId())) {
+ return contributedColumn;
+ }
+ }
+ }
+ return null;
+ }
+
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#getPositionOfAddress(java.math.BigInteger)
*/
+ @Override
public AddressRangePosition getPositionOfAddress(BigInteger address) {
assert isGuiThread();
if (address == null || address.compareTo(BigInteger.ZERO) < 0) {
@@ -1967,6 +1880,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
}
if (needUpdate && fViewer != null) {
startUpdate(new Runnable() {
+ @Override
public void run() {
debugContextChanged();
}
@@ -1980,7 +1894,8 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
final int updateCount = fUpdateCount;
final SafeRunnable safeUpdate = new SafeRunnable() {
- public void run() {
+ @Override
+ public void run() {
if (updateCount == fUpdateCount) {
update.run();
}
@@ -1992,7 +1907,8 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
};
if (fUpdatePending) {
invokeLater(new Runnable() {
- public void run() {
+ @Override
+ public void run() {
if (updateCount == fUpdateCount) {
SafeRunner.run(safeUpdate);
}
@@ -2057,6 +1973,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
fRefreshViewPending = true;
final long refreshViewScheduled = System.currentTimeMillis() + delay;
final Runnable refresh = new Runnable() {
+ @Override
public void run() {
fRefreshViewPending = false;
long now = System.currentTimeMillis();
@@ -2087,6 +2004,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
}};
if (delay > 0) {
invokeLater(delay, new Runnable() {
+ @Override
public void run() {
doScrollLocked(refresh);
}});
@@ -2230,6 +2148,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#gotoFrame(int)
*/
+ @Override
public void gotoFrame(int frame) {
assert isGuiThread();
fGotoAddressPending = PC_UNKNOWN;
@@ -2239,6 +2158,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#gotoFrameIfActive(int)
*/
+ @Override
public void gotoFrameIfActive(int frame) {
assert isGuiThread();
if (fActive) {
@@ -2252,6 +2172,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#gotoFrame(int, java.math.BigInteger)
*/
+ @Override
public void gotoFrame(int frame, BigInteger address) {
assert isGuiThread();
if (DEBUG) System.out.println("gotoFrame " + frame + " " + getAddressText(address)); //$NON-NLS-1$ //$NON-NLS-2$
@@ -2332,6 +2253,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.dsf.debug.internal.ui.disassembly.IDisassemblyPart#isActive()
*/
+ @Override
public final boolean isActive() {
return fActive;
}
@@ -2339,6 +2261,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.dsf.debug.internal.ui.disassembly.IDisassemblyPart#isConnected()
*/
+ @Override
public final boolean isConnected() {
if (fDebugSessionId == null) {
return false;
@@ -2350,6 +2273,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.dsf.debug.internal.ui.disassembly.IDisassemblyPart#isSuspended()
*/
+ @Override
public final boolean isSuspended() {
return isConnected() && fBackend.isSuspended();
}
@@ -2357,10 +2281,12 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.dsf.debug.internal.ui.disassembly.IDisassemblyPart#getTextViewer()
*/
+ @Override
public final ISourceViewer getTextViewer() {
return fViewer;
}
+ @Override
public final boolean hasViewer() {
return fViewer != null;
}
@@ -2368,6 +2294,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.dsf.debug.internal.ui.disassembly.IDisassemblyPart#addRulerContextMenuListener(org.eclipse.jface.action.IMenuListener)
*/
+ @Override
public final void addRulerContextMenuListener(IMenuListener listener) {
fRulerContextMenuListeners.add(listener);
}
@@ -2375,6 +2302,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.cdt.dsf.debug.internal.ui.disassembly.IDisassemblyPart#removeRulerContextMenuListener(org.eclipse.jface.action.IMenuListener)
*/
+ @Override
public final void removeRulerContextMenuListener(IMenuListener listener) {
fRulerContextMenuListeners.remove(listener);
}
@@ -2476,6 +2404,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
* means target resumed
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#updatePC(java.math.BigInteger)
*/
+ @Override
public void updatePC(BigInteger pc) {
assert isGuiThread();
if (!fPendingPCUpdates.isEmpty()) {
@@ -2535,6 +2464,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
if (!fUpdatePending && !fDoPendingPosted) {
fDoPendingPosted = true;
invokeLater(new Runnable() {
+ @Override
public void run() {
doPending();
fDoPendingPosted = false;
@@ -2546,6 +2476,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#doPending()
*/
+ @Override
public void doPending() {
assert isGuiThread();
if (fViewer == null || fDocument == null) {
@@ -2581,6 +2512,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
* @param doit
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#doScrollLocked(java.lang.Runnable)
*/
+ @Override
public void doScrollLocked(final Runnable doit) {
assert isGuiThread();
if (fViewer == null || fDebugSessionId == null) {
@@ -2600,7 +2532,8 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
if (fUpdatePending) {
if (fRunnableQueue.size() == 1) {
Runnable doitlater = new Runnable() {
- public void run() {
+ @Override
+ public void run() {
if (updateCount == fUpdateCount) {
doScrollLocked(null);
}
@@ -2636,14 +2569,11 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#lockScroller()
*/
+ @Override
public void lockScroller() {
assert isGuiThread();
assert fScrollPos == null;
- if (isFunctionOffsetsRulerVisible()) {
- fRedrawControl = fViewer.getControl();
- } else {
- fRedrawControl = fViewer.getTextWidget();
- }
+ fRedrawControl = fViewer.getControl();
fRedrawControl.setRedraw(false);
try {
int topOffset = fViewer.getTopIndexStartOffset();
@@ -2680,6 +2610,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#unlockScroller()
*/
+ @Override
public void unlockScroller() {
assert isGuiThread();
try {
@@ -2732,7 +2663,8 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#insertSource(org.eclipse.cdt.debug.internal.ui.disassembly.dsf.AddressRangePosition)
*/
- public void insertSource(AddressRangePosition _pos) {
+ @Override
+ public void insertSource(AddressRangePosition _pos) {
assert isGuiThread();
// IDisassemblyPartCallback does not have visibility to the
// SourcePosition type, which is DSF-specific, so it uses the base type
@@ -2838,6 +2770,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/*
* @see org.eclipse.jface.text.ITextPresentationListener#applyTextPresentation(org.eclipse.jface.text.TextPresentation)
*/
+ @Override
@SuppressWarnings("unchecked")
public void applyTextPresentation(TextPresentation textPresentation) {
IRegion coverage = textPresentation.getExtent();
@@ -2934,9 +2867,11 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
}
}
+ @Override
public AddressRangePosition insertSource(AddressRangePosition pos, BigInteger address, final String file, int lineNumber) {
return insertSource(pos, address, file, lineNumber, lineNumber);
}
+ @Override
public AddressRangePosition insertSource(AddressRangePosition pos, BigInteger address, final String file, int firstLine, int lastLine) {
assert isGuiThread();
Object sourceElement = null;
@@ -3020,8 +2955,10 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#handleTargetSuspended()
*/
+ @Override
public void handleTargetSuspended() {
asyncExec(new Runnable() {
+ @Override
public void run() {
updatePC(PC_UNKNOWN);
firePropertyChange(PROP_SUSPENDED);
@@ -3032,8 +2969,10 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#handleTargetResumed()
*/
+ @Override
public void handleTargetResumed() {
asyncExec(new Runnable() {
+ @Override
public void run() {
updatePC(PC_RUNNING);
firePropertyChange(PROP_SUSPENDED);
@@ -3044,12 +2983,15 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#handleTargetEnded()
*/
+ @Override
public void handleTargetEnded() {
asyncExec(new Runnable() {
+ @Override
public void run() {
fDebugSessionId = null;
startUpdate(new Runnable() {
- public void run() {
+ @Override
+ public void run() {
debugContextChanged();
}
});
@@ -3060,6 +3002,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#setUpdatePending(boolean)
*/
+ @Override
public void setUpdatePending(boolean pending) {
fUpdatePending = pending;
}
@@ -3067,6 +3010,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#getUpdatePending()
*/
+ @Override
public boolean getUpdatePending() {
assert isGuiThread();
return fUpdatePending;
@@ -3075,6 +3019,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#setGotoAddressPending(java.math.BigInteger)
*/
+ @Override
public void setGotoAddressPending(BigInteger address) {
assert isGuiThread();
fGotoAddressPending = address;
@@ -3083,6 +3028,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#getGotoAddressPending()
*/
+ @Override
public BigInteger getGotoAddressPending() {
assert isGuiThread();
return fGotoAddressPending;
@@ -3091,6 +3037,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#getDocument()
*/
+ @Override
public IDisassemblyDocument getDocument() {
assert isGuiThread();
return fDocument;
@@ -3099,6 +3046,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyPartCallback#getStorageForFile(java.lang.String)
*/
+ @Override
public Object getStorageForFile(String file) {
assert isGuiThread();
return fFile2Storage.get(file);
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/FunctionOffsetRulerColumn.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/FunctionOffsetRulerColumn.java
index 119cfb845c3..0c2fb8fddce 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/FunctionOffsetRulerColumn.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/FunctionOffsetRulerColumn.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2010 Wind River Systems and others.
+ * Copyright (c) 2007, 2011 Wind River Systems 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
@@ -13,13 +13,18 @@ package org.eclipse.cdt.dsf.debug.internal.ui.disassembly;
import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.AddressRangePosition;
import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.DisassemblyPosition;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.model.DisassemblyDocument;
+import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.preferences.DisassemblyPreferenceConstants;
+import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.provisional.DisassemblyRulerColumn;
import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.util.PropertyChangeEvent;
/**
* A vertical ruler column to display the function + offset of instructions.
*/
public class FunctionOffsetRulerColumn extends DisassemblyRulerColumn {
+ public static final String ID = "org.eclipse.cdt.dsf.ui.disassemblyColumn.functionOffset"; //$NON-NLS-1$
+
/** Maximum width of column (in characters) */
private static final int MAXWIDTH= 20;
@@ -28,6 +33,7 @@ public class FunctionOffsetRulerColumn extends DisassemblyRulerColumn {
*/
public FunctionOffsetRulerColumn() {
super();
+ setForeground(getColor(DisassemblyPreferenceConstants.FUNCTION_OFFSETS_COLOR));
}
/*
@@ -62,4 +68,17 @@ public class FunctionOffsetRulerColumn extends DisassemblyRulerColumn {
return Math.min(MAXWIDTH, doc.getMaxFunctionLength());
}
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ String property = event.getProperty();
+ boolean needRedraw = false;
+ if (DisassemblyPreferenceConstants.FUNCTION_OFFSETS_COLOR.equals(property)) {
+ setForeground(getColor(property));
+ needRedraw = true;
+ }
+ if (needRedraw) {
+ redraw();
+ }
+ }
+
}
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/OpcodeRulerColumn.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/OpcodeRulerColumn.java
index 707d32205d7..bfcf196172f 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/OpcodeRulerColumn.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/OpcodeRulerColumn.java
@@ -13,13 +13,19 @@ package org.eclipse.cdt.dsf.debug.internal.ui.disassembly;
import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.AddressRangePosition;
import org.eclipse.cdt.debug.internal.ui.disassembly.dsf.DisassemblyPosition;
import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.model.DisassemblyDocument;
+import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.preferences.DisassemblyPreferenceConstants;
+import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.provisional.DisassemblyRulerColumn;
+import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.util.PropertyChangeEvent;
/**
* A vertical ruler column to display the opcodes of instructions.
*/
public class OpcodeRulerColumn extends DisassemblyRulerColumn {
+ public static final String ID = "org.eclipse.cdt.dsf.ui.disassemblyColumn.opcode"; //$NON-NLS-1$
+
private int fRadix;
private String fRadixPrefix;
@@ -28,6 +34,8 @@ public class OpcodeRulerColumn extends DisassemblyRulerColumn {
*/
public OpcodeRulerColumn() {
super();
+ setForeground(getColor(DisassemblyPreferenceConstants.CODE_BYTES_COLOR));
+ setRadix(getPreferenceStore().getInt(DisassemblyPreferenceConstants.OPCODE_RADIX));
}
public void setRadix(int radix) {
@@ -91,4 +99,23 @@ public class OpcodeRulerColumn extends DisassemblyRulerColumn {
DisassemblyDocument doc = (DisassemblyDocument)getParentRuler().getTextViewer().getDocument();
return doc.getMaxOpcodeLength(fRadix);
}
+
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ String property = event.getProperty();
+ IPreferenceStore store = getPreferenceStore();
+ boolean needRedraw = false;
+ if (DisassemblyPreferenceConstants.CODE_BYTES_COLOR.equals(property)) {
+ setForeground(getColor(property));
+ needRedraw = true;
+ } else if (DisassemblyPreferenceConstants.OPCODE_RADIX.equals(property)) {
+ setRadix(store.getInt(property));
+ layout(false);
+ needRedraw = true;
+ }
+ if (needRedraw) {
+ redraw();
+ }
+ }
+
}
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/model/DisassemblyDocument.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/model/DisassemblyDocument.java
index befaeac8abd..a23a5ac80e4 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/model/DisassemblyDocument.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/model/DisassemblyDocument.java
@@ -103,6 +103,7 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
setShowRadixPrefix(false);
fNumberOfInstructions = 0;
fMeanSizeOfInstructions = 4;
+ fMaxFunctionLength = 0;
}
/**
@@ -120,9 +121,7 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
fi.dispose();
}
fFileInfoMap.clear();
-
fInvalidAddressRanges.clear();
-
fInvalidSource.clear();
}
@@ -141,8 +140,8 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
return fInvalidAddressRanges.toArray(new AddressRangePosition[fInvalidAddressRanges.size()]);
}
- public void setMaxFunctionLength(int opcodeLength) {
- fMaxFunctionLength = opcodeLength;
+ public void setMaxFunctionLength(int functionLength) {
+ fMaxFunctionLength = functionLength;
}
public int getMaxFunctionLength() {
@@ -1019,6 +1018,7 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyDocument#insertDisassemblyLine(org.eclipse.cdt.debug.internal.ui.disassembly.dsf.AddressRangePosition, java.math.BigInteger, int, java.lang.String, java.lang.String, java.lang.String, int)
*/
+ @Override
public AddressRangePosition insertDisassemblyLine(AddressRangePosition pos, BigInteger address, int length, String functionOffset, String instruction, String file, int lineNr)
throws BadLocationException {
return insertDisassemblyLine(pos, address, length, functionOffset, null, instruction, file, lineNr);
@@ -1027,6 +1027,7 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyDocument#insertDisassemblyLine(org.eclipse.cdt.debug.internal.ui.disassembly.dsf.AddressRangePosition, java.math.BigInteger, int, java.lang.String, java.lang.String, java.lang.String, int)
*/
+ @Override
public AddressRangePosition insertDisassemblyLine(AddressRangePosition pos, BigInteger address, int length, String functionOffset, BigInteger opcode, String instruction, String file, int lineNr)
throws BadLocationException {
assert isGuiThread();
@@ -1194,6 +1195,7 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.disassembly.dsf.IDisassemblyDocument#insertLabel(org.eclipse.cdt.debug.internal.ui.disassembly.dsf.AddressRangePosition, java.math.BigInteger, java.lang.String, boolean)
*/
+ @Override
public AddressRangePosition insertLabel(AddressRangePosition pos, BigInteger address, String label, boolean showLabels)
throws BadLocationException {
assert isGuiThread();
@@ -1552,6 +1554,7 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
}
}
+ @Override
public void addInvalidAddressRange(AddressRangePosition pos) {
assert isGuiThread();
if (DEBUG) System.out.println("Adding to invalid range list: " + pos); //$NON-NLS-1$
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/preferences/DisassemblyPreferenceConstants.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/preferences/DisassemblyPreferenceConstants.java
index 381ad0c2001..8af99458e51 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/preferences/DisassemblyPreferenceConstants.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/preferences/DisassemblyPreferenceConstants.java
@@ -32,11 +32,8 @@ public class DisassemblyPreferenceConstants {
public static final String ADDRESS_RADIX = "disassembly.addressRadix"; //$NON-NLS-1$
public static final String OPCODE_RADIX = "disassembly.opcodeRadix"; //$NON-NLS-1$
public static final String SHOW_ADDRESS_RADIX = "disassembly.showAddressRadix"; //$NON-NLS-1$
- public static final String SHOW_ADDRESS_RULER = "disassembly.showAddressRuler"; //$NON-NLS-1$
public static final String ADDRESS_COLOR = "disassembly.addressColor"; //$NON-NLS-1$
- public static final String SHOW_FUNCTION_OFFSETS = "disassembly.showFunctionOffsetRuler"; //$NON-NLS-1$
public static final String FUNCTION_OFFSETS_COLOR = "disassembly.functionOffsetsColor"; //$NON-NLS-1$
- public static final String SHOW_CODE_BYTES = "disassembly.showCodeBytesRuler"; //$NON-NLS-1$
public static final String CODE_BYTES_COLOR = "disassembly.codeBytesColor"; //$NON-NLS-1$
public static final String AVOID_READ_BEFORE_PC = "disassembly.avoidReadBeforePC"; //$NON-NLS-1$
public static final String TRACK_EXPRESSION = "disassembly.trackExpression"; //$NON-NLS-1$
@@ -58,13 +55,10 @@ public class DisassemblyPreferenceConstants {
store.setDefault(END_ADDRESS, "0x" + BigInteger.ONE.shiftLeft(64).toString(16)); //$NON-NLS-1$
store.setDefault(PC_HISTORY_SIZE, 4);
store.setDefault(SHOW_SOURCE, true);
- store.setDefault(SHOW_FUNCTION_OFFSETS, false);
- store.setDefault(SHOW_CODE_BYTES, false);
store.setDefault(SHOW_SYMBOLS, true);
store.setDefault(ADDRESS_RADIX, 16);
store.setDefault(OPCODE_RADIX, 16);
store.setDefault(SHOW_ADDRESS_RADIX, false);
- store.setDefault(SHOW_ADDRESS_RULER, true);
store.setDefault(AVOID_READ_BEFORE_PC, false);
PreferenceConverter.setDefault(store, ADDRESS_COLOR, new RGB(0, 96, 0));
PreferenceConverter.setDefault(store, FUNCTION_OFFSETS_COLOR, new RGB(96, 0, 0));
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/preferences/DisassemblyPreferencePage.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/preferences/DisassemblyPreferencePage.java
index 25cc9600e9b..0fa58417d5e 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/preferences/DisassemblyPreferencePage.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/preferences/DisassemblyPreferencePage.java
@@ -23,8 +23,6 @@ import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
@@ -46,6 +44,7 @@ public class DisassemblyPreferencePage extends PreferencePage implements IWorkbe
private List fComboBoxes = new ArrayList();
private ArrayList fNumberFields = new ArrayList();
private ModifyListener fNumberFieldListener = new ModifyListener() {
+ @Override
public void modifyText(ModifyEvent e) {
numberFieldChanged((Text)e.widget);
}
@@ -93,38 +92,17 @@ public class DisassemblyPreferencePage extends PreferencePage implements IWorkbe
String label;
-// label = DisassemblyMessages.DisassemblyPreferencePage_startAddress; //$NON-NLS-1$
-// addTextField(composite, label, DisassemblyPreferenceConstants.START_ADDRESS, 20, 0, true);
-// label = DisassemblyMessages.DisassemblyPreferencePage_endAddress; //$NON-NLS-1$
-// addTextField(composite, label, DisassemblyPreferenceConstants.END_ADDRESS, 20, 0, true);
-
- label = DisassemblyMessages.DisassemblyPreferencePage_showAddress;
- final Button showAddressCB = addCheckBox(composite, label, DisassemblyPreferenceConstants.SHOW_ADDRESS_RULER, 0);
- showAddressCB.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- fAddressFormatCombo.setEnabled(showAddressCB.getSelection());
- }
- });
- showAddressCB.setToolTipText(DisassemblyMessages.DisassemblyPreferencePage_showAddressTooltip);
label = DisassemblyMessages.DisassemblyPreferencePage_addressRadix;
fAddressFormatCombo = addComboBox(composite, label, DisassemblyPreferenceConstants.ADDRESS_RADIX, fcRadixItems);
fAddressFormatCombo.setToolTipText(DisassemblyMessages.DisassemblyPreferencePage_addressFormatTooltip);
- label = DisassemblyMessages.DisassemblyPreferencePage_showCodeBytes;
- final Button showCodeBytes= addCheckBox(composite, label, DisassemblyPreferenceConstants.SHOW_CODE_BYTES, 0);
- showCodeBytes.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- fOpcodeFormatCombo.setEnabled(showCodeBytes.getSelection());
- }
- });
- showCodeBytes.setToolTipText(DisassemblyMessages.DisassemblyPreferencePage_showCodeBytesTooltip);
+ label = DisassemblyMessages.DisassemblyPreferencePage_showAddressRadix;
+ Button showRadixCB = addCheckBox(composite, label, DisassemblyPreferenceConstants.SHOW_ADDRESS_RADIX, 0);
+ showRadixCB.setToolTipText(DisassemblyMessages.DisassemblyPreferencePage_showRadixTooltip);
+
label = DisassemblyMessages.DisassemblyPreferencePage_OpcodeFormat;
fOpcodeFormatCombo = addComboBox(composite, label, DisassemblyPreferenceConstants.OPCODE_RADIX, fcRadixItems);
fOpcodeFormatCombo.setToolTipText(DisassemblyMessages.DisassemblyPreferencePage_OpcodeFormatTooltip);
-// label = DisassemblyMessages.DisassemblyPreferencePage_instructionRadix;
-// addComboBox(composite, label, DisassemblyPreferenceConstants.INSTRUCTION_RADIX, fcRadixItems);
label = DisassemblyMessages.DisassemblyPreferencePage_showSource;
Button showSourceCB = addCheckBox(composite, label, DisassemblyPreferenceConstants.SHOW_SOURCE, 0);
@@ -132,42 +110,6 @@ public class DisassemblyPreferencePage extends PreferencePage implements IWorkbe
label = DisassemblyMessages.DisassemblyPreferencePage_showSymbols;
Button showSymbolsCB = addCheckBox(composite, label, DisassemblyPreferenceConstants.SHOW_SYMBOLS, 0);
showSymbolsCB.setToolTipText(DisassemblyMessages.DisassemblyPreferencePage_showSymbolsTooltip);
-// label = DisassemblyMessages.DisassemblyPreferencePage_simplifiedMnemonics;
-// addCheckBox(composite, label, DisassemblyPreferenceConstants.SIMPLIFIED, 0);
- label = DisassemblyMessages.DisassemblyPreferencePage_showAddressRadix;
- Button showRadixCB = addCheckBox(composite, label, DisassemblyPreferenceConstants.SHOW_ADDRESS_RADIX, 0);
- showRadixCB.setToolTipText(DisassemblyMessages.DisassemblyPreferencePage_showRadixTooltip);
- label = DisassemblyMessages.DisassemblyPreferencePage_showFunctionOffsets;
- Button showFunctionOffsets = addCheckBox(composite, label, DisassemblyPreferenceConstants.SHOW_FUNCTION_OFFSETS, 0);
- showFunctionOffsets.setToolTipText(DisassemblyMessages.DisassemblyPreferencePage_showFunctionOffsetsTooltip);
-// label = DisassemblyMessages.DisassemblyPreferencePage_avoidReadBeforePC;
-// addCheckBox(composite, label, DisassemblyPreferenceConstants.AVOID_READ_BEFORE_PC, 0);
-
- // horizontal line
-// Label separator = new Label(composite, SWT.SEPARATOR|SWT.HORIZONTAL);
-// GridData data;
-// data = new GridData(GridData.FILL_HORIZONTAL);
-// data.horizontalSpan = layout.numColumns;
-// separator.setLayoutData(data);
-//
-// label = DisassemblyMessages.DisassemblyPreferencePage_useSourceOnlyMode;
-// addCheckBox(composite, label, DisassemblyPreferenceConstants.USE_SOURCE_ONLY_MODE, 0);
-//
-// // note
-// String noteTitle = DisassemblyMessages.DisassemblyPreferencePage_useSourceOnlyMode_noteTtitle;
-// String noteMessage = DisassemblyMessages.DisassemblyPreferencePage_useSourceOnlyMode_noteMessage;
-// Composite note = createNoteComposite(composite.getFont(), composite, noteTitle, noteMessage);
-// data = (GridData)note.getLayoutData();
-// if (data == null) {
-// data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-// note.setLayoutData(data);
-// }
-// data.horizontalSpan = layout.numColumns;
-// Control msgControl = note.getChildren()[1];
-// data = new GridData(GridData.FILL_HORIZONTAL);
-// data.widthHint = convertWidthInCharsToPixels(65);
-// data.heightHint = convertHeightInCharsToPixels(3);
-// msgControl.setLayoutData(data);
Dialog.applyDialogFont(parent);
@@ -179,6 +121,7 @@ public class DisassemblyPreferencePage extends PreferencePage implements IWorkbe
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
+ @Override
public void init(IWorkbench workbench) {
}
@@ -200,7 +143,7 @@ public class DisassemblyPreferencePage extends PreferencePage implements IWorkbe
Label labelControl= new Label(parent, SWT.NONE);
labelControl.setText(label);
GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- gd.horizontalIndent = 16;
+ gd.horizontalIndent = 0;
gd.horizontalSpan = 2;
labelControl.setLayoutData(gd);
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyRulerColumn.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/provisional/DisassemblyRulerColumn.java
similarity index 94%
rename from dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyRulerColumn.java
rename to dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/provisional/DisassemblyRulerColumn.java
index f7017ef1a29..e3edb3db2b4 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyRulerColumn.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/provisional/DisassemblyRulerColumn.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation 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
@@ -10,11 +10,15 @@
* Anton Leherbauer (Wind River Systems)
*******************************************************************************/
-package org.eclipse.cdt.dsf.debug.internal.ui.disassembly;
+package org.eclipse.cdt.dsf.debug.internal.ui.disassembly.provisional;
import java.util.Arrays;
+import org.eclipse.cdt.debug.ui.disassembly.rulers.AbstractContributedRulerColumn;
+import org.eclipse.cdt.dsf.internal.ui.DsfUIPlugin;
import org.eclipse.core.runtime.Assert;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
@@ -26,7 +30,8 @@ import org.eclipse.jface.text.IViewportListener;
import org.eclipse.jface.text.TextEvent;
import org.eclipse.jface.text.source.CompositeRuler;
import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.IVerticalRulerColumn;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.SWT;
@@ -46,11 +51,13 @@ import org.eclipse.swt.graphics.FontMetrics;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.editors.text.EditorsUI;
/**
* Vertical ruler column for use with disassembly parts.
@@ -58,7 +65,7 @@ import org.eclipse.swt.widgets.Display;
* Derived from {@link org.eclipse.jface.text.source.LineNumberRulerColumn}.
*
*/
-public class DisassemblyRulerColumn implements IVerticalRulerColumn {
+public class DisassemblyRulerColumn extends AbstractContributedRulerColumn implements IPropertyChangeListener {
protected final static String DOTS = "......................................................................"; //$NON-NLS-1$
protected final static String SPACES = " "; //$NON-NLS-1$
@@ -70,6 +77,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see IViewportListener#viewportChanged(int)
*/
+ @Override
public void viewportChanged(int verticalPosition) {
if (verticalPosition != fScrollPos)
redraw();
@@ -78,6 +86,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see ITextListener#textChanged(TextEvent)
*/
+ @Override
public void textChanged(TextEvent event) {
if (updateNumberOfDigits()) {
@@ -97,6 +106,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
*/
+ @Override
public void selectionChanged(SelectionChangedEvent event) {
postRedraw();
}
@@ -119,6 +129,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent)
*/
+ @Override
public void mouseUp(MouseEvent event) {
// see bug 45700
if (event.button == 1) {
@@ -131,6 +142,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
*/
+ @Override
public void mouseDown(MouseEvent event) {
fParentRuler.setLocationOfLastMouseButtonActivity(event.x, event.y);
// see bug 45700
@@ -142,6 +154,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
*/
+ @Override
public void mouseDoubleClick(MouseEvent event) {
fParentRuler.setLocationOfLastMouseButtonActivity(event.x, event.y);
stopSelecting();
@@ -151,6 +164,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see org.eclipse.swt.events.MouseMoveListener#mouseMove(org.eclipse.swt.events.MouseEvent)
*/
+ @Override
public void mouseMove(MouseEvent event) {
if (!autoScroll(event)) {
int newLine = fParentRuler.toDocumentLineNumber(event.y);
@@ -161,18 +175,21 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see org.eclipse.swt.events.MouseTrackListener#mouseEnter(org.eclipse.swt.events.MouseEvent)
*/
+ @Override
public void mouseEnter(MouseEvent event) {
}
/*
* @see org.eclipse.swt.events.MouseTrackListener#mouseExit(org.eclipse.swt.events.MouseEvent)
*/
+ @Override
public void mouseExit(MouseEvent event) {
}
/*
* @see org.eclipse.swt.events.MouseTrackListener#mouseHover(org.eclipse.swt.events.MouseEvent)
*/
+ @Override
public void mouseHover(MouseEvent event) {
}
@@ -283,6 +300,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
switch (direction) {
case SWT.UP:
timer = new Runnable() {
+ @Override
public void run() {
if (fAutoScrollDirection == SWT.UP) {
int top = getInclusiveTopIndex();
@@ -297,6 +315,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
break;
case SWT.DOWN:
timer = new Runnable() {
+ @Override
public void run() {
if (fAutoScrollDirection == SWT.DOWN) {
int top = getInclusiveTopIndex();
@@ -372,6 +391,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
* Redraw runnable
*/
private Runnable fRunnable = new Runnable() {
+ @Override
public void run() {
synchronized (fRunnableLock) {
fIsRunnablePosted = false;
@@ -402,6 +422,18 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
fPaintStyleBackground = paintStyle;
}
+ @Override
+ public void columnCreated() {
+ super.columnCreated();
+ getPreferenceStore().addPropertyChangeListener(this);
+ }
+
+ @Override
+ public void columnRemoved() {
+ getPreferenceStore().removePropertyChangeListener(this);
+ super.columnRemoved();
+ }
+
/**
* Sets the foreground color of this column.
*
@@ -446,9 +478,14 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
return fBackground;
}
+ public IPreferenceStore getPreferenceStore() {
+ return DsfUIPlugin.getDefault().getPreferenceStore();
+ }
+
/*
* @see IVerticalRulerColumn#getControl()
*/
+ @Override
public Control getControl() {
return fCanvas;
}
@@ -456,6 +493,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see IVerticalRuleColumnr#getWidth
*/
+ @Override
public int getWidth() {
return fIndentation[0];
}
@@ -556,6 +594,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see IVerticalRulerColumn#createControl(CompositeRuler, Composite)
*/
+ @Override
public Control createControl(CompositeRuler parentRuler, Composite parentControl) {
fParentRuler= parentRuler;
@@ -567,6 +606,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
fCanvas.setForeground(fForeground);
fCanvas.addPaintListener(new PaintListener() {
+ @Override
public void paintControl(PaintEvent event) {
if (fCachedTextViewer != null)
doubleBufferPaint(event.gc);
@@ -574,6 +614,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
});
fCanvas.addDisposeListener(new DisposeListener() {
+ @Override
public void widgetDisposed(DisposeEvent e) {
handleDispose();
fCachedTextViewer= null;
@@ -620,6 +661,14 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
}
}
+ protected Color getColor(String key) {
+ return EditorsUI.getSharedTextColors().getColor(PreferenceConverter.getColor(getPreferenceStore(), key));
+ }
+
+ protected Color getColor(RGB color) {
+ return EditorsUI.getSharedTextColors().getColor(color);
+ }
+
/**
* Double buffer drawing.
*
@@ -769,7 +818,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
* the line number for which the string is generated
* @return the string to be printed on the ruler column for line
*/
- String createDisplayString(int line) {
+ protected String createDisplayString(int line) {
return Integer.toString(line + 1);
}
@@ -941,6 +990,7 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see IVerticalRulerColumn#redraw()
*/
+ @Override
public void redraw() {
if (fRelayoutRequired) {
@@ -958,12 +1008,14 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
/*
* @see IVerticalRulerColumn#setModel(IAnnotationModel)
*/
+ @Override
public void setModel(IAnnotationModel model) {
}
/*
* @see IVerticalRulerColumn#setFont(Font)
*/
+ @Override
public void setFont(Font font) {
fFont= font;
if (fCanvas != null && !fCanvas.isDisposed()) {
@@ -982,4 +1034,8 @@ public class DisassemblyRulerColumn implements IVerticalRulerColumn {
return fParentRuler;
}
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ }
+
}
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyViewer.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/provisional/DisassemblyViewer.java
similarity index 85%
rename from dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyViewer.java
rename to dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/provisional/DisassemblyViewer.java
index 7d4a4e43006..b790a0339ce 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyViewer.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/provisional/DisassemblyViewer.java
@@ -8,7 +8,7 @@
* Contributors:
* Wind River Systems - initial API and implementation
*******************************************************************************/
-package org.eclipse.cdt.dsf.debug.internal.ui.disassembly;
+package org.eclipse.cdt.dsf.debug.internal.ui.disassembly.provisional;
import java.util.Iterator;
@@ -24,15 +24,12 @@ import org.eclipse.jface.text.source.IOverviewRuler;
import org.eclipse.jface.text.source.IVerticalRuler;
import org.eclipse.jface.text.source.IVerticalRulerColumn;
import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.custom.VerifyKeyListener;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
@@ -43,15 +40,11 @@ import org.eclipse.swt.widgets.Composite;
public class DisassemblyViewer extends SourceViewer {
class ResizeListener implements ControlListener {
- /*
- * @see ControlListener#controlResized(ControlEvent)
- */
+ @Override
public void controlResized(ControlEvent e) {
updateViewportListeners(RESIZE);
}
- /*
- * @see ControlListener#controlMoved(ControlEvent)
- */
+ @Override
public void controlMoved(ControlEvent e) {
}
}
@@ -59,11 +52,6 @@ public class DisassemblyViewer extends SourceViewer {
private boolean fUserTriggeredScrolling;
private int fCachedLastTopPixel;
- // extra resize listener to workaround bug 171018
- // https://bugs.eclipse.org/bugs/show_bug.cgi?id=171018
- private ResizeListener fResizeListener;
- private DisassemblyPart fPart;
-
/**
* Create a new DisassemblyViewer.
* @param parent
@@ -72,9 +60,8 @@ public class DisassemblyViewer extends SourceViewer {
* @param showsAnnotationOverview
* @param styles
*/
- public DisassemblyViewer(DisassemblyPart part, Composite parent, IVerticalRuler ruler, IOverviewRuler overviewRuler, boolean showsAnnotationOverview, int styles) {
+ public DisassemblyViewer(Composite parent, IVerticalRuler ruler, IOverviewRuler overviewRuler, boolean showsAnnotationOverview, int styles) {
super(parent, ruler, overviewRuler, showsAnnotationOverview, styles);
- fPart = part;
// always readonly
setEditable(false);
}
@@ -86,30 +73,9 @@ public class DisassemblyViewer extends SourceViewer {
protected void createControl(Composite parent, int styles) {
super.createControl(parent, styles);
StyledText textWidget = getTextWidget();
+ // extra resize listener to workaround bug 171018
// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=171018
- textWidget.addControlListener(fResizeListener= new ResizeListener());
- textWidget.addVerifyKeyListener(new VerifyKeyListener() {
- public void verifyKey(VerifyEvent event) {
- switch (event.keyCode) {
- case SWT.PAGE_UP:
- case SWT.PAGE_DOWN:
- case SWT.ARROW_UP:
- case SWT.ARROW_DOWN:
- event.doit = !fPart.keyScroll(event.keyCode);
- }
- }
- });
- }
-
- /*
- * @see org.eclipse.jface.text.source.SourceViewer#handleDispose()
- */
- @Override
- protected void handleDispose() {
- if (fResizeListener != null) {
- getTextWidget().removeControlListener(fResizeListener);
- }
- super.handleDispose();
+ textWidget.addControlListener(new ResizeListener());
}
/*
@@ -150,7 +116,7 @@ public class DisassemblyViewer extends SourceViewer {
* @throws BadLocationException
*/
public String getSelectedText() throws BadLocationException {
- StringBuffer text = new StringBuffer(200);
+ StringBuilder text = new StringBuilder(200);
String lineSeparator = System.getProperty("line.separator"); //$NON-NLS-1$
DisassemblyDocument doc = (DisassemblyDocument)getDocument();
Point selection = getSelectedRange();
@@ -204,7 +170,7 @@ public class DisassemblyViewer extends SourceViewer {
* @return the prefix string with trailing blank or the empty string
*/
public String getLinePrefix(int line) {
- StringBuffer prefix = new StringBuffer(10);
+ StringBuilder prefix = new StringBuilder(10);
IVerticalRuler ruler = getVerticalRuler();
if (ruler instanceof CompositeRuler) {
for (Iterator> iter = ((CompositeRuler)ruler).getDecoratorIterator(); iter.hasNext();) {
@@ -280,10 +246,11 @@ public class DisassemblyViewer extends SourceViewer {
return -1;
}
- int getLastTopPixel() {
+ public int getLastTopPixel() {
return fCachedLastTopPixel;
}
- boolean isUserTriggeredScrolling() {
+
+ public boolean isUserTriggeredScrolling() {
return fUserTriggeredScrolling;
}
From 9e7125fb908b7b9d2e0079e3bf871c0ce7daff34 Mon Sep 17 00:00:00 2001
From: Markus Schorn
Date: Wed, 21 Dec 2011 15:11:51 +0100
Subject: [PATCH 03/60] Bug 364920: NPE using call hierarchy
---
.../internal/ui/callhierarchy/CallHierarchyUI.java | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CallHierarchyUI.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CallHierarchyUI.java
index e0093cf82ac..a4789d369b5 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CallHierarchyUI.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CallHierarchyUI.java
@@ -12,7 +12,6 @@ package org.eclipse.cdt.internal.ui.callhierarchy;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Iterator;
import java.util.List;
import org.eclipse.core.runtime.CoreException;
@@ -38,6 +37,7 @@ import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IEnumerator;
import org.eclipse.cdt.core.dom.ast.IFunction;
+import org.eclipse.cdt.core.dom.ast.IScope;
import org.eclipse.cdt.core.dom.ast.IVariable;
import org.eclipse.cdt.core.dom.ast.c.ICExternalBinding;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionCallExpression;
@@ -325,7 +325,8 @@ public class CallHierarchyUI {
if (binding instanceof IVariable) {
try {
- if (binding.getScope().getKind() == EScopeKind.eLocal)
+ final IScope scope = binding.getScope();
+ if (scope != null && scope.getKind() == EScopeKind.eLocal)
return false;
} catch (DOMException e) {
}
@@ -382,8 +383,7 @@ public class CallHierarchyUI {
*/
static void clearHistory() {
setHistoryEntries(new ICElement[0]);
- for (Iterator iter= fLRUCallHierarchyViews.iterator(); iter.hasNext();) {
- CHViewPart part= iter.next();
+ for (CHViewPart part : fLRUCallHierarchyViews) {
part.setInput(null);
}
}
@@ -396,8 +396,7 @@ public class CallHierarchyUI {
*/
private static CHViewPart findLRUCallHierarchyViewPart(IWorkbenchPage page) {
boolean viewFoundInPage= false;
- for (Iterator iter= fLRUCallHierarchyViews.iterator(); iter.hasNext();) {
- CHViewPart view= iter.next();
+ for (CHViewPart view : fLRUCallHierarchyViews) {
if (page.equals(view.getSite().getPage())) {
if (!view.isPinned()) {
return view;
@@ -408,8 +407,7 @@ public class CallHierarchyUI {
if (!viewFoundInPage) {
// find unresolved views
IViewReference[] viewReferences= page.getViewReferences();
- for (int i= 0; i < viewReferences.length; i++) {
- IViewReference curr= viewReferences[i];
+ for (IViewReference curr : viewReferences) {
if (CUIPlugin.ID_CALL_HIERARCHY.equals(curr.getId()) && page.equals(curr.getPage())) {
CHViewPart view= (CHViewPart)curr.getView(true);
if (view != null && !view.isPinned()) {
From 35a66ea7636bcf66e8c64c304ad0733e6b565172 Mon Sep 17 00:00:00 2001
From: Markus Schorn
Date: Wed, 21 Dec 2011 18:03:31 +0100
Subject: [PATCH 04/60] Bug 332883: Auto type for range based for loop.
---
.../core/parser/tests/ast2/AST2CPPTests.java | 27 +++++++++++++++++++
.../dom/parser/cpp/semantics/CPPVisitor.java | 2 +-
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
index a0e7f90ae94..ed79ab1c023 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
@@ -9367,6 +9367,33 @@ public class AST2CPPTests extends AST2BaseTest {
parseAndCheckBindings();
}
+ // namespace std {
+ // template struct pair {
+ // T1 first;
+ // T2 second;
+ // };
+ //
+ // template T begin(const pair& p) {
+ // return p.first;
+ // }
+ // template U end(const pair& p) {
+ // return p.second;
+ // }
+ // }
+ // struct S {
+ // int x;
+ // };
+ //
+ // int main() {
+ // S arr[5];
+ // std::pair p{arr, arr + 5};
+ // for (const auto& r : p)
+ // r.x;
+ // }
+ public void testAutoTypeInRangeBasedFor_332883c() throws Exception {
+ parseAndCheckBindings();
+ }
+
// struct S {
// void f();
// };
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java
index d5e531c20ed..bb05ecc1157 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java
@@ -1927,7 +1927,7 @@ public class CPPVisitor extends ASTQueries {
beginExpr= expr.copy();
} else if (type instanceof ICPPClassType) {
ICPPClassType ct= (ICPPClassType) type;
- if (ct.getCompositeScope().find(BEGIN_STR).length > 0) {
+ if (CPPSemantics.findBindings(ct.getCompositeScope(), BEGIN_STR, true).length > 0) {
final CPPASTName name = new CPPASTName(BEGIN);
name.setOffset(((ASTNode) forInit).getOffset());
beginExpr= new CPPASTFunctionCallExpression(
From df445a2f064b432c79bfc4097564b82539cda759 Mon Sep 17 00:00:00 2001
From: Sergey Prigogin
Date: Tue, 20 Dec 2011 16:08:39 -0800
Subject: [PATCH 05/60] @Override annotations.
---
.../org/eclipse/cdt/core/dom/ast/IASTBinaryExpression.java | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTBinaryExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTBinaryExpression.java
index 7bf1a5595e1..969f7275f22 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTBinaryExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTBinaryExpression.java
@@ -6,8 +6,8 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Doug Schaefer (IBM) - Initial API and implementation
- * Markus Schorn (Wind River Systems)
+ * Doug Schaefer (IBM) - Initial API and implementation
+ * Markus Schorn (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.core.dom.ast;
@@ -19,7 +19,6 @@ package org.eclipse.cdt.core.dom.ast;
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface IASTBinaryExpression extends IASTExpression {
-
/**
* Node property that describes the relationship between an
* IASTBinaryExpression and an IASTExpression
@@ -271,10 +270,12 @@ public interface IASTBinaryExpression extends IASTExpression {
/**
* @since 5.1
*/
+ @Override
public IASTBinaryExpression copy();
/**
* @since 5.3
*/
+ @Override
public IASTBinaryExpression copy(CopyStyle style);
}
From 0dcb27b1eb2ae0cb929c97cfe224efb1f7c34d8c Mon Sep 17 00:00:00 2001
From: Sergey Prigogin
Date: Wed, 21 Dec 2011 10:14:27 -0800
Subject: [PATCH 06/60] Bug 362442. Enabled test that is to failing anymore
thanks to Markus' fix.
---
.../internal/index/tests/IndexMultiVariantHeaderTest.java | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexMultiVariantHeaderTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexMultiVariantHeaderTest.java
index c798cdebc11..31511af896c 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexMultiVariantHeaderTest.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexMultiVariantHeaderTest.java
@@ -131,10 +131,7 @@ public class IndexMultiVariantHeaderTest extends IndexBindingResolutionTestBase
// y = 0;
// z = 0;
// }
- public void _testSignificantMacroDetection() throws Exception {
- // TODO(sprigogin): For this test to work REPORT_SIGNIFICANT_MACROS flag
- // should be passed to CPreprocessor.expandMacro method. See
- // http://bugs.eclipse.org/bugs/show_bug.cgi?id=197989#c92 for details.
+ public void testSignificantMacroDetection() throws Exception {
getBindingFromASTName("x = 0", 1, ICPPVariable.class);
getBindingFromASTName("y = 0", 1, ICPPVariable.class);
getBindingFromASTName("z = 0", 1, ICPPVariable.class);
From fbffc783ba38090ed42baf0ce75b9172c67394d3 Mon Sep 17 00:00:00 2001
From: Sergey Prigogin
Date: Wed, 21 Dec 2011 10:33:15 -0800
Subject: [PATCH 07/60] Bug 367117 - [formatter] cdt hangs when formatting c++
code.
---
.../formatter/CodeFormatterVisitor.java | 96 ++++++++++++-------
.../internal/formatter/align/Alignment.java | 2 +-
2 files changed, 64 insertions(+), 34 deletions(-)
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java
index fa373722958..cf6502358f7 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java
@@ -2623,61 +2623,91 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor,
return formatOverloadedLeftShiftChain(node);
}
+ // To improve speed of the algorithm we flatten homogeneous nested binary expressions
+ // to reduce overall depth of the expression tree.
+ List operands = getOperandsOfMultiExpression(node);
+
Runnable tailFormatter = endsWithMacroExpansion(node) ? null : scribe.takeTailFormatter();
- Alignment expressionAlignment= scribe.createAlignment(
+ Alignment alignment= scribe.createAlignment(
Alignment.BINARY_EXPRESSION,
preferences.alignment_for_binary_expression,
Alignment.R_OUTERMOST,
- 2,
+ operands.size(),
scribe.scanner.getCurrentPosition());
- scribe.enterAlignment(expressionAlignment);
+ scribe.enterAlignment(alignment);
boolean ok = false;
do {
try {
- final IASTExpression op1= node.getOperand1();
- // Left operand
- op1.accept(this);
- scribe.printTrailingComment();
+ for (int i = 0; i < operands.size(); i++) {
+ final IASTExpression operand = operands.get(i);
+ // In case of macros we may have already passed the operator position.
+ if (i > 0 && scribe.scanner.getCurrentPosition() < operand.getFileLocation().getNodeOffset()) {
+ scribe.alignFragment(alignment, i);
- // In case of macros we may have already passed the operator position.
- if (scribe.scanner.getCurrentPosition() < node.getOperand2().getFileLocation().getNodeOffset()) {
- scribe.alignFragment(expressionAlignment, 1);
+ // Operator
+ final int nextToken= peekNextToken();
+ // In case of C++ alternative operators, like 'and', 'or', etc. a space
+ boolean forceSpace= Character.isJavaIdentifierStart(peekNextChar());
- // Operator
- final int nextToken= peekNextToken();
- // In case of C++ alternative operators, like 'and', 'not', etc. a space
- boolean forceSpace= Character.isJavaIdentifierStart(peekNextChar());
+ switch (node.getOperator()) {
+ case IASTBinaryExpression.op_pmdot:
+ case IASTBinaryExpression.op_pmarrow:
+ scribe.printNextToken(nextToken, false);
+ break;
- switch (node.getOperator()) {
- case IASTBinaryExpression.op_pmdot:
- case IASTBinaryExpression.op_pmarrow:
- scribe.printNextToken(nextToken, false);
- break;
- default:
- scribe.printNextToken(nextToken, forceSpace || preferences.insert_space_before_binary_operator);
- if (forceSpace || preferences.insert_space_after_binary_operator) {
- scribe.space();
- }
- }
- }
+ default:
+ scribe.printNextToken(nextToken, forceSpace || preferences.insert_space_before_binary_operator);
+ if (forceSpace || preferences.insert_space_after_binary_operator) {
+ scribe.space();
+ }
+ }
+ scribe.printTrailingComment();
+ }
+ if (i == alignment.fragmentCount - 1) {
+ scribe.setTailFormatter(tailFormatter);
+ }
+ operand.accept(this);
+ scribe.restartAtOffset(getNodeEndLocation(operand));
+ scribe.printTrailingComment();
+ }
- // Right operand
- final IASTExpression op2= node.getOperand2();
- op2.accept(this);
-
- if (tailFormatter != null)
- tailFormatter.run();
+ scribe.runTailFormatter();
ok = true;
} catch (AlignmentException e) {
scribe.redoAlignment(e);
}
} while (!ok);
- scribe.exitAlignment(expressionAlignment, true);
+ scribe.exitAlignment(alignment, true);
return PROCESS_SKIP;
}
+ /**
+ * Traverses a chain of nested homogeneous left-to-right-associative binary expressions and
+ * returns a list of their operands in left-to-right order. For example, for the expression
+ * a + b * c + d, it will return a list containing expressions: a, b * c, and d.
+ *
+ * @param binaryExpression the top-level binary expression
+ * @return a list of expression operands from left to right
+ */
+ private List getOperandsOfMultiExpression(IASTBinaryExpression binaryExpression) {
+ int operator = binaryExpression.getOperator();
+ List operands = new ArrayList(2);
+ IASTExpression node;
+ do {
+ operands.add(binaryExpression.getOperand2());
+ node = binaryExpression.getOperand1();
+ if (!(node instanceof IASTBinaryExpression)) {
+ break;
+ }
+ binaryExpression = (IASTBinaryExpression) node;
+ } while (binaryExpression.getOperator() == operator);
+ operands.add(node);
+ Collections.reverse(operands);
+ return operands;
+ }
+
private int formatAssignment(IASTBinaryExpression node) {
Runnable tailFormatter = scribe.takeTailFormatter();
final IASTExpression op1= node.getOperand1();
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/align/Alignment.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/align/Alignment.java
index cee153fe123..16cfa690e16 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/align/Alignment.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/align/Alignment.java
@@ -311,7 +311,7 @@ public class Alignment {
this.fragmentIndentations[i] = this.breakIndentationLevel;
return wasSplit = true;
}
- } while (--i >= 0);
+ } while ((this.fragmentBreaks[i] != BREAK || (this.mode & M_INDENT_ON_COLUMN) != 0) && --i >= 0);
break;
/* # aligned fragment
From c722cc65cdda076202881a0a62a43e2102fc99b9 Mon Sep 17 00:00:00 2001
From: Anton Leherbauer
Date: Thu, 22 Dec 2011 09:29:05 +0100
Subject: [PATCH 08/60] Bug 365051 - Unreadable black source hover
---
.../ui/preferences/CEditorPreferencePage.java | 9 +-
...stractCompareViewerInformationControl.java | 25 +++---
...bstractSourceViewerInformationControl.java | 25 +++---
.../CMacroExpansionExplorationControl.java | 3 +-
.../hover/SourceViewerInformationControl.java | 84 ++++++++++++++++---
5 files changed, 106 insertions(+), 40 deletions(-)
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
index 104a1c69dfa..cab1a4f022d 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2010 IBM Corporation and others.
+ * Copyright (c) 2005, 2011 IBM Corporation 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
@@ -29,6 +29,7 @@ import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Link;
@@ -45,6 +46,7 @@ import org.eclipse.cdt.utils.ui.controls.ControlFactory;
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
import org.eclipse.cdt.internal.ui.editor.CEditor;
import org.eclipse.cdt.internal.ui.preferences.OverlayPreferenceStore.OverlayKey;
+import org.eclipse.cdt.internal.ui.text.c.hover.SourceViewerInformationControl;
import org.eclipse.cdt.internal.ui.text.contentassist.ContentAssistPreference;
import org.eclipse.cdt.internal.ui.text.doctools.DocCommentOwnerManager;
@@ -329,7 +331,10 @@ public class CEditorPreferencePage extends AbstractPreferencePage {
*/
private void initializeDefaultColors() {
if (getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR_SYSTEM_DEFAULT)) {
- RGB rgb= fAppearanceColorList.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND).getRGB();
+ Display display= fAppearanceColorList.getDisplay();
+ RGB rgb= SourceViewerInformationControl.getVisibleBackgroundColor(display);
+ if (rgb == null)
+ rgb= display.getSystemColor(SWT.COLOR_INFO_BACKGROUND).getRGB();
PreferenceConverter.setValue(getPreferenceStore(), PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR, rgb);
}
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/AbstractCompareViewerInformationControl.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/AbstractCompareViewerInformationControl.java
index 8f6a5510801..9f7b0c141f8 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/AbstractCompareViewerInformationControl.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/AbstractCompareViewerInformationControl.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2009 Wind River Systems, Inc. and others.
+ * Copyright (c) 2007, 2011 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
@@ -44,6 +44,8 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.PreferenceConstants;
+import org.eclipse.cdt.internal.ui.text.c.hover.SourceViewerInformationControl;
+
/**
* Abstract class for "quick" compare views in light-weight controls.
*
@@ -75,7 +77,7 @@ public abstract class AbstractCompareViewerInformationControl extends org.eclips
private ICompareInput fCompareInput;
private Color fBackgroundColor;
- private boolean fIsSystemBackgroundColor;
+ private boolean fIsSystemBackgroundColor = true;
private Label fTitleLabel;
@@ -106,7 +108,13 @@ public abstract class AbstractCompareViewerInformationControl extends org.eclips
}
private void initializeColors() {
- RGB bgRGB= getHoverBackgroundColorRGB();
+ IPreferenceStore store= CUIPlugin.getDefault().getPreferenceStore();
+ RGB bgRGB;
+ if (store.getBoolean(PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR_SYSTEM_DEFAULT)) {
+ bgRGB= SourceViewerInformationControl.getVisibleBackgroundColor(getShell().getDisplay());
+ } else {
+ bgRGB= PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR);
+ }
if (bgRGB != null) {
fBackgroundColor= new Color(getShell().getDisplay(), bgRGB);
fIsSystemBackgroundColor= false;
@@ -116,13 +124,6 @@ public abstract class AbstractCompareViewerInformationControl extends org.eclips
}
}
- private RGB getHoverBackgroundColorRGB() {
- IPreferenceStore store= CUIPlugin.getDefault().getPreferenceStore();
- return store.getBoolean(PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR_SYSTEM_DEFAULT)
- ? null
- : PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR);
- }
-
@Override
protected void createContent(Composite parent) {
initializeColors();
@@ -207,6 +208,10 @@ public abstract class AbstractCompareViewerInformationControl extends org.eclips
return false;
}
+ protected Color getBackgroundColor() {
+ return fBackgroundColor;
+ }
+
@Override
public void setInformation(String content) {
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/AbstractSourceViewerInformationControl.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/AbstractSourceViewerInformationControl.java
index 5a379c0bddf..6004d9889e1 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/AbstractSourceViewerInformationControl.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/AbstractSourceViewerInformationControl.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2009 Wind River Systems, Inc. and others.
+ * Copyright (c) 2007, 2011 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
@@ -41,6 +41,7 @@ import org.eclipse.cdt.ui.PreferenceConstants;
import org.eclipse.cdt.ui.text.ICPartitions;
import org.eclipse.cdt.internal.ui.editor.CSourceViewer;
+import org.eclipse.cdt.internal.ui.text.c.hover.SourceViewerInformationControl;
/**
* Abstract class for "quick" source views in light-weight controls.
@@ -50,15 +51,10 @@ import org.eclipse.cdt.internal.ui.editor.CSourceViewer;
public abstract class AbstractSourceViewerInformationControl extends org.eclipse.jface.text.AbstractInformationControl implements IInformationControlExtension2, DisposeListener {
private ISourceViewer fSourceViewer;
-
private Color fBackgroundColor;
-
- private boolean fIsSystemBackgroundColor;
-
+ private boolean fIsSystemBackgroundColor = true;
private Font fTextFont;
-
private StyledText fText;
-
private Label fTitleLabel;
/**
@@ -95,7 +91,13 @@ public abstract class AbstractSourceViewerInformationControl extends org.eclipse
}
private void initializeColors() {
- RGB bgRGB= getHoverBackgroundColorRGB();
+ IPreferenceStore store= CUIPlugin.getDefault().getPreferenceStore();
+ RGB bgRGB;
+ if (store.getBoolean(PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR_SYSTEM_DEFAULT)) {
+ bgRGB= SourceViewerInformationControl.getVisibleBackgroundColor(getShell().getDisplay());
+ } else {
+ bgRGB= PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR);
+ }
if (bgRGB != null) {
fBackgroundColor= new Color(getShell().getDisplay(), bgRGB);
fIsSystemBackgroundColor= false;
@@ -105,13 +107,6 @@ public abstract class AbstractSourceViewerInformationControl extends org.eclipse
}
}
- private RGB getHoverBackgroundColorRGB() {
- IPreferenceStore store= CUIPlugin.getDefault().getPreferenceStore();
- return store.getBoolean(PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR_SYSTEM_DEFAULT)
- ? null
- : PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR);
- }
-
@Override
public void createContent(Composite parent) {
Composite content= new Composite(parent, SWT.NONE);
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CMacroExpansionExplorationControl.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CMacroExpansionExplorationControl.java
index 608cd2e30b4..0eb4ff3ebe7 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CMacroExpansionExplorationControl.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CMacroExpansionExplorationControl.java
@@ -262,8 +262,7 @@ public class CMacroExpansionExplorationControl extends AbstractCompareViewerInfo
GridData gd= new GridData(GridData.BEGINNING | GridData.FILL_BOTH);
gd.heightHint= fMacroText.getLineHeight() * 2;
fMacroText.setLayoutData(gd);
- fMacroText.setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
-
+
final Document doc= new Document();
CUIPlugin.getDefault().getTextTools().setupCDocument(doc);
sourceViewer.setDocument(doc);
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/SourceViewerInformationControl.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/SourceViewerInformationControl.java
index 23d155cd8fd..b1ef9f28f54 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/SourceViewerInformationControl.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/SourceViewerInformationControl.java
@@ -1,13 +1,13 @@
/*******************************************************************************
- * Copyright (c) 2002, 2008 QNX Software Systems and others.
+ * Copyright (c) 2002, 2011 QNX Software Systems 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
*
* Contributors:
- * QNX Software Systems - Initial API and implementation
- * Anton Leherbauer (Wind River Systems)
+ * QNX Software Systems - Initial API and implementation
+ * Anton Leherbauer (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.internal.ui.text.c.hover;
@@ -46,9 +46,12 @@ import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.texteditor.AbstractTextEditor;
+import org.eclipse.cdt.ui.CDTUITools;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.PreferenceConstants;
+import org.eclipse.cdt.ui.text.ICColorConstants;
import org.eclipse.cdt.ui.text.ICPartitions;
import org.eclipse.cdt.internal.ui.editor.CSourceViewer;
@@ -88,6 +91,10 @@ public class SourceViewerInformationControl implements IInformationControl, IInf
* @since 3.0
*/
private Font fStatusTextFont;
+ /**
+ * The color of the optional status text label or null if none.
+ */
+ private Color fStatusTextForegroundColor;
/**
* The width size constraint.
* @since 4.0
@@ -198,16 +205,49 @@ public class SourceViewerInformationControl implements IInformationControl, IInf
GridData gd2= new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
fStatusField.setLayoutData(gd2);
- // Regarding the color see bug 41128
- fStatusField.setForeground(display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+ RGB defaultColor= CDTUITools.getColorManager().getColor(ICColorConstants.C_DEFAULT).getRGB();
+ fStatusTextForegroundColor= new Color(fStatusField.getDisplay(), blend(fBackgroundColor.getRGB(), defaultColor, 0.56f));
+ fStatusField.setForeground(fStatusTextForegroundColor);
fStatusField.setBackground(fBackgroundColor);
}
addDisposeListener(this);
}
+ /**
+ * Returns an RGB that lies between the given foreground and background
+ * colors using the given mixing factor. A factor of 1.0 will produce a
+ * color equal to fg, while a factor of 0.0 will produce one
+ * equal to bg.
+ * @param bg the background color
+ * @param fg the foreground color
+ * @param factor the mixing factor, must be in [0, 1]
+ *
+ * @return the interpolated color
+ */
+ @SuppressWarnings("null")
+ private static RGB blend(RGB bg, RGB fg, float factor) {
+ // copy of org.eclipse.jface.internal.text.revisions.Colors#blend(..)
+ Assert.isLegal(bg != null);
+ Assert.isLegal(fg != null);
+ Assert.isLegal(factor >= 0f && factor <= 1f);
+
+ float complement= 1f - factor;
+ return new RGB(
+ (int) (complement * bg.red + factor * fg.red),
+ (int) (complement * bg.green + factor * fg.green),
+ (int) (complement * bg.blue + factor * fg.blue)
+ );
+ }
+
private void initializeColors() {
- RGB bgRGB= getHoverBackgroundColorRGB();
+ IPreferenceStore store= CUIPlugin.getDefault().getPreferenceStore();
+ RGB bgRGB;
+ if (store.getBoolean(PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR_SYSTEM_DEFAULT)) {
+ bgRGB= getVisibleBackgroundColor(fShell.getDisplay());
+ } else {
+ bgRGB= PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR);
+ }
if (bgRGB != null) {
fBackgroundColor= new Color(fShell.getDisplay(), bgRGB);
fIsSystemBackgroundColor= false;
@@ -217,11 +257,29 @@ public class SourceViewerInformationControl implements IInformationControl, IInf
}
}
- private RGB getHoverBackgroundColorRGB() {
- IPreferenceStore store= CUIPlugin.getDefault().getPreferenceStore();
- return store.getBoolean(PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR_SYSTEM_DEFAULT)
- ? null
- : PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_SOURCE_HOVER_BACKGROUND_COLOR);
+ /**
+ * Returns null if {@link SWT#COLOR_INFO_BACKGROUND} is visibly distinct from the
+ * default source text color. Otherwise, returns the editor background color.
+ *
+ * @param display the display
+ * @return an RGB or null
+ */
+ public static RGB getVisibleBackgroundColor(Display display) {
+ float[] infoBgHSB= display.getSystemColor(SWT.COLOR_INFO_BACKGROUND).getRGB().getHSB();
+
+ Color defaultColor= CDTUITools.getColorManager().getColor(ICColorConstants.C_DEFAULT);
+ RGB defaultRGB= defaultColor != null ? defaultColor.getRGB() : new RGB(255, 255, 255);
+ float[] defaultHSB= defaultRGB.getHSB();
+
+ if (Math.abs(infoBgHSB[2] - defaultHSB[2]) < 0.5f) {
+ // workaround for dark tooltip background color, see https://bugs.eclipse.org/365051
+ IPreferenceStore preferenceStore= CUIPlugin.getDefault().getCombinedPreferenceStore();
+ boolean useDefault= preferenceStore.getBoolean(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT);
+ if (useDefault)
+ return display.getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB();
+ return PreferenceConverter.getColor(preferenceStore, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND);
+ }
+ return null;
}
/**
@@ -274,6 +332,10 @@ public class SourceViewerInformationControl implements IInformationControl, IInf
if (fStatusTextFont != null && !fStatusTextFont.isDisposed())
fStatusTextFont.dispose();
+ if (fStatusTextForegroundColor != null && !fStatusTextForegroundColor.isDisposed())
+ fStatusTextForegroundColor.dispose();
+
+ fStatusTextForegroundColor= null;
fStatusTextFont= null;
fTextFont= null;
fShell= null;
From cfb47f9a65f4426c28fd1515930d65d8c564e06a Mon Sep 17 00:00:00 2001
From: Markus Schorn
Date: Thu, 22 Dec 2011 11:24:31 +0100
Subject: [PATCH 09/60] Bug 365981: Undetected syntax failure instantiating
function template
---
.../cdt/core/parser/tests/ast2/AST2TemplateTests.java | 9 +++++++++
.../core/dom/parser/cpp/semantics/CPPTemplates.java | 2 ++
2 files changed, 11 insertions(+)
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java
index 141ba5d68db..e0e7283568a 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java
@@ -5638,4 +5638,13 @@ public class AST2TemplateTests extends AST2BaseTest {
public void testTemplateAmbiguityInDeleteExpression_364225() throws Exception {
parseAndCheckBindings();
}
+
+ // template void foo(T);
+ // template void foo(T, typename T::type* = 0);
+ // int main() {
+ // foo(0);
+ // }
+ public void testSFINE_365981() throws Exception {
+ parseAndCheckBindings();
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
index bdc7c70adcf..7bd216f78b4 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
@@ -2342,6 +2342,8 @@ public class CPPTemplates {
}
}
}
+ } else if (t != owner) {
+ return new ProblemBinding(unknown.getUnknownName(), IProblemBinding.SEMANTIC_BAD_SCOPE);
}
}
From adc46fe2211a296042f112adf97bb102b62e15f7 Mon Sep 17 00:00:00 2001
From: Anton Leherbauer
Date: Thu, 22 Dec 2011 16:39:38 +0100
Subject: [PATCH 10/60] Bug 367403 - [preferences] C/C++ editor does not
respect high contrast settings
---
core/org.eclipse.cdt.ui/plugin.xml | 420 +++++++++++++++++-
.../cdt/internal/ui/ICThemeConstants.java | 92 +++-
.../ui/editor/SemanticHighlighting.java | 38 +-
.../ui/editor/SemanticHighlightings.java | 312 ++++++-------
.../CEditorColoringConfigurationBlock.java | 33 +-
.../src/org/eclipse/cdt/ui/CUIPlugin.java | 208 +++++----
.../cdt/ui/CUIPreferenceInitializer.java | 174 +++++++-
.../eclipse/cdt/ui/PreferenceConstants.java | 122 ++---
.../text/doctools/doxygen/DoxygenHelper.java | 56 ++-
.../DoxygenMultilineConfiguration.java | 9 +-
.../doxygen/DoxygenSingleConfiguration.java | 15 +-
11 files changed, 1100 insertions(+), 379 deletions(-)
diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml
index 9a712d3953f..1a725d0292a 100644
--- a/core/org.eclipse.cdt.ui/plugin.xml
+++ b/core/org.eclipse.cdt.ui/plugin.xml
@@ -577,6 +577,258 @@
label="%Dummy.label"
value="240, 216, 168">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2946,10 +3362,6 @@
point="org.eclipse.core.runtime.preferences">
-
-
- true iff the semantic highlighting consumes the semantic token
*/
public abstract boolean consumes(SemanticToken token);
+
+ private String getThemeColorKey() {
+ return CUIPlugin.PLUGIN_ID + "." + getPreferenceKey() + "Highlighting"; //$NON-NLS-1$//$NON-NLS-2$
+ }
+
+ /**
+ * Returns the RGB for the given key in the given color registry.
+ *
+ * @param key the key for the constant in the registry
+ * @param defaultRGB the default RGB if no entry is found
+ * @return RGB the RGB
+ * @since 5.4
+ */
+ private static RGB findRGB(String key, RGB defaultRGB) {
+ if (!PlatformUI.isWorkbenchRunning())
+ return defaultRGB;
+
+ ColorRegistry registry= PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getColorRegistry();
+ RGB rgb= registry.getRGB(key);
+ if (rgb != null)
+ return rgb;
+ return defaultRGB;
+ }
+
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightings.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightings.java
index 8d872ecfa40..73f17530039 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightings.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/SemanticHighlightings.java
@@ -64,7 +64,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.OverloadableOperator;
/**
* Semantic highlightings.
* Derived from JDT.
- *
+ *
* @since 4.0
*/
public class SemanticHighlightings {
@@ -135,12 +135,12 @@ public class SemanticHighlightings {
* A named preference part that controls the highlighting of classes.
*/
public static final String CLASS="class"; //$NON-NLS-1$
-
+
/**
* A named preference part that controls the highlighting of enums.
*/
public static final String ENUM="enum"; //$NON-NLS-1$
-
+
/**
* A named preference part that controls the highlighting of macro references.
*/
@@ -180,16 +180,16 @@ public class SemanticHighlightings {
* A named preference part that controls the highlighting of external SDK.
*/
public static final String EXTERNAL_SDK="externalSDK"; //$NON-NLS-1$
-
+
/**
* A named preference part that controls the highlighting of operators that have been overloaded.
*/
public static final String OVERLOADED_OPERATOR="overloadedOperator"; //$NON-NLS-1$
-
+
/** Init debugging mode */
private static final boolean DEBUG= "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.cdt.ui/debug/SemanticHighlighting")); //$NON-NLS-1$//$NON-NLS-2$
-
+
/**
* Semantic highlightings
*/
@@ -209,10 +209,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(0, 0, 192);
}
@@ -245,7 +245,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_staticField;
+ return CEditorMessages.SemanticHighlighting_staticField;
}
/*
@@ -282,10 +282,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(0, 0, 192);
}
@@ -318,7 +318,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_field;
+ return CEditorMessages.SemanticHighlighting_field;
}
/*
@@ -355,10 +355,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
@@ -391,7 +391,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_methodDeclaration;
+ return CEditorMessages.SemanticHighlighting_methodDeclaration;
}
/*
@@ -454,10 +454,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
@@ -490,7 +490,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_staticMethodInvocation;
+ return CEditorMessages.SemanticHighlighting_staticMethodInvocation;
}
/*
@@ -530,10 +530,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
@@ -566,7 +566,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_method;
+ return CEditorMessages.SemanticHighlighting_method;
}
/*
@@ -606,10 +606,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
@@ -642,7 +642,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_functionDeclaration;
+ return CEditorMessages.SemanticHighlighting_functionDeclaration;
}
/*
@@ -658,7 +658,7 @@ public class SemanticHighlightings {
IASTName name= (IASTName)node;
if (name.isDeclaration()) {
IBinding binding= token.getBinding();
- if (binding instanceof IFunction
+ if (binding instanceof IFunction
&& !(binding instanceof ICPPMethod)) {
return true;
} else if (binding instanceof IProblemBinding) {
@@ -700,10 +700,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
@@ -736,7 +736,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_function;
+ return CEditorMessages.SemanticHighlighting_function;
}
/*
@@ -760,7 +760,7 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for local variable declarations.
*/
@@ -775,10 +775,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(128, 0, 0);
}
@@ -811,7 +811,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_localVariableDeclaration;
+ return CEditorMessages.SemanticHighlighting_localVariableDeclaration;
}
/*
@@ -835,7 +835,7 @@ public class SemanticHighlightings {
}
} catch (DOMException exc) {
CUIPlugin.log(exc);
- }
+ }
}
}
}
@@ -858,10 +858,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
@@ -894,7 +894,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_localVariable;
+ return CEditorMessages.SemanticHighlighting_localVariable;
}
/*
@@ -918,7 +918,7 @@ public class SemanticHighlightings {
}
} catch (DOMException exc) {
CUIPlugin.log(exc);
- }
+ }
}
}
}
@@ -956,10 +956,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
@@ -992,7 +992,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_globalVariable;
+ return CEditorMessages.SemanticHighlighting_globalVariable;
}
/*
@@ -1019,12 +1019,12 @@ public class SemanticHighlightings {
}
} catch (DOMException exc) {
CUIPlugin.log(exc);
- }
+ }
}
}
return false;
}
-
+
}
/**
@@ -1041,10 +1041,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
@@ -1077,7 +1077,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_parameterVariable;
+ return CEditorMessages.SemanticHighlighting_parameterVariable;
}
/*
@@ -1107,10 +1107,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(100, 70, 50);
}
@@ -1143,7 +1143,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_templateParameter;
+ return CEditorMessages.SemanticHighlighting_templateParameter;
}
/*
@@ -1161,7 +1161,7 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for classes.
*/
@@ -1176,10 +1176,10 @@ public class SemanticHighlightings {
}
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(0, 80, 50);
}
@@ -1212,7 +1212,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_classes;
+ return CEditorMessages.SemanticHighlighting_classes;
}
/*
@@ -1238,7 +1238,7 @@ public class SemanticHighlightings {
* Semantic highlighting for enums.
*/
private static final class EnumHighlighting extends SemanticHighlighting {
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getPreferenceKey()
*/
@@ -1246,15 +1246,15 @@ public class SemanticHighlightings {
public String getPreferenceKey() {
return ENUM;
}
-
+
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(100, 70, 50);
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
*/
@@ -1262,7 +1262,7 @@ public class SemanticHighlightings {
public boolean isBoldByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isItalicByDefault()
*/
@@ -1270,7 +1270,7 @@ public class SemanticHighlightings {
public boolean isItalicByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isEnabledByDefault()
*/
@@ -1278,15 +1278,15 @@ public class SemanticHighlightings {
public boolean isEnabledByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDisplayName()
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_enums;
+ return CEditorMessages.SemanticHighlighting_enums;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#consumes(org.eclipse.cdt.internal.ui.editor.SemanticToken)
*/
@@ -1302,12 +1302,12 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for macro references.
*/
private static final class MacroReferenceHighlighting extends SemanticHighlighting {
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getPreferenceKey()
*/
@@ -1315,15 +1315,15 @@ public class SemanticHighlightings {
public String getPreferenceKey() {
return MACRO_REFERENCE;
}
-
+
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
*/
@@ -1331,7 +1331,7 @@ public class SemanticHighlightings {
public boolean isBoldByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isItalicByDefault()
*/
@@ -1339,7 +1339,7 @@ public class SemanticHighlightings {
public boolean isItalicByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isEnabledByDefault()
*/
@@ -1347,15 +1347,15 @@ public class SemanticHighlightings {
public boolean isEnabledByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDisplayName()
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_macroSubstitution;
+ return CEditorMessages.SemanticHighlighting_macroSubstitution;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#consumes(org.eclipse.cdt.internal.ui.editor.SemanticToken)
*/
@@ -1371,12 +1371,12 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for macro definitions.
*/
private static final class MacroDefinitionHighlighting extends SemanticHighlighting {
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getPreferenceKey()
*/
@@ -1384,15 +1384,15 @@ public class SemanticHighlightings {
public String getPreferenceKey() {
return MACRO_DEFINITION;
}
-
+
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
*/
@@ -1400,7 +1400,7 @@ public class SemanticHighlightings {
public boolean isBoldByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isItalicByDefault()
*/
@@ -1408,7 +1408,7 @@ public class SemanticHighlightings {
public boolean isItalicByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isEnabledByDefault()
*/
@@ -1416,15 +1416,15 @@ public class SemanticHighlightings {
public boolean isEnabledByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDisplayName()
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_macroDefintion;
+ return CEditorMessages.SemanticHighlighting_macroDefintion;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#consumes(org.eclipse.cdt.internal.ui.editor.SemanticToken)
*/
@@ -1440,12 +1440,12 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for typedefs.
*/
private static final class TypedefHighlighting extends SemanticHighlighting {
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getPreferenceKey()
*/
@@ -1453,15 +1453,15 @@ public class SemanticHighlightings {
public String getPreferenceKey() {
return TYPEDEF;
}
-
+
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(0, 80, 50);
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
*/
@@ -1469,7 +1469,7 @@ public class SemanticHighlightings {
public boolean isBoldByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isItalicByDefault()
*/
@@ -1477,7 +1477,7 @@ public class SemanticHighlightings {
public boolean isItalicByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isEnabledByDefault()
*/
@@ -1485,15 +1485,15 @@ public class SemanticHighlightings {
public boolean isEnabledByDefault() {
return true;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDisplayName()
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_typeDef;
+ return CEditorMessages.SemanticHighlighting_typeDef;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#consumes(org.eclipse.cdt.internal.ui.editor.SemanticToken)
*/
@@ -1513,12 +1513,12 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for namespaces.
*/
private static final class NamespaceHighlighting extends SemanticHighlighting {
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getPreferenceKey()
*/
@@ -1526,15 +1526,15 @@ public class SemanticHighlightings {
public String getPreferenceKey() {
return NAMESPACE;
}
-
+
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
*/
@@ -1542,7 +1542,7 @@ public class SemanticHighlightings {
public boolean isBoldByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isItalicByDefault()
*/
@@ -1550,7 +1550,7 @@ public class SemanticHighlightings {
public boolean isItalicByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isEnabledByDefault()
*/
@@ -1558,15 +1558,15 @@ public class SemanticHighlightings {
public boolean isEnabledByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDisplayName()
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_namespace;
+ return CEditorMessages.SemanticHighlighting_namespace;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#consumes(org.eclipse.cdt.internal.ui.editor.SemanticToken)
*/
@@ -1579,12 +1579,12 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for labels.
*/
private static final class LabelHighlighting extends SemanticHighlighting {
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getPreferenceKey()
*/
@@ -1592,15 +1592,15 @@ public class SemanticHighlightings {
public String getPreferenceKey() {
return LABEL;
}
-
+
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return RGB_BLACK;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
*/
@@ -1608,7 +1608,7 @@ public class SemanticHighlightings {
public boolean isBoldByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isItalicByDefault()
*/
@@ -1616,7 +1616,7 @@ public class SemanticHighlightings {
public boolean isItalicByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isEnabledByDefault()
*/
@@ -1624,15 +1624,15 @@ public class SemanticHighlightings {
public boolean isEnabledByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDisplayName()
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_label;
+ return CEditorMessages.SemanticHighlighting_label;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#consumes(org.eclipse.cdt.internal.ui.editor.SemanticToken)
*/
@@ -1645,12 +1645,12 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for enumerators.
*/
private static final class EnumeratorHighlighting extends SemanticHighlighting {
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getPreferenceKey()
*/
@@ -1658,15 +1658,15 @@ public class SemanticHighlightings {
public String getPreferenceKey() {
return ENUMERATOR;
}
-
+
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(0, 0, 192);
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
*/
@@ -1674,7 +1674,7 @@ public class SemanticHighlightings {
public boolean isBoldByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isItalicByDefault()
*/
@@ -1682,7 +1682,7 @@ public class SemanticHighlightings {
public boolean isItalicByDefault() {
return true;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isEnabledByDefault()
*/
@@ -1690,15 +1690,15 @@ public class SemanticHighlightings {
public boolean isEnabledByDefault() {
return true;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDisplayName()
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_enumerator;
+ return CEditorMessages.SemanticHighlighting_enumerator;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#consumes(org.eclipse.cdt.internal.ui.editor.SemanticToken)
*/
@@ -1718,12 +1718,12 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for problems.
*/
private static final class ProblemHighlighting extends SemanticHighlighting {
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getPreferenceKey()
*/
@@ -1731,15 +1731,15 @@ public class SemanticHighlightings {
public String getPreferenceKey() {
return PROBLEM;
}
-
+
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(224, 0, 0);
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
*/
@@ -1747,7 +1747,7 @@ public class SemanticHighlightings {
public boolean isBoldByDefault() {
return true;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isStrikethroughByDefault()
*/
@@ -1763,7 +1763,7 @@ public class SemanticHighlightings {
public boolean isItalicByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isEnabledByDefault()
*/
@@ -1771,15 +1771,15 @@ public class SemanticHighlightings {
public boolean isEnabledByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDisplayName()
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_problem;
+ return CEditorMessages.SemanticHighlighting_problem;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#consumes(org.eclipse.cdt.internal.ui.editor.SemanticToken)
*/
@@ -1796,12 +1796,12 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for external SDK references.
*/
private static final class ExternalSDKHighlighting extends SemanticHighlighting {
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getPreferenceKey()
*/
@@ -1809,15 +1809,15 @@ public class SemanticHighlightings {
public String getPreferenceKey() {
return EXTERNAL_SDK;
}
-
+
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(100, 40, 128);
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextStyleBold()
*/
@@ -1825,7 +1825,7 @@ public class SemanticHighlightings {
public boolean isBoldByDefault() {
return true;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isStrikethroughByDefault()
*/
@@ -1841,7 +1841,7 @@ public class SemanticHighlightings {
public boolean isItalicByDefault() {
return false;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#isEnabledByDefault()
*/
@@ -1849,15 +1849,15 @@ public class SemanticHighlightings {
public boolean isEnabledByDefault() {
return true;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDisplayName()
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_externalSDK;
+ return CEditorMessages.SemanticHighlighting_externalSDK;
}
-
+
/*
* @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#consumes(org.eclipse.cdt.internal.ui.editor.SemanticToken)
*/
@@ -1910,7 +1910,7 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* Semantic highlighting for functions.
*/
@@ -1924,7 +1924,7 @@ public class SemanticHighlightings {
return OVERLOADED_OPERATOR;
}
-
+
@Override
public boolean requiresImplicitNames() {
return true;
@@ -1932,10 +1932,10 @@ public class SemanticHighlightings {
/*
- * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultTextColor()
+ * @see org.eclipse.cdt.internal.ui.editor.SemanticHighlighting#getDefaultDefaultTextColor()
*/
@Override
- public RGB getDefaultTextColor() {
+ public RGB getDefaultDefaultTextColor() {
return new RGB(200, 100, 0); // orange
}
@@ -1968,7 +1968,7 @@ public class SemanticHighlightings {
*/
@Override
public String getDisplayName() {
- return CEditorMessages.SemanticHighlighting_overloadedOperators;
+ return CEditorMessages.SemanticHighlighting_overloadedOperators;
}
/*
@@ -1999,7 +1999,7 @@ public class SemanticHighlightings {
return false;
}
}
-
+
/**
* A named preference that controls the given semantic highlighting's color.
*
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorColoringConfigurationBlock.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorColoringConfigurationBlock.java
index baa9ca350c1..f394643dff9 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorColoringConfigurationBlock.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorColoringConfigurationBlock.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation 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
@@ -66,7 +66,6 @@ import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.PreferenceConstants;
import org.eclipse.cdt.ui.text.ICPartitions;
import org.eclipse.cdt.ui.text.IColorManager;
-import org.eclipse.cdt.ui.text.doctools.doxygen.DoxygenHelper;
import org.eclipse.cdt.internal.ui.editor.CSourceViewer;
import org.eclipse.cdt.internal.ui.editor.SemanticHighlighting;
@@ -206,6 +205,7 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
/*
* @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
*/
+ @Override
public Color getBackground(Object element) {
return null;
}
@@ -213,6 +213,7 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
/*
* @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
*/
+ @Override
public Color getForeground(Object element) {
if (element instanceof SemanticHighlightingColorListItem) {
if (!getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SEMANTIC_HIGHLIGHTING_ENABLED)) {
@@ -231,6 +232,7 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
/*
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
*/
+ @Override
public Object[] getElements(Object inputElement) {
return new String[] {fCodeCategory, fAssemblyCategory, fCommentsCategory, fPreprocessorCategory, fDoxygenCategory};
}
@@ -238,15 +240,18 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
/*
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
+ @Override
public void dispose() {
}
/*
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
+ @Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
+ @Override
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof String) {
String entry= (String) parentElement;
@@ -264,6 +269,7 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
return new Object[0];
}
+ @Override
public Object getParent(Object element) {
if (element instanceof String)
return null;
@@ -279,6 +285,7 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
return fCommentsCategory;
}
+ @Override
public boolean hasChildren(Object element) {
return element instanceof String;
}
@@ -313,9 +320,9 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
{ PreferencesMessages.CEditorColoringConfigurationBlock_ppHeaders, PreferenceConstants.EDITOR_PP_HEADER_COLOR },
{ PreferencesMessages.CEditorColoringConfigurationBlock_asmLabels, PreferenceConstants.EDITOR_ASM_LABEL_COLOR },
{ PreferencesMessages.CEditorColoringConfigurationBlock_asmDirectives, PreferenceConstants.EDITOR_ASM_DIRECTIVE_COLOR },
- { PreferencesMessages.CEditorColoringConfigurationBlock_DoxygenTagRecognized, DoxygenHelper.DOXYGEN_TAG_RECOGNIZED },
- { PreferencesMessages.CEditorColoringConfigurationBlock_DoxygenSingleLineComment, DoxygenHelper.DOXYGEN_SINGLE_TOKEN },
- { PreferencesMessages.CEditorColoringConfigurationBlock_DoxygenMultiLineComment, DoxygenHelper.DOXYGEN_MULTI_TOKEN },
+ { PreferencesMessages.CEditorColoringConfigurationBlock_DoxygenTagRecognized, PreferenceConstants.DOXYGEN_TAG_COLOR },
+ { PreferencesMessages.CEditorColoringConfigurationBlock_DoxygenSingleLineComment, PreferenceConstants.DOXYGEN_SINGLE_LINE_COLOR },
+ { PreferencesMessages.CEditorColoringConfigurationBlock_DoxygenMultiLineComment, PreferenceConstants.DOXYGEN_MULTI_LINE_COLOR },
{ PreferencesMessages.CEditorColoringConfigurationBlock_keywords, PreferenceConstants.EDITOR_C_KEYWORD_COLOR },
// { PreferencesMessages.CEditorColoringConfigurationBlock_returnKeyword, PreferenceConstants.EDITOR_C_KEYWORD_RETURN_COLOR },
{ PreferencesMessages.CEditorColoringConfigurationBlock_builtInTypes, PreferenceConstants.EDITOR_C_BUILTIN_TYPE_COLOR },
@@ -432,6 +439,7 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
* @param parent the parent composite
* @return the control for the preference page
*/
+ @Override
public Control createControl(Composite parent) {
initializeDialogUnits(parent);
return createSyntaxPage(parent);
@@ -698,15 +706,18 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
previewer.setLayoutData(gd);
fListViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+ @Override
public void selectionChanged(SelectionChangedEvent event) {
handleSyntaxColorListSelection();
}
});
foregroundColorButton.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
+ @Override
public void widgetSelected(SelectionEvent e) {
HighlightingColorListItem item= getHighlightingColorListItem();
PreferenceConverter.setValue(getPreferenceStore(), item.getColorKey(), fSyntaxForegroundColorEditor.getColorValue());
@@ -714,9 +725,11 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
});
fBoldCheckBox.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
+ @Override
public void widgetSelected(SelectionEvent e) {
HighlightingColorListItem item= getHighlightingColorListItem();
getPreferenceStore().setValue(item.getBoldKey(), fBoldCheckBox.getSelection());
@@ -724,18 +737,22 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
});
fItalicCheckBox.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
+ @Override
public void widgetSelected(SelectionEvent e) {
HighlightingColorListItem item= getHighlightingColorListItem();
getPreferenceStore().setValue(item.getItalicKey(), fItalicCheckBox.getSelection());
}
});
fStrikethroughCheckBox.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
+ @Override
public void widgetSelected(SelectionEvent e) {
HighlightingColorListItem item= getHighlightingColorListItem();
getPreferenceStore().setValue(item.getStrikethroughKey(), fStrikethroughCheckBox.getSelection());
@@ -743,9 +760,11 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
});
fUnderlineCheckBox.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
+ @Override
public void widgetSelected(SelectionEvent e) {
HighlightingColorListItem item= getHighlightingColorListItem();
getPreferenceStore().setValue(item.getUnderlineKey(), fUnderlineCheckBox.getSelection());
@@ -753,9 +772,11 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
});
fEnableCheckbox.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
+ @Override
public void widgetSelected(SelectionEvent e) {
HighlightingColorListItem item= getHighlightingColorListItem();
if (item instanceof SemanticHighlightingColorListItem) {
@@ -775,9 +796,11 @@ class CEditorColoringConfigurationBlock extends AbstractConfigurationBlock {
});
fEnableSemanticHighlightingCheckbox.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
+ @Override
public void widgetSelected(SelectionEvent e) {
fListViewer.refresh(true);
HighlightingColorListItem item= getHighlightingColorListItem();
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPlugin.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPlugin.java
index f8e2cdc9137..3915d9cbc8f 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPlugin.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPlugin.java
@@ -48,6 +48,8 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.source.ISharedTextColors;
import org.eclipse.jface.text.templates.ContextTypeRegistry;
import org.eclipse.jface.text.templates.persistence.TemplateStore;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorInput;
@@ -56,6 +58,7 @@ import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.editors.text.EditorsUI;
import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry;
import org.eclipse.ui.editors.text.templates.ContributionTemplateStore;
@@ -64,6 +67,7 @@ import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
import org.eclipse.ui.texteditor.ChainedPreferenceStore;
import org.eclipse.ui.texteditor.ConfigurationElementSorter;
+import org.eclipse.ui.themes.IThemeManager;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
@@ -118,11 +122,11 @@ public class CUIPlugin extends AbstractUIPlugin {
public static final String C_PROBLEMMARKER = PLUGIN_CORE_ID + ".problem"; //$NON-NLS-1$
public static final String ID_COMMENT_OWNER= PLUGIN_ID+".DocCommentOwner"; //$NON-NLS-1$
-
+
public static final String ID_INCLUDE_BROWSER= PLUGIN_ID + ".includeBrowser"; //$NON-NLS-1$
public static final String ID_CALL_HIERARCHY= PLUGIN_ID + ".callHierarchy"; //$NON-NLS-1$
public static final String ID_TYPE_HIERARCHY = PLUGIN_ID + ".typeHierarchy"; //$NON-NLS-1$
-
+
public static final String C_PROJECT_WIZARD_ID = PLUGIN_ID + ".wizards.StdCWizard"; //$NON-NLS-1$
public static final String CPP_PROJECT_WIZARD_ID = PLUGIN_ID + ".wizards.StdCCWizard"; //$NON-NLS-1$
@@ -130,7 +134,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/** @deprecated This wizard category has been merged with the {@link #CWIZARD_CATEGORY_ID c wizard category} */
@Deprecated
public final static String CCWIZARD_CATEGORY_ID = "org.eclipse.cdt.ui.newCCWizards"; //$NON-NLS-1$
-
+
public static final String SEARCH_ACTION_SET_ID = PLUGIN_ID + ".SearchActionSet"; //$NON-NLS-1$
public static final String BUILDER_ID = PLUGIN_CORE_ID + ".cbuilder"; //$NON-NLS-1$
@@ -142,22 +146,22 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* The id of the C perspective
* (value "org.eclipse.cdt.ui.CPerspective").
- */
+ */
public static final String ID_CPERSPECTIVE = PLUGIN_ID + ".CPerspective"; //$NON-NLS-1$
/**
* The id of the C hierarchy perspective
* (value "org.eclipse.cdt.ui.CHierarchyPerspective").
- *
+ *
* @deprecated This perspective no longer exists.
- */
+ */
@Deprecated
public static final String ID_CHIERARCHY_PERSPECTIVE = PLUGIN_ID + ".CHierarchyPerspective"; //$NON-NLS-1$
/**
* The id of the C Browsing Perspective
* (value "org.eclipse.cdt.ui.CBrowsingPerspective").
- *
+ *
* @since 2.0
* @deprecated This perspective no longer exists.
*/
@@ -167,7 +171,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* The view part id of the C Browsing Projects view
* (value "org.eclipse.cdt.ui.ProjectsView").
- *
+ *
* @since 2.0
* @deprecated This view no longer exists.
* @noreference This field is not intended to be referenced by clients.
@@ -178,7 +182,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* The view part id of the C Browsing Namespaces view
* (value "org.eclipse.cdt.ui.NamespacesView").
- *
+ *
* @since 2.0
* @deprecated This view no longer exists.
* @noreference This field is not intended to be referenced by clients.
@@ -189,7 +193,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* The view part id of the C Browsing Types view
* (value "org.eclipse.cdt.ui.TypesView").
- *
+ *
* @since 2.0
* @deprecated This view no longer exists.
* @noreference This field is not intended to be referenced by clients.
@@ -200,7 +204,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* The view part id of the C Browsing Members view
* (value "org.eclipse.cdt.ui.MembersView").
- *
+ *
* @since 2.0
* @deprecated This view no longer exists.
* @noreference This field is not intended to be referenced by clients.
@@ -209,7 +213,7 @@ public class CUIPlugin extends AbstractUIPlugin {
public static String ID_MEMBERS_VIEW = PLUGIN_ID + ".MembersView"; //$NON-NLS-1$
/**
- * The key to store customized templates.
+ * The key to store customized templates.
* @since 3.0
*/
private static final String CUSTOM_TEMPLATES_KEY= "org.eclipse.cdt.ui.text.templates.custom"; //$NON-NLS-1$
@@ -217,20 +221,20 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* The id of the C Element Creation action set
* (value "org.eclipse.cdt.ui.CElementCreationActionSet").
- *
+ *
* @since 2.0
*/
public static final String ID_CELEMENT_CREATION_ACTION_SET= "org.eclipse.cdt.ui.CElementCreationActionSet"; //$NON-NLS-1$
-
+
/**
* The id of the scope used by all the CDT views
* (value "org.eclipse.cdt.ui.scope").
* @since 4.0
*/
public static final String CVIEWS_SCOPE = "org.eclipse.cdt.ui.cViewScope"; //$NON-NLS-1$
-
+
/**
- * The key to store customized code templates.
+ * The key to store customized code templates.
* @since 5.0
*/
private static final String CODE_TEMPLATES_KEY= "org.eclipse.cdt.ui.text.custom_code_templates"; //$NON-NLS-1$
@@ -253,11 +257,11 @@ public class CUIPlugin extends AbstractUIPlugin {
public synchronized IBufferFactory getBufferFactory() {
return ((WorkingCopyManager) getWorkingCopyManager()).getBufferFactory();
}
-
+
public static IWorkingCopy[] getSharedWorkingCopies() {
return getDefault().getWorkingCopyManager().getSharedWorkingCopies();
}
-
+
public static String getResourceString(String key) {
try {
return fgResourceBundle.getString(key);
@@ -271,7 +275,7 @@ public class CUIPlugin extends AbstractUIPlugin {
public static IWorkspace getWorkspace() {
return ResourcesPlugin.getWorkspace();
}
-
+
public static String getFormattedString(String key, String arg) {
return MessageFormat.format(getResourceString(key), new Object[] {arg});
}
@@ -283,7 +287,7 @@ public class CUIPlugin extends AbstractUIPlugin {
public static ResourceBundle getResourceBundle() {
return fgResourceBundle;
}
-
+
public static IWorkbenchWindow getActiveWorkbenchWindow() {
return getDefault().getWorkbench().getActiveWorkbenchWindow();
}
@@ -319,7 +323,7 @@ public class CUIPlugin extends AbstractUIPlugin {
public static void log(IStatus status) {
getDefault().getLog().log(status);
}
-
+
/**
* @noreference This method is not intended to be referenced by clients.
*/
@@ -342,7 +346,7 @@ public class CUIPlugin extends AbstractUIPlugin {
public static void errorDialog(Shell shell, String title, String message, IStatus s, boolean logError) {
if (logError)
log(s);
-
+
// if the 'message' resource string and the IStatus' message are the same,
// don't show both in the dialog
if (s != null && message.equals(s.getMessage())) {
@@ -358,7 +362,7 @@ public class CUIPlugin extends AbstractUIPlugin {
public static void errorDialog(Shell shell, String title, String message, Throwable t, boolean logError) {
if (logError)
log(message, t);
-
+
IStatus status;
if (t instanceof CoreException) {
status = ((CoreException) t).getStatus();
@@ -368,7 +372,7 @@ public class CUIPlugin extends AbstractUIPlugin {
message = null;
}
} else {
- status = new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, -1, "Internal Error: ", t); //$NON-NLS-1$
+ status = new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, -1, "Internal Error: ", t); //$NON-NLS-1$
}
ErrorDialog.openError(shell, title, message, status);
}
@@ -405,14 +409,14 @@ public class CUIPlugin extends AbstractUIPlugin {
private ResourceAdapterFactory fResourceAdapterFactory;
private CElementAdapterFactory fCElementAdapterFactory;
- /**
- * The template context type registry for the C editor.
+ /**
+ * The template context type registry for the C editor.
* @since 3.0
*/
private ContributionContextTypeRegistry fContextTypeRegistry;
/**
- * The template store for the C editor.
+ * The template store for the C editor.
* @since 3.0
*/
private TemplateStore fTemplateStore;
@@ -423,28 +427,34 @@ public class CUIPlugin extends AbstractUIPlugin {
*/
private ASTProvider fASTProvider;
- /**
- * The code template context type registry for the C editor.
+ /**
+ * The code template context type registry for the C editor.
* @since 5.0
*/
private ContextTypeRegistry fCodeTemplateContextTypeRegistry;
-
+
/**
- * The code template store for the C editor.
+ * The code template store for the C editor.
* @since 5.0
*/
private TemplateStore fCodeTemplateStore;
+ /**
+ * Theme listener.
+ * @since 5.4
+ */
+ private IPropertyChangeListener fThemeListener;
+
public CUIPlugin() {
fgCPlugin = this;
fDocumentProvider = null;
- fTextTools = null;
+ fTextTools = null;
fBuildConsoleManagers = new HashMap();
}
-
+
/**
* Returns the used document provider.
- *
+ *
* @noreference This method is not intended to be referenced by clients.
*/
public synchronized CDocumentProvider getDocumentProvider() {
@@ -453,7 +463,7 @@ public class CUIPlugin extends AbstractUIPlugin {
}
return fDocumentProvider;
}
-
+
/**
* Returns the working copy manager
* @return IWorkingCopyManager
@@ -487,11 +497,11 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* Obtain a console manager with the given id. If a manager has not been created yet,
* it is created and its console created and activated.
- *
+ *
* @param name - console name.
* @param contextId - console id matching context id in the Console view dropdown.
* @return console manager.
- *
+ *
* Note that this method is rather internal and should not be referenced by clients.
* To create a build console, use {@link CCorePlugin#getBuildConsole(String, String, URL)}
*/
@@ -502,7 +512,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* Obtain a console manager with the given id. If a manager has not been created yet,
* it is created and its console created and activated with the given attributes.
- *
+ *
* @param name - console name.
* @param contextId - console id matching context id in the Console view dropdown.
* Can't be {@code null}.
@@ -510,7 +520,7 @@ public class CUIPlugin extends AbstractUIPlugin {
* view. The url is expected to point to an image in eclipse OSGi bundle.
* {@code iconUrl} can be null, in that case the default image is used.
* @return console manager.
- *
+ *
* @noreference This method is not intended to be referenced by clients.
*/
public IBuildConsoleManager getConsoleManager(String name, String contextId, URL iconUrl) {
@@ -531,6 +541,7 @@ public class CUIPlugin extends AbstractUIPlugin {
public void startGlobalConsole() {
GlobalBuildConsoleManager.startGlobalConsole();
}
+
/*
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
@@ -540,22 +551,34 @@ public class CUIPlugin extends AbstractUIPlugin {
//Set debug tracing options
configurePluginDebugOptions();
-
+
registerAdapters();
IWorkingCopyProvider workingCopyProvider = new IWorkingCopyProvider() {
+ @Override
public IWorkingCopy[] getWorkingCopies() {
return CUIPlugin.getSharedWorkingCopies();
}
};
CCorePlugin.getDefault().getDOM().setWorkingCopyProvider(workingCopyProvider);
-
- // init ast provider
- getASTProvider();
+
+ if (PlatformUI.isWorkbenchRunning()) {
+ // Initialize AST provider
+ getASTProvider();
+
+ fThemeListener= new IPropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ if (IThemeManager.CHANGE_CURRENT_THEME.equals(event.getProperty()))
+ CUIPreferenceInitializer.setThemeBasedPreferences(PreferenceConstants.getPreferenceStore(), true);
+ }
+ };
+ PlatformUI.getWorkbench().getThemeManager().addPropertyChangeListener(fThemeListener);
+ }
CDTContextActivator.getInstance().install();
-
+
DocCommentOwnerManager.getInstance().addListener(new EditorReopener());
ASTRewriteAnalyzer.setCTextFileChangeFactory(new CTextFileChangeFactory());
-
+
// A workaround for black console bug 320723.
BuildConsolePreferencePage.initDefaults(getPreferenceStore());
//initialize ContentAssistMatcherPreference
@@ -612,7 +635,7 @@ public class CUIPlugin extends AbstractUIPlugin {
}
fBuildConsoleManagers.clear();
}
-
+
GlobalBuildConsoleManager.stop();
unregisterAdapters();
@@ -621,14 +644,19 @@ public class CUIPlugin extends AbstractUIPlugin {
fWorkingCopyManager.shutdown();
fWorkingCopyManager= null;
}
-
+
if (fDocumentProvider != null) {
fDocumentProvider.shutdown();
fDocumentProvider= null;
}
-
+
ContentAssistPreference.shutdown();
+ if (fThemeListener != null) {
+ PlatformUI.getWorkbench().getThemeManager().removePropertyChangeListener(fThemeListener);
+ fThemeListener= null;
+ }
+
// Do this last.
super.stop(context);
}
@@ -656,7 +684,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* Returns the problem marker manager.
- *
+ *
* @noreference This method is not intended to be referenced by clients.
*/
public ProblemMarkerManager getProblemMarkerManager() {
@@ -673,14 +701,14 @@ public class CUIPlugin extends AbstractUIPlugin {
manager.registerAdapters(fResourceAdapterFactory, IResource.class);
manager.registerAdapters(fCElementAdapterFactory, ICElement.class);
}
-
+
private void unregisterAdapters() {
IAdapterManager manager = Platform.getAdapterManager();
manager.unregisterAdapters(fResourceAdapterFactory);
manager.unregisterAdapters(fCElementAdapterFactory);
}
- /**
+ /**
* @deprecated Use {@link EditorsUI#getSharedTextColors()} instead.
* @noreference This method is not intended to be referenced by clients.
*/
@@ -688,7 +716,7 @@ public class CUIPlugin extends AbstractUIPlugin {
public ISharedTextColors getSharedTextColors() {
return EditorsUI.getSharedTextColors();
}
-
+
public void configurePluginDebugOptions() {
if (isDebugging()) {
String option = Platform.getDebugOption(CONTENTASSIST);
@@ -699,17 +727,17 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* Returns a combined preference store, this store is read-only.
- *
+ *
* @return the combined preference store
- *
+ *
* @since 3.0
*/
public IPreferenceStore getCombinedPreferenceStore() {
if (fCombinedPreferenceStore == null) {
- fCombinedPreferenceStore= new ChainedPreferenceStore(new IPreferenceStore[] {
- getPreferenceStore(),
- getCorePreferenceStore(),
- EditorsUI.getPreferenceStore()
+ fCombinedPreferenceStore= new ChainedPreferenceStore(new IPreferenceStore[] {
+ getPreferenceStore(),
+ getCorePreferenceStore(),
+ EditorsUI.getPreferenceStore()
});
}
return fCombinedPreferenceStore;
@@ -744,11 +772,11 @@ public class CUIPlugin extends AbstractUIPlugin {
}
/**
- * Returns an array of all editors that have an unsaved content. If the identical content is
+ * Returns an array of all editors that have an unsaved content. If the identical content is
* presented in more than one editor, only one of those editor parts is part of the result.
- *
+ *
* @return an array of all dirty editor parts.
- */
+ */
public static IEditorPart[] getDirtyEditors() {
Set inputs= new HashSet();
List result= new ArrayList(0);
@@ -770,7 +798,7 @@ public class CUIPlugin extends AbstractUIPlugin {
return result.toArray(new IEditorPart[result.size()]);
}
/**
- * Returns an array of all instanciated editors.
+ * Returns an array of all instanciated editors.
*/
public static IEditorPart[] getInstanciatedEditors() {
List result= new ArrayList(0);
@@ -800,8 +828,8 @@ public class CUIPlugin extends AbstractUIPlugin {
if (display == null) {
display= Display.getDefault();
}
- return display;
- }
+ return display;
+ }
/**
* Creates the CUIplugin standard groups in a context menu.
@@ -826,9 +854,9 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* Returns all C editor text hovers contributed to the workbench.
- *
+ *
* @return an array of CEditorTextHoverDescriptor
- *
+ *
* @noreference This method is not intended to be referenced by clients.
*/
public CEditorTextHoverDescriptor[] getCEditorTextHoverDescriptors() {
@@ -844,7 +872,7 @@ public class CUIPlugin extends AbstractUIPlugin {
}
};
sorter.sort(fCEditorTextHoverDescriptors);
-
+
// The Problem hover has to be the first and the Annotation hover has to be the last one in the CDT UI's hover list
int length= fCEditorTextHoverDescriptors.length;
int first= -1;
@@ -861,7 +889,7 @@ public class CUIPlugin extends AbstractUIPlugin {
}
if (first == -1)
first= i;
-
+
if (fCEditorTextHoverDescriptors[i].getId().equals("org.eclipse.cdt.ui.AnnotationHover")) { //$NON-NLS-1$
annotationHoverIndex= i;
continue;
@@ -871,9 +899,9 @@ public class CUIPlugin extends AbstractUIPlugin {
continue;
}
}
-
+
CEditorTextHoverDescriptor hoverDescriptor= null;
-
+
if (first > -1 && problemHoverIndex > -1 && problemHoverIndex > first) {
// move problem hover to beginning
hoverDescriptor= fCEditorTextHoverDescriptors[problemHoverIndex];
@@ -884,7 +912,7 @@ public class CUIPlugin extends AbstractUIPlugin {
if (annotationHoverIndex >= first && annotationHoverIndex < problemHoverIndex)
annotationHoverIndex++;
}
-
+
if (annotationHoverIndex > -1 && annotationHoverIndex < last) {
// move annotation hover to end
hoverDescriptor= fCEditorTextHoverDescriptors[annotationHoverIndex];
@@ -903,11 +931,11 @@ public class CUIPlugin extends AbstractUIPlugin {
}
break;
}
-
+
}
}
return fCEditorTextHoverDescriptors;
- }
+ }
/**
* Resets the C editor text hovers contributed to the workbench.
@@ -915,7 +943,7 @@ public class CUIPlugin extends AbstractUIPlugin {
* This will force a rebuild of the descriptors the next time
* a client asks for them.
*
- *
+ *
*/
public void resetCEditorTextHoverDescriptors() {
fCEditorTextHoverDescriptors= null;
@@ -924,9 +952,9 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* Returns the registry of the extensions to the org.eclipse.cdt.ui.foldingStructureProviders
* extension point.
- *
+ *
* @return the registry of contributed ICFoldingStructureProvider
- *
+ *
* @noreference This method is not intended to be referenced by clients.
* @since 3.0
*/
@@ -938,7 +966,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* Returns the template context type registry for the C plugin.
- *
+ *
* @return the template context type registry for the C plugin
* @since 3.0
*/
@@ -954,7 +982,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* Returns the template store for the C editor templates.
- *
+ *
* @return the template store for the C editor templates
* @since 3.0
*/
@@ -973,7 +1001,7 @@ public class CUIPlugin extends AbstractUIPlugin {
/**
* Returns the template context type registry for the code generation
* templates.
- *
+ *
* @return the template context type registry for the code generation
* templates
* @since 5.0
@@ -981,17 +1009,17 @@ public class CUIPlugin extends AbstractUIPlugin {
public ContextTypeRegistry getCodeTemplateContextRegistry() {
if (fCodeTemplateContextTypeRegistry == null) {
fCodeTemplateContextTypeRegistry= new ContributionContextTypeRegistry("org.eclipse.cdt.ui.codeTemplates"); //$NON-NLS-1$
-
+
CodeTemplateContextType.registerContextTypes(fCodeTemplateContextTypeRegistry);
FileTemplateContextType.registerContextTypes(fCodeTemplateContextTypeRegistry);
}
return fCodeTemplateContextTypeRegistry;
}
-
+
/**
* Returns the template store for the code generation templates.
- *
+ *
* @return the template store for the code generation templates
* @since 5.0
*/
@@ -1005,30 +1033,30 @@ public class CUIPlugin extends AbstractUIPlugin {
} catch (IOException e) {
log(e);
}
-
+
fCodeTemplateStore.startListeningForPreferenceChanges();
}
-
+
return fCodeTemplateStore;
}
-
+
/**
* Returns the AST provider.
- *
+ *
* @return the AST provider
- *
+ *
* @noreference This method is not intended to be referenced by clients.
* @since 4.0
*/
public synchronized ASTProvider getASTProvider() {
if (fASTProvider == null)
fASTProvider= new ASTProvider();
-
+
return fASTProvider;
}
-
+
/**
- * Answers the Shell associated with the active workbench, or
+ * Answers the Shell associated with the active workbench, or
* one of the windows associated with the workbench.
*/
public Shell getShell() {
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPreferenceInitializer.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPreferenceInitializer.java
index 60d6458e5d8..4188e1b9407 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPreferenceInitializer.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPreferenceInitializer.java
@@ -1,15 +1,26 @@
/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * Copyright (c) 2003, 2011 IBM Corporation 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
- *
+ *
* Contributors:
* QNX Software Systems - Initial implementation
*******************************************************************************/
package org.eclipse.cdt.ui;
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.PreferenceConverter;
+import org.eclipse.jface.resource.ColorRegistry;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.editors.text.EditorsUI;
+import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
+import org.eclipse.ui.texteditor.AbstractTextEditor;
+
+import org.eclipse.cdt.internal.ui.ICThemeConstants;
import org.eclipse.cdt.internal.ui.cview.CView;
import org.eclipse.cdt.internal.ui.editor.SemanticHighlightings;
import org.eclipse.cdt.internal.ui.preferences.BuildConsolePreferencePage;
@@ -18,19 +29,13 @@ import org.eclipse.cdt.internal.ui.preferences.CPluginPreferencePage;
import org.eclipse.cdt.internal.ui.preferences.CodeAssistPreferencePage;
import org.eclipse.cdt.internal.ui.preferences.WorkInProgressPreferencePage;
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
-
/**
* This class implements the setting of the CUI initial preference store settings.
- *
+ *
* @noextend This class is not intended to be subclassed by clients.
*/
public class CUIPreferenceInitializer extends AbstractPreferenceInitializer {
-
+
/* (non-Javadoc)
* @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
*/
@@ -46,7 +51,7 @@ public class CUIPreferenceInitializer extends AbstractPreferenceInitializer {
CodeAssistPreferencePage.initDefaults(store);
SemanticHighlightings.initDefaults(store);
WorkInProgressPreferencePage.initDefaults(store);
-
+
// We need to do this remove any keys that might have been
// in the CUIPlugin store prior to the move of the CEditor setting
// All of those settings are now in the workbench "All TextEditor" preference Page.
@@ -63,7 +68,7 @@ public class CUIPreferenceInitializer extends AbstractPreferenceInitializer {
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE);
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR);
- store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER);
+ store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER);
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR);
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER);
@@ -72,10 +77,10 @@ public class CUIPreferenceInitializer extends AbstractPreferenceInitializer {
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN);
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR);
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN);
-
+
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_USE_CUSTOM_CARETS);
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_WIDE_CARET);
-
+
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_FOREGROUND_COLOR);
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_BACKGROUND_COLOR);
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SELECTION_FOREGROUND_DEFAULT_COLOR);
@@ -88,4 +93,145 @@ public class CUIPreferenceInitializer extends AbstractPreferenceInitializer {
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE);
store.setToDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_SMART_HOME_END);
}
+
+ static void setThemeBasedPreferences(IPreferenceStore store, boolean fireEvent) {
+ ColorRegistry registry= null;
+ if (PlatformUI.isWorkbenchRunning())
+ registry= PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getColorRegistry();
+
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_MULTI_LINE_COMMENT_COLOR, new RGB(63, 127, 95)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR, new RGB(63, 127, 95)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_TASK_TAG_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_TASK_TAG_COLOR, new RGB(127, 159, 191)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_C_KEYWORD_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_C_KEYWORD_COLOR, new RGB(127, 0, 85)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_C_BUILTIN_TYPE_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_C_BUILTIN_TYPE_COLOR, new RGB(127, 0, 85)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_C_STRING_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_C_STRING_COLOR, new RGB(42, 0, 255)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_C_DEFAULT_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_C_DEFAULT_COLOR, new RGB(0, 0, 0)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_C_OPERATOR_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_C_OPERATOR_COLOR, new RGB(0, 0, 0)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_C_BRACES_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_C_BRACES_COLOR, new RGB(0, 0, 0)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_C_NUMBER_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_C_NUMBER_COLOR, new RGB(0, 0, 0)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_PP_DIRECTIVE_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_PP_DIRECTIVE_COLOR, new RGB(127, 0, 85)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_PP_HEADER_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_PP_HEADER_COLOR, new RGB(42, 0, 255)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_PP_DEFAULT_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_PP_DEFAULT_COLOR, new RGB(0, 0, 0)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_ASM_LABEL_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_ASM_LABEL_COLOR, new RGB(127, 0, 85)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.EDITOR_ASM_DIRECTIVE_COLOR,
+ findRGB(registry, ICThemeConstants.EDITOR_ASM_DIRECTIVE_COLOR, new RGB(127, 0, 85)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND,
+ findRGB(registry, ICThemeConstants.CODEASSIST_PROPOSALS_BACKGROUND, new RGB(255, 255, 255)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND,
+ findRGB(registry, ICThemeConstants.CODEASSIST_PROPOSALS_FOREGROUND, new RGB(0, 0, 0)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND,
+ findRGB(registry, ICThemeConstants.CODEASSIST_PARAMETERS_BACKGROUND, new RGB(255, 255, 255)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND,
+ findRGB(registry, ICThemeConstants.CODEASSIST_PARAMETERS_FOREGROUND, new RGB(0, 0, 0)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.DOXYGEN_MULTI_LINE_COLOR,
+ findRGB(registry, ICThemeConstants.DOXYGEN_MULTI_LINE_COLOR, new RGB(63, 95, 191)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.DOXYGEN_SINGLE_LINE_COLOR,
+ findRGB(registry, ICThemeConstants.DOXYGEN_SINGLE_LINE_COLOR, new RGB(63, 95, 191)), fireEvent);
+ setDefault(
+ store,
+ PreferenceConstants.DOXYGEN_TAG_COLOR,
+ findRGB(registry, ICThemeConstants.DOXYGEN_TAG_COLOR, new RGB(127, 159, 191)), fireEvent);
+ }
+
+ /**
+ * Sets the default value and fires a property
+ * change event if necessary.
+ *
+ * @param store the preference store
+ * @param key the preference key
+ * @param newValue the new value
+ * @param fireEvent false if no event should be fired
+ * @since 5.4
+ */
+ private static void setDefault(IPreferenceStore store, String key, RGB newValue, boolean fireEvent) {
+ if (!fireEvent) {
+ PreferenceConverter.setDefault(store, key, newValue);
+ return;
+ }
+
+ RGB oldValue= null;
+ if (store.isDefault(key))
+ oldValue= PreferenceConverter.getDefaultColor(store, key);
+
+ PreferenceConverter.setDefault(store, key, newValue);
+
+ if (oldValue != null && !oldValue.equals(newValue))
+ store.firePropertyChangeEvent(key, oldValue, newValue);
+ }
+
+ /**
+ * Returns the RGB for the given key in the given color registry.
+ *
+ * @param registry the color registry
+ * @param key the key for the constant in the registry
+ * @param defaultRGB the default RGB if no entry is found
+ * @return RGB the RGB
+ * @since 5.4
+ */
+ private static RGB findRGB(ColorRegistry registry, String key, RGB defaultRGB) {
+ if (registry == null)
+ return defaultRGB;
+
+ RGB rgb= registry.getRGB(key);
+ if (rgb != null)
+ return rgb;
+
+ return defaultRGB;
+ }
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java
index 724fb2f7d36..a979aa5cb8e 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java
@@ -23,17 +23,12 @@ import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.resource.ColorRegistry;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.ui.text.ICColorConstants;
-import org.eclipse.cdt.internal.ui.ICThemeConstants;
import org.eclipse.cdt.internal.ui.preferences.formatter.FormatterProfileManager;
import org.eclipse.cdt.internal.ui.text.spelling.SpellCheckEngine;
@@ -554,6 +549,45 @@ public class PreferenceConstants {
*/
public final static String EDITOR_ASM_DIRECTIVE_ITALIC= ICColorConstants.ASM_DIRECTIVE + EDITOR_ITALIC_SUFFIX;
+ /**
+ * A named preference that holds the color used to render doxygen tags.
+ *
+ * Value is of type String. A RGB color value encoded as a string
+ * using class PreferenceConverter
+ *
+ *
+ * @see org.eclipse.jface.resource.StringConverter
+ * @see org.eclipse.jface.preference.PreferenceConverter
+ * @since 5.4
+ */
+ public static final String DOXYGEN_TAG_COLOR= "org.eclipse.cdt.internal.ui.text.doctools.doxygen.recognizedTag"; //$NON-NLS-1$
+
+ /**
+ * A named preference that holds the color used to render doxygen single line comments.
+ *
+ * Value is of type String. A RGB color value encoded as a string
+ * using class PreferenceConverter
+ *
+ *
+ * @see org.eclipse.jface.resource.StringConverter
+ * @see org.eclipse.jface.preference.PreferenceConverter
+ * @since 5.4
+ */
+ public static final String DOXYGEN_SINGLE_LINE_COLOR= "org.eclipse.cdt.internal.ui.text.doctools.doxygen.single"; //$NON-NLS-1$
+
+ /**
+ * A named preference that holds the color used to render doxygen multi-line comments.
+ *
+ * Value is of type String. A RGB color value encoded as a string
+ * using class PreferenceConverter
+ *
+ *
+ * @see org.eclipse.jface.resource.StringConverter
+ * @see org.eclipse.jface.preference.PreferenceConverter
+ * @since 5.4
+ */
+ public static final String DOXYGEN_MULTI_LINE_COLOR= "org.eclipse.cdt.internal.ui.text.doctools.doxygen.multi"; //$NON-NLS-1$
+
/**
* The symbolic font name for the C/C++ editor text font
* (value "org.eclipse.cdt.ui.editors.textfont").
@@ -1859,8 +1893,6 @@ public class PreferenceConstants {
* @param store the preference store to be initialized
*/
public static void initializeDefaultValues(IPreferenceStore store) {
- ColorRegistry registry= PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getColorRegistry();
-
store.setDefault(PreferenceConstants.EDITOR_CORRECTION_INDICATION, false);
store.setDefault(PreferenceConstants.EDITOR_SHOW_SEGMENTS, false);
store.setDefault(PreferenceConstants.PREF_SHOW_CU_CHILDREN, true);
@@ -1875,64 +1907,49 @@ public class PreferenceConstants {
store.setDefault(EDITOR_SOURCE_HOVER_BACKGROUND_COLOR_SYSTEM_DEFAULT, true);
- // Coloring
- PreferenceConverter.setDefault(store, EDITOR_MULTI_LINE_COMMENT_COLOR, new RGB(63, 127, 95));
+ // Syntax highlighting
store.setDefault(EDITOR_MULTI_LINE_COMMENT_BOLD, false);
store.setDefault(EDITOR_MULTI_LINE_COMMENT_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_SINGLE_LINE_COMMENT_COLOR, new RGB(63, 127, 95));
store.setDefault(EDITOR_SINGLE_LINE_COMMENT_BOLD, false);
store.setDefault(EDITOR_SINGLE_LINE_COMMENT_ITALIC, false);
- PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_TASK_TAG_COLOR, new RGB(127, 159, 191));
- store.setDefault(PreferenceConstants.EDITOR_TASK_TAG_BOLD, true);
- store.setDefault(PreferenceConstants.EDITOR_TASK_TAG_ITALIC, false);
+ store.setDefault(EDITOR_TASK_TAG_BOLD, true);
+ store.setDefault(EDITOR_TASK_TAG_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_C_KEYWORD_COLOR, new RGB(127, 0, 85));
store.setDefault(EDITOR_C_KEYWORD_BOLD, true);
store.setDefault(EDITOR_C_KEYWORD_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_C_BUILTIN_TYPE_COLOR, new RGB(127, 0, 85));
store.setDefault(EDITOR_C_BUILTIN_TYPE_BOLD, true);
store.setDefault(EDITOR_C_BUILTIN_TYPE_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_C_STRING_COLOR, new RGB(42, 0, 255));
store.setDefault(EDITOR_C_STRING_BOLD, false);
store.setDefault(EDITOR_C_STRING_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_C_DEFAULT_COLOR, new RGB(0, 0, 0));
store.setDefault(EDITOR_C_DEFAULT_BOLD, false);
store.setDefault(EDITOR_C_DEFAULT_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_C_OPERATOR_COLOR, new RGB(0, 0, 0));
store.setDefault(EDITOR_C_OPERATOR_BOLD, false);
store.setDefault(EDITOR_C_OPERATOR_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_C_BRACES_COLOR, new RGB(0, 0, 0));
store.setDefault(EDITOR_C_BRACES_BOLD, false);
store.setDefault(EDITOR_C_BRACES_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_C_NUMBER_COLOR, new RGB(0, 0, 0));
store.setDefault(EDITOR_C_NUMBER_BOLD, false);
store.setDefault(EDITOR_C_NUMBER_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_PP_DIRECTIVE_COLOR, new RGB(127, 0, 85));
store.setDefault(EDITOR_PP_DIRECTIVE_BOLD, true);
store.setDefault(EDITOR_PP_DIRECTIVE_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_PP_HEADER_COLOR, new RGB(42, 0, 255));
store.setDefault(EDITOR_PP_HEADER_BOLD, false);
store.setDefault(EDITOR_PP_HEADER_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_PP_DEFAULT_COLOR, new RGB(0, 0, 0));
store.setDefault(EDITOR_PP_DEFAULT_BOLD, false);
store.setDefault(EDITOR_PP_DEFAULT_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_ASM_LABEL_COLOR, new RGB(127, 0, 85));
store.setDefault(EDITOR_ASM_LABEL_BOLD, true);
store.setDefault(EDITOR_ASM_LABEL_ITALIC, false);
- PreferenceConverter.setDefault(store, EDITOR_ASM_DIRECTIVE_COLOR, new RGB(127, 0, 85));
store.setDefault(EDITOR_ASM_DIRECTIVE_BOLD, true);
store.setDefault(EDITOR_ASM_DIRECTIVE_ITALIC, false);
@@ -1972,23 +1989,6 @@ public class PreferenceConstants {
store.setDefault(PreferenceConstants.CODEASSIST_PROPOSALS_TIMEOUT, 5000);
- setDefaultAndFireEvent(
- store,
- PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND,
- findRGB(registry, ICThemeConstants.CODEASSIST_PROPOSALS_BACKGROUND, new RGB(255, 255, 255)));
- setDefaultAndFireEvent(
- store,
- PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND,
- findRGB(registry, ICThemeConstants.CODEASSIST_PROPOSALS_FOREGROUND, new RGB(0, 0, 0)));
- setDefaultAndFireEvent(
- store,
- PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND,
- findRGB(registry, ICThemeConstants.CODEASSIST_PARAMETERS_BACKGROUND, new RGB(255, 255, 255)));
- setDefaultAndFireEvent(
- store,
- PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND,
- findRGB(registry, ICThemeConstants.CODEASSIST_PARAMETERS_FOREGROUND, new RGB(0, 0, 0)));
-
// Refactoring.
store.setDefault(PreferenceConstants.REFACTOR_SAVE_ALL_EDITORS, false);
store.setDefault(PreferenceConstants.REFACTOR_LIGHTWEIGHT, true);
@@ -2081,6 +2081,9 @@ public class PreferenceConstants {
store.setDefault(NAME_STYLE_CPP_TEST_PREFIX, ""); //$NON-NLS-1$
store.setDefault(NAME_STYLE_CPP_TEST_SUFFIX, "_test.cpp"); //$NON-NLS-1$
store.setDefault(NAME_STYLE_CPP_TEST_WORD_DELIMITER, ""); //$NON-NLS-1$
+
+ // Colors that are set by the current theme
+ CUIPreferenceInitializer.setThemeBasedPreferences(store, false);
}
/**
@@ -2149,39 +2152,4 @@ public class PreferenceConstants {
return getPreferenceNode(key, project).getBoolean(key, defaultValue);
}
- /**
- * Sets the default value and fires a property
- * change event if necessary.
- *
- * @param store the preference store
- * @param key the preference key
- * @param newValue the new value
- * @since 5.0
- */
- private static void setDefaultAndFireEvent(IPreferenceStore store, String key, RGB newValue) {
- RGB oldValue= null;
- if (store.isDefault(key))
- oldValue= PreferenceConverter.getDefaultColor(store, key);
-
- PreferenceConverter.setDefault(store, key, newValue);
-
- if (oldValue != null && !oldValue.equals(newValue))
- store.firePropertyChangeEvent(key, oldValue, newValue);
- }
-
- /**
- * Returns the RGB for the given key in the given color registry.
- *
- * @param registry the color registry
- * @param key the key for the constant in the registry
- * @param defaultRGB the default RGB if no entry is found
- * @return RGB the RGB
- * @since 5.0
- */
- private static RGB findRGB(ColorRegistry registry, String key, RGB defaultRGB) {
- RGB rgb= registry.getRGB(key);
- if (rgb != null)
- return rgb;
- return defaultRGB;
- }
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/text/doctools/doxygen/DoxygenHelper.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/text/doctools/doxygen/DoxygenHelper.java
index 1ae0336cb9b..dd089fa34ed 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/text/doctools/doxygen/DoxygenHelper.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/text/doctools/doxygen/DoxygenHelper.java
@@ -1,12 +1,12 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 Symbian Software Systems and others.
+ * Copyright (c) 2008, 2011 Symbian Software Systems 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
*
* Contributors:
- * Andrew Ferguson (Symbian) - Initial implementation
+ * Andrew Ferguson (Symbian) - Initial implementation
*******************************************************************************/
package org.eclipse.cdt.ui.text.doctools.doxygen;
import java.io.BufferedReader;
@@ -20,42 +20,53 @@ import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.swt.graphics.RGB;
-
import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.cdt.ui.PreferenceConstants;
import org.eclipse.cdt.ui.text.doctools.generic.GenericDocTag;
/**
* Makes available information for Doxygen support.
- *
+ *
* @since 5.0
* @noextend This class is not intended to be subclassed by clients.
*/
public class DoxygenHelper extends AbstractPreferenceInitializer {
private static final IPath TAGS_CSV= new Path("doxygenTags.csv"); //$NON-NLS-1$
private static GenericDocTag[] fTags;
-
- public static final String DOXYGEN_TAG_RECOGNIZED= "org.eclipse.cdt.internal.ui.text.doctools.doxygen.recognizedTag"; //$NON-NLS-1$
- public static final String DOXYGEN_SINGLE_TOKEN= "org.eclipse.cdt.internal.ui.text.doctools.doxygen.single"; //$NON-NLS-1$
- public static final String DOXYGEN_MULTI_TOKEN= "org.eclipse.cdt.internal.ui.text.doctools.doxygen.multi"; //$NON-NLS-1$
-
+
+ /**
+ * @deprecated Use {@link PreferenceConstants#DOXYGEN_TAG_COLOR} instead.
+ */
+ @Deprecated
+ public static final String DOXYGEN_TAG_RECOGNIZED= PreferenceConstants.DOXYGEN_TAG_COLOR;
+ /**
+ * @deprecated Use {@link PreferenceConstants#DOXYGEN_SINGLE_LINE_COLOR} instead.
+ */
+ @Deprecated
+ public static final String DOXYGEN_SINGLE_TOKEN= PreferenceConstants.DOXYGEN_SINGLE_LINE_COLOR;
+ /**
+ * @deprecated Use {@link PreferenceConstants#DOXYGEN_MULTI_LINE_COLOR} instead.
+ */
+ @Deprecated
+ public static final String DOXYGEN_MULTI_TOKEN= PreferenceConstants.DOXYGEN_MULTI_LINE_COLOR;
+
/**
* @return The tags which are understood by default by the doxygen tool.
*/
public static GenericDocTag[] getDoxygenTags() {
if(fTags==null) {
+ InputStream is = null;
try {
List temp= new ArrayList();
- InputStream is= FileLocator.openStream(CUIPlugin.getDefault().getBundle(), TAGS_CSV, false);
+ is= FileLocator.openStream(CUIPlugin.getDefault().getBundle(), TAGS_CSV, false);
BufferedReader br= new BufferedReader(new InputStreamReader(is));
- StringBuffer content= new StringBuffer();
+ StringBuilder content= new StringBuilder(2000);
for(String line= br.readLine(); line!=null; line= br.readLine()) {
- content.append(line+"\n"); //$NON-NLS-1$
+ content.append(line).append('\n');
}
- String[] values= (content.toString()+"dummy-for-split").split("(\\s)*,(\\s)*"); //$NON-NLS-1$ //$NON-NLS-2$
-
+ content.append("dummy-for-split"); //$NON-NLS-1$
+ String[] values= content.toString().split("(\\s)*,(\\s)*"); //$NON-NLS-1$
+
for(int i=0; i+1
Date: Thu, 22 Dec 2011 19:59:10 -0800
Subject: [PATCH 11/60] Bug 363244. Fixed the case when newly inserted nodes
are wrapped in ContainerNode.
---
.../core/dom/rewrite/changegenerator/ChangeGenerator.java | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java
index 2f98b27c77d..19a090f4686 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java
@@ -58,6 +58,7 @@ import org.eclipse.cdt.internal.core.dom.rewrite.ASTModificationMap;
import org.eclipse.cdt.internal.core.dom.rewrite.ASTModificationStore;
import org.eclipse.cdt.internal.core.dom.rewrite.ASTRewriteAnalyzer;
import org.eclipse.cdt.internal.core.dom.rewrite.astwriter.ASTWriter;
+import org.eclipse.cdt.internal.core.dom.rewrite.astwriter.ContainerNode;
import org.eclipse.cdt.internal.core.dom.rewrite.astwriter.ProblemRuntimeException;
import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
import org.eclipse.cdt.internal.core.dom.rewrite.util.FileHelper;
@@ -1016,6 +1017,13 @@ public class ChangeGenerator extends ASTVisitor {
if (modification.getKind() != ModificationKind.APPEND_CHILD)
return false;
IASTNode node = modification.getNewNode();
+ if (node instanceof ContainerNode) {
+ for (IASTNode containedNode : ((ContainerNode) node).getNodes()) {
+ if (!(containedNode instanceof IASTDeclaration || containedNode instanceof IASTStatement))
+ return false;
+ }
+ return true;
+ }
return node instanceof IASTDeclaration || node instanceof IASTStatement;
}
From 42e2c8c5f7f64d7693bad58b0e37e38de3a2a71c Mon Sep 17 00:00:00 2001
From: Marc-Andre Laperle
Date: Thu, 22 Dec 2011 23:39:07 -0500
Subject: [PATCH 12/60] Bug 367467 - Generate Getters and Setters leaks memory
---
.../GenerateGettersAndSettersInputPage.java | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/gettersandsetters/GenerateGettersAndSettersInputPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/gettersandsetters/GenerateGettersAndSettersInputPage.java
index 4c00941a4e2..d77ecb2dce5 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/gettersandsetters/GenerateGettersAndSettersInputPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/gettersandsetters/GenerateGettersAndSettersInputPage.java
@@ -231,4 +231,11 @@ public class GenerateGettersAndSettersInputPage extends UserInputWizardPage impl
variableSelectionView.refresh();
}
}
+
+ @Override
+ public void dispose() {
+ super.dispose();
+ IEclipsePreferences node = InstanceScope.INSTANCE.getNode(CUIPlugin.PLUGIN_ID);
+ node.removePreferenceChangeListener(this);
+ }
}
From 6e1ea34d7c64a26d1554f486db2f03fbe402e4f6 Mon Sep 17 00:00:00 2001
From: Anton Leherbauer
Date: Fri, 23 Dec 2011 10:45:25 +0100
Subject: [PATCH 13/60] Bug 367417 - IndexerPreferenceListener leaks CEditor
instance
---
.../cdt/ui/tests/text/BasicCEditorTest.java | 25 ++++++++++++++--
.../cdt/internal/ui/editor/CEditor.java | 30 ++++++++++++++++++-
2 files changed, 51 insertions(+), 4 deletions(-)
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/BasicCEditorTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/BasicCEditorTest.java
index 76a264530f3..8ebc81e6da8 100644
--- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/BasicCEditorTest.java
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/BasicCEditorTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2010 Wind River Systems, Inc. and others.
+ * Copyright (c) 2006, 2011 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
@@ -12,6 +12,7 @@
package org.eclipse.cdt.ui.tests.text;
import java.io.File;
+import java.lang.ref.WeakReference;
import java.net.URI;
import java.net.URISyntaxException;
@@ -110,8 +111,8 @@ public class BasicCEditorTest extends BaseUITestCase {
}
}
- private static CEditor fEditor;
- private static SourceViewer fSourceViewer;
+ private CEditor fEditor;
+ private SourceViewer fSourceViewer;
private ICProject fCProject;
private IProject fNonCProject;
private StyledText fTextWidget;
@@ -443,6 +444,24 @@ public class BasicCEditorTest extends BaseUITestCase {
assertTrue(part instanceof CEditor);
}
+ public void testLeakingInstanceAfterClose() throws Exception {
+ final String file= "/ceditor/src/main.cpp";
+ fCProject= EditorTestHelper.createCProject("ceditor", "resources/ceditor", false, false);
+ setUpEditor(file);
+ fSourceViewer= EditorTestHelper.getSourceViewer(fEditor);
+ assertTrue(EditorTestHelper.joinReconciler(fSourceViewer, 0, 10000, 100));
+ WeakReference ref = new WeakReference(fEditor);
+ EditorTestHelper.closeEditor(fEditor);
+ fEditor = null;
+ fSourceViewer = null;
+ int ngc = 10;
+ while (ref.get() != null && ngc-- > 0) {
+ System.gc();
+ Thread.sleep(200);
+ }
+ assertNull("CEditor instance seems to be leaking after close", ref.get());
+ }
+
/**
* Type characters into the styled text.
*
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java
index a1cf6a2d9f5..d7691a06d7e 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java
@@ -254,6 +254,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#gotoMarker(org.eclipse.core.resources.IMarker)
*/
+ @Override
public void gotoMarker(IMarker marker) {
if (fIsUpdatingMarkerViews)
return;
@@ -433,6 +434,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.jface.text.link.LinkedModeUI$IExitPolicy#doExit(org.eclipse.jface.text.link.LinkedModeModel, org.eclipse.swt.events.VerifyEvent, int, int)
*/
+ @Override
public ExitFlags doExit(LinkedModeModel model, VerifyEvent event, int offset, int length) {
if (fSize == fStack.size() && !isMasked(offset)) {
if (event.character == fExitCharacter) {
@@ -497,6 +499,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.jface.text.IPositionUpdater#update(org.eclipse.jface.text.DocumentEvent)
*/
+ @Override
public void update(DocumentEvent event) {
int eventOffset = event.getOffset();
int eventOldLength = event.getLength();
@@ -589,6 +592,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.swt.custom.VerifyKeyListener#verifyKey(org.eclipse.swt.events.VerifyEvent)
*/
+ @Override
public void verifyKey(VerifyEvent event) {
// early pruning to slow down normal typing as little as possible
@@ -746,6 +750,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.jface.text.link.ILinkedModeListener#left(org.eclipse.jface.text.link.LinkedModeModel, int)
*/
+ @Override
public void left(LinkedModeModel environment, int flags) {
final BracketLevel level = fBracketLevelStack.pop();
@@ -760,6 +765,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
IDocumentExtension extension = (IDocumentExtension) document;
extension.registerPostNotificationReplace(null, new IDocumentExtension.IReplace() {
+ @Override
public void perform(IDocument d, IDocumentListener owner) {
if ((level.fFirstPosition.isDeleted || level.fFirstPosition.length == 0)
&& !level.fSecondPosition.isDeleted
@@ -789,12 +795,14 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.jface.text.link.ILinkedModeListener#suspend(org.eclipse.jface.text.link.LinkedModeModel)
*/
+ @Override
public void suspend(LinkedModeModel environment) {
}
/*
* @see org.eclipse.jface.text.link.ILinkedModeListener#resume(org.eclipse.jface.text.link.LinkedModeModel, int)
*/
+ @Override
public void resume(LinkedModeModel environment, int flags) {
}
}
@@ -809,6 +817,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/**
* @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
*/
+ @Override
public void selectionChanged(SelectionChangedEvent event) {
// XXX: see https://bugs.eclipse.org/bugs/show_bug.cgi?id=56161
CEditor.this.selectionChanged();
@@ -978,6 +987,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.ui.texteditor.IUpdate#update()
*/
+ @Override
public void update() {
setEnabled(isEditorInputModifiable());
}
@@ -1181,6 +1191,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.ui.texteditor.IUpdate#update()
*/
+ @Override
public void update() {
setEnabled(isEditorInputModifiable());
}
@@ -1225,6 +1236,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
private class IndexerPreferenceListener implements IPreferenceChangeListener {
private IProject fProject;
+ @Override
public void preferenceChange(PreferenceChangeEvent event) {
if (IndexerPreferences.KEY_INDEX_ON_OPEN.equals(event.getKey())) {
ICElement element= getInputCElement();
@@ -1398,7 +1410,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/** The translation unit that was added by the editor to index, or null. */
private ITranslationUnit fTuAddedToIndex;
- private IndexerPreferenceListener fIndexerPreferenceListener;
+ private final IndexerPreferenceListener fIndexerPreferenceListener;
private static final Set angularIntroducers = new HashSet();
static {
@@ -1643,6 +1655,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
return getOutlinePage();
} else if (required == IShowInTargetList.class) {
return new IShowInTargetList() {
+ @Override
@SuppressWarnings("deprecation")
public String[] getShowInTargetIds() {
return new String[] { IPageLayout.ID_PROJECT_EXPLORER, IPageLayout.ID_OUTLINE, IPageLayout.ID_RES_NAV };
@@ -1656,6 +1669,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
}
final ISelection selection= ce != null ? new StructuredSelection(ce) : null;
return new IShowInSource() {
+ @Override
public ShowInContext getShowInContext() {
return new ShowInContext(getEditorInput(), selection);
}
@@ -1824,6 +1838,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
if (PreferenceConstants.SCALABILITY_RECONCILER.equals(property) ||
PreferenceConstants.SCALABILITY_SYNTAX_COLOR.equals(property)) {
BusyIndicator.showWhile(getSite().getShell().getDisplay(), new Runnable() {
+ @Override
public void run() {
setOutlinePageInput(fOutlinePage, getEditorInput());
asv.unconfigure();
@@ -1980,6 +1995,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
* React to changed selection in the outline view.
* @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
*/
+ @Override
public void selectionChanged(SelectionChangedEvent event) {
ISelection sel = event.getSelection();
if (sel instanceof IStructuredSelection) {
@@ -2198,6 +2214,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
*/
@Override
public void dispose() {
+ fIndexerPreferenceListener.unregister();
updateIndexInclusion(null, true);
ISourceViewer sourceViewer = getSourceViewer();
@@ -2578,6 +2595,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
// bug 291008 - register custom help listener
final IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
parent.addHelpListener(new HelpListener() {
+ @Override
public void helpRequested(HelpEvent e) {
IContextProvider provider = (IContextProvider) CEditor.this.getAdapter(IContextProvider.class);
if (provider != null) {
@@ -2884,6 +2902,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
fProjectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.warning"); //$NON-NLS-1$
fProjectionSupport.addSummarizableAnnotationType("org.eclipse.search.results"); //$NON-NLS-1$
fProjectionSupport.setHoverControlCreator(new IInformationControlCreator() {
+ @Override
public IInformationControl createInformationControl(Shell shell) {
return new SourceViewerInformationControl(shell, false, getOrientation(), null);
}
@@ -3163,6 +3182,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
* @see org.eclipse.cdt.internal.ui.text.ICReconcilingListener#aboutToBeReconciled()
* @since 4.0
*/
+ @Override
public void aboutToBeReconciled() {
fIsReconciling= true;
@@ -3180,6 +3200,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
* @see org.eclipse.cdt.internal.ui.text.ICReconcilingListener#reconciled(IASTTranslationUnit, boolean, IProgressMonitor)
* @since 4.0
*/
+ @Override
public void reconciled(IASTTranslationUnit ast, boolean force, IProgressMonitor progressMonitor) {
fIsReconciling= false;
@@ -3417,6 +3438,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
*/
+ @Override
public void documentAboutToBeChanged(DocumentEvent event) {
if (fOccurrencesAnnotationUpdaterJob != null)
fOccurrencesAnnotationUpdaterJob.doCancel();
@@ -3425,12 +3447,14 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
*/
+ @Override
public void documentChanged(DocumentEvent event) {
}
/*
* @see org.eclipse.jface.text.ITextInputListener#inputDocumentAboutToBeChanged(org.eclipse.jface.text.IDocument, org.eclipse.jface.text.IDocument)
*/
+ @Override
public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
if (oldInput == null)
return;
@@ -3441,6 +3465,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
/*
* @see org.eclipse.jface.text.ITextInputListener#inputDocumentChanged(org.eclipse.jface.text.IDocument, org.eclipse.jface.text.IDocument)
*/
+ @Override
public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
if (newInput == null)
return;
@@ -3536,6 +3561,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
fMarkOccurrenceAnnotations= true;
fPostSelectionListenerWithAST= new ISelectionListenerWithAST() {
+ @Override
public void selectionChanged(IEditorPart part, ITextSelection selection, IASTTranslationUnit astRoot) {
updateOccurrenceAnnotations(selection, astRoot);
}
@@ -3544,6 +3570,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
if (forceUpdate && getSelectionProvider() != null) {
fForcedMarkOccurrencesSelection= getSelectionProvider().getSelection();
ASTProvider.getASTProvider().runOnAST(getInputCElement(), ASTProvider.WAIT_NO, getProgressMonitor(), new ASTRunnable() {
+ @Override
public IStatus runOnAST(ILanguage lang, IASTTranslationUnit ast) throws CoreException {
updateOccurrenceAnnotations((ITextSelection) fForcedMarkOccurrencesSelection, ast);
return Status.OK_STATUS;
@@ -3733,6 +3760,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
ICElement inputCElement = getInputCElement();
if (provideAST && inputCElement instanceof ITranslationUnit) {
ASTProvider.getASTProvider().runOnAST(inputCElement, ASTProvider.WAIT_ACTIVE_ONLY, getProgressMonitor(), new ASTRunnable() {
+ @Override
public IStatus runOnAST(ILanguage lang, IASTTranslationUnit ast) throws CoreException {
if (ast != null)
fOverrideIndicatorManager.reconciled(ast, true, getProgressMonitor());
From c1f0069b9725e77b67a9ed3f7c9f9238bec82c34 Mon Sep 17 00:00:00 2001
From: Markus Schorn
Date: Fri, 23 Dec 2011 10:54:58 +0100
Subject: [PATCH 14/60] Bug 367315: Incremental update for headers parsed in
context.
---
.../internal/index/tests/IndexBugsTests.java | 41 +++++++++-
.../index/IndexBasedFileContentProvider.java | 17 ++---
.../core/parser/scanner/CPreprocessor.java | 11 ++-
.../scanner/InternalFileContentProvider.java | 13 +++-
.../core/pdom/AbstractIndexerTask.java | 74 ++++++++++++-------
5 files changed, 113 insertions(+), 43 deletions(-)
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java
index 293cbc8ae73..86963579eaf 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexBugsTests.java
@@ -2394,7 +2394,8 @@ public class IndexBugsTests extends BaseTestCase {
final Set folders = new HashSet();
folders.add(root);
root.accept(new IResourceVisitor() {
- public boolean visit(final IResource resource) throws CoreException {
+ @Override
+ public boolean visit(final IResource resource) throws CoreException {
if (resource instanceof IFile) {
files.add((IFile) resource);
} else if (resource instanceof IFolder) {
@@ -2431,4 +2432,42 @@ public class IndexBugsTests extends BaseTestCase {
index.releaseReadLock();
}
}
+
+ // // context.c
+ // #define A B
+ // #include "b.h" // file name is important to reproduce the issue
+ // #include "a.h" // file name is important to reproduce the issue
+
+ // // a.h and b.h
+ // int A;
+ public void testUpdatingHeaderInContext_367315() throws Exception {
+ String[] contents= getContentsForTest(2);
+ final IIndexManager indexManager = CCorePlugin.getIndexManager();
+ TestSourceReader.createFile(fCProject.getProject(), "context.c", contents[0]);
+ IFile ah= TestSourceReader.createFile(fCProject.getProject(), "a.h", contents[1]);
+ IFile bh= TestSourceReader.createFile(fCProject.getProject(), "b.h", contents[1]);
+ indexManager.reindex(fCProject);
+ waitForIndexer();
+ fIndex.acquireReadLock();
+ try {
+ IIndexBinding[] vars = fIndex.findBindings("B".toCharArray(), IndexFilter.ALL_DECLARED, new NullProgressMonitor());
+ assertEquals(1, vars.length);
+ assertEquals(2, fIndex.findDefinitions(vars[0]).length);
+ } finally {
+ fIndex.releaseReadLock();
+ }
+
+ final CoreModel coreModel = CCorePlugin.getDefault().getCoreModel();
+ ICElement[] selection = new ICElement[] {coreModel.create(ah), coreModel.create(bh)};
+ indexManager.update(selection, IIndexManager.UPDATE_ALL);
+ waitForIndexer();
+ fIndex.acquireReadLock();
+ try {
+ IIndexBinding[] vars = fIndex.findBindings("B".toCharArray(), IndexFilter.ALL_DECLARED, new NullProgressMonitor());
+ assertEquals(1, vars.length);
+ assertEquals(2, fIndex.findDefinitions(vars[0]).length);
+ } finally {
+ fIndex.releaseReadLock();
+ }
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IndexBasedFileContentProvider.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IndexBasedFileContentProvider.java
index ccfc664eed6..944e6cc9817 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IndexBasedFileContentProvider.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IndexBasedFileContentProvider.java
@@ -47,7 +47,6 @@ import org.eclipse.core.runtime.CoreException;
* Code reader factory, that fakes code readers for header files already stored in the index.
*/
public final class IndexBasedFileContentProvider extends InternalFileContentProvider {
- private static final class NeedToParseException extends Exception {}
private static final String GAP = "__gap__"; //$NON-NLS-1$
private final IIndex fIndex;
@@ -135,7 +134,7 @@ public final class IndexBasedFileContentProvider extends InternalFileContentProv
// Report pragma once inclusions, only if no exception was thrown.
fPragmaOnce.putAll(newPragmaOnce);
return new InternalFileContent(path, macros, directives, files, toList(preLoaded));
- } catch (NeedToParseException e) {
+ } catch (DependsOnOutdatedFileException e) {
}
}
} catch (CoreException e) {
@@ -188,7 +187,7 @@ public final class IndexBasedFileContentProvider extends InternalFileContentProv
Map newPragmaOnce,
LinkedHashSet preLoaded, List files,
List macros, List usingDirectives,
- Set preventRecursion) throws CoreException, NeedToParseException {
+ Set preventRecursion) throws CoreException, DependsOnOutdatedFileException {
if (file.equals(stopAt))
return true;
@@ -211,8 +210,6 @@ public final class IndexBasedFileContentProvider extends InternalFileContentProv
final Object[] pds;
if (fRelatedIndexerTask != null) {
IndexFileContent content= fRelatedIndexerTask.getFileContent(fLinkage, ifl, file);
- if (content == null)
- throw new NeedToParseException();
uds= content.getUsingDirectives();
pds= content.getPreprocessingDirectives();
} else {
@@ -252,7 +249,7 @@ public final class IndexBasedFileContentProvider extends InternalFileContentProv
@Override
public InternalFileContent getContentForContextToHeaderGap(String path,
- IMacroDictionary macroDictionary) {
+ IMacroDictionary macroDictionary) throws DependsOnOutdatedFileException {
if (fContextToHeaderGap == null) {
return null;
}
@@ -268,12 +265,8 @@ public final class IndexBasedFileContentProvider extends InternalFileContentProv
ArrayList macros= new ArrayList();
ArrayList directives= new ArrayList();
LinkedHashSet preLoaded= new LinkedHashSet();
- try {
- if (!collectFileContent(contextFile, targetFile, newPragmaOnce, preLoaded,
- filesIncluded, macros, directives, new HashSet())) {
- return null;
- }
- } catch (NeedToParseException e) {
+ if (!collectFileContent(contextFile, targetFile, newPragmaOnce, preLoaded,
+ filesIncluded, macros, directives, new HashSet())) {
return null;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java
index c84bd8ff4da..7f216f7b0a6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/CPreprocessor.java
@@ -57,6 +57,7 @@ import org.eclipse.cdt.internal.core.parser.IMacroDictionary;
import org.eclipse.cdt.internal.core.parser.scanner.ExpressionEvaluator.EvalException;
import org.eclipse.cdt.internal.core.parser.scanner.InternalFileContent.FileVersion;
import org.eclipse.cdt.internal.core.parser.scanner.InternalFileContent.InclusionKind;
+import org.eclipse.cdt.internal.core.parser.scanner.InternalFileContentProvider.DependsOnOutdatedFileException;
import org.eclipse.cdt.internal.core.parser.scanner.Lexer.LexerOptions;
import org.eclipse.cdt.internal.core.parser.scanner.MacroDefinitionParser.InvalidMacroDefinitionException;
import org.eclipse.cdt.internal.core.parser.scanner.ScannerContext.BranchKind;
@@ -465,8 +466,14 @@ public class CPreprocessor implements ILexerLog, IScanner, IAdaptable {
fPreIncludedFiles= null;
}
final String location = fLocationMap.getTranslationUnitPath();
- InternalFileContent content= fFileContentProvider.getContentForContextToHeaderGap(location,
- fMacroDictionaryFacade);
+ InternalFileContent content;
+ try {
+ content = fFileContentProvider.getContentForContextToHeaderGap(location,
+ fMacroDictionaryFacade);
+ } catch (DependsOnOutdatedFileException e) {
+ // Abort the parser, handled by the abstract indexer task.
+ throw new RuntimeException(e);
+ }
if (content != null && content.getKind() == InclusionKind.FOUND_IN_INDEX) {
processInclusionFromIndex(0, content, false);
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/InternalFileContentProvider.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/InternalFileContentProvider.java
index 82668c6293b..ed41e88c356 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/InternalFileContentProvider.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/InternalFileContentProvider.java
@@ -25,6 +25,7 @@ import org.eclipse.cdt.core.index.IIndexFileLocation;
import org.eclipse.cdt.core.parser.ISignificantMacros;
import org.eclipse.cdt.core.parser.IncludeFileContentProvider;
import org.eclipse.cdt.internal.core.dom.IIncludeFileResolutionHeuristics;
+import org.eclipse.cdt.internal.core.index.IIndexFragmentFile;
import org.eclipse.cdt.internal.core.parser.IMacroDictionary;
import org.eclipse.cdt.internal.core.parser.scanner.InternalFileContent.InclusionKind;
@@ -32,6 +33,15 @@ import org.eclipse.cdt.internal.core.parser.scanner.InternalFileContent.Inclusio
* Internal implementation of the file content providers
*/
public abstract class InternalFileContentProvider extends IncludeFileContentProvider {
+ public static final class DependsOnOutdatedFileException extends Exception {
+ public final Object fTu;
+ public final IIndexFragmentFile fIndexFile;
+ public DependsOnOutdatedFileException(Object tu, IIndexFragmentFile file) {
+ fTu= tu;
+ fIndexFile= file;
+ }
+ }
+
private IIncludeFileResolutionHeuristics fIncludeResolutionHeuristics;
private final Map fPragmaOnce= new HashMap();
private final Map> fLoadedVersions= new HashMap>();
@@ -64,9 +74,10 @@ public abstract class InternalFileContentProvider extends IncludeFileContentProv
* or null if this cannot be done.
* @param filePath the absolute location of the file.
* @param macroDictionary macros defined at the inclusion point.
+ * @throws DependsOnOutdatedFileException
*/
public InternalFileContent getContentForContextToHeaderGap(String filePath,
- IMacroDictionary macroDictionary) {
+ IMacroDictionary macroDictionary) throws DependsOnOutdatedFileException {
return null;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java
index 841882a5e13..ffc4d33176f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java
@@ -24,6 +24,7 @@ import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.IPDOMIndexerTask;
@@ -54,6 +55,7 @@ import org.eclipse.cdt.internal.core.index.IWritableIndex;
import org.eclipse.cdt.internal.core.index.IndexBasedFileContentProvider;
import org.eclipse.cdt.internal.core.parser.IMacroDictionary;
import org.eclipse.cdt.internal.core.parser.scanner.InternalFileContentProvider;
+import org.eclipse.cdt.internal.core.parser.scanner.InternalFileContentProvider.DependsOnOutdatedFileException;
import org.eclipse.cdt.internal.core.parser.util.LRUCache;
import org.eclipse.cdt.utils.EFSExtensionManager;
import org.eclipse.core.runtime.CoreException;
@@ -783,7 +785,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
return;
final Object tu = locTask.fTu;
final IScannerInfo scannerInfo= fResolver.getBuildConfiguration(linkageID, tu);
- parseFile(tu, linkageID, ifl, scannerInfo, null, monitor);
+ parseFile(tu, getLanguage(tu, linkageID), ifl, scannerInfo, null, monitor);
}
}
@@ -817,7 +819,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
return;
final Object tu = locTask.fTu;
final IScannerInfo scannerInfo= fResolver.getBuildConfiguration(linkageID, tu);
- parseFile(tu, linkageID, ifl, scannerInfo, null, monitor);
+ parseFile(tu, getLanguage(tu, linkageID), ifl, scannerInfo, null, monitor);
if (locTask.isCompleted())
it.remove();
@@ -870,8 +872,24 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
return;
final IScannerInfo scannerInfo= fResolver.getBuildConfiguration(linkageID, contextTu);
- FileContext ctx= new FileContext(ctxFile, headerFile);
- parseFile(tu, linkageID, ifl, scannerInfo, ctx, monitor);
+ final AbstractLanguage language = getLanguage(contextTu, linkageID);
+ final FileContext ctx= new FileContext(ctxFile, headerFile);
+ Set dependencies= null;
+ boolean done= false;
+ while (!done) {
+ done= true;
+ DependsOnOutdatedFileException d= parseFile(tu, language, ifl, scannerInfo, ctx, monitor);
+ if (d != null) {
+ // File was not parsed, because there is a dependency that needs to be
+ // handled before
+ if (dependencies == null)
+ dependencies= new HashSet();
+ if (dependencies.add(d.fIndexFile)) {
+ if (parseFile(d.fTu, language, d.fIndexFile.getLocation(), scannerInfo, new FileContext(ctxFile, d.fIndexFile), monitor) == null)
+ done= false;
+ }
+ }
+ }
if (!ctx.fLostPragmaOnceSemantics)
return;
@@ -929,21 +947,9 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
}
- private void parseFile(Object tu, int linkageID, IIndexFileLocation ifl, IScannerInfo scanInfo,
+ private DependsOnOutdatedFileException parseFile(Object tu, AbstractLanguage lang, IIndexFileLocation ifl, IScannerInfo scanInfo,
FileContext ctx, IProgressMonitor pm) throws CoreException, InterruptedException {
IPath path= getLabel(ifl);
- AbstractLanguage[] langs= fResolver.getLanguages(tu, true);
- AbstractLanguage lang= null;
- for (AbstractLanguage lang2 : langs) {
- if (lang2.getLinkageID() == linkageID) {
- lang= lang2;
- break;
- }
- }
- if (lang == null) {
- return;
- }
-
Throwable th= null;
try {
if (fShowActivity) {
@@ -951,18 +957,21 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
}
pm.subTask(getMessage(MessageKind.parsingFileTask,
path.lastSegment(), path.removeLastSegments(1).toString()));
- long start= System.currentTimeMillis();
FileContent codeReader= fResolver.getCodeReader(tu);
- IIndexFile[] ctxFiles = ctx == null ? null : new IIndexFile[] {ctx.fContext, ctx.fOldFile};
+ final boolean isSource = fResolver.isSourceUnit(tu);
- IASTTranslationUnit ast= createAST(tu, lang, codeReader, scanInfo, fASTOptions, ctxFiles, pm);
+ long start= System.currentTimeMillis();
+ IASTTranslationUnit ast= createAST(lang, codeReader, scanInfo, isSource, fASTOptions, ctx, pm);
fStatistics.fParsingTime += System.currentTimeMillis() - start;
if (ast != null) {
- writeToIndex(linkageID, ast, codeReader.getContentsHash(), ctx, pm);
+ writeToIndex(lang.getLinkageID(), ast, codeReader.getContentsHash(), ctx, pm);
}
} catch (CoreException e) {
th= e;
} catch (RuntimeException e) {
+ final Throwable cause = e.getCause();
+ if (cause instanceof DependsOnOutdatedFileException)
+ return (DependsOnOutdatedFileException) cause;
th= e;
} catch (StackOverflowError e) {
th= e;
@@ -976,6 +985,16 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
if (th != null) {
swallowError(path, th);
}
+ return null;
+ }
+
+ private AbstractLanguage getLanguage(Object tu, int linkageID) {
+ for (AbstractLanguage language : fResolver.getLanguages(tu, true)) {
+ if (language.getLinkageID() == linkageID) {
+ return language;
+ }
+ }
+ return null;
}
private IPath getLabel(IIndexFileLocation ifl) {
@@ -1033,13 +1052,13 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
return e;
}
- private final IASTTranslationUnit createAST(Object tu, AbstractLanguage language,
- FileContent codeReader, IScannerInfo scanInfo, int options,
- IIndexFile[] ctx2header, IProgressMonitor pm) throws CoreException {
+ private final IASTTranslationUnit createAST(AbstractLanguage language, FileContent codeReader,
+ IScannerInfo scanInfo, boolean isSource, int options,
+ FileContext ctx, IProgressMonitor pm) throws CoreException {
if (codeReader == null) {
return null;
}
- if (fResolver.isSourceUnit(tu)) {
+ if (isSource) {
options |= ILanguage.OPTION_IS_SOURCE_UNIT;
}
if (fFileSizeLimit > 0 && fResolver.getFileSize(codeReader.getFileLocation()) > fFileSizeLimit) {
@@ -1048,6 +1067,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
}
return null;
}
+ final IIndexFile[] ctx2header = ctx == null ? null : new IIndexFile[] {ctx.fContext, ctx.fOldFile};
if (fCodeReaderFactory == null) {
InternalFileContentProvider fileContentProvider = createInternalFileContentProvider();
if (fIsFastIndexer) {
@@ -1163,14 +1183,14 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
}
public final IndexFileContent getFileContent(int linkageID, IIndexFileLocation ifl,
- IIndexFile file) throws CoreException {
+ IIndexFile file) throws CoreException, DependsOnOutdatedFileException {
LinkageTask map = findRequestMap(linkageID);
if (map != null) {
LocationTask request= map.find(ifl);
if (request != null) {
FileVersionTask task= request.findVersion(file);
if (task != null && task.fOutdated)
- return null;
+ throw new DependsOnOutdatedFileException(request.fTu, task.fIndexFile);
}
}
IndexFileContent fc= fIndexContentCache.get(file);
From 5c70f146df46ea0628231f0f4002b7e530e79c4e Mon Sep 17 00:00:00 2001
From: Marc Khouzam
Date: Fri, 23 Dec 2011 09:49:51 -0500
Subject: [PATCH 15/60] Bug 365471: Explicitly set 'target-async off'
---
.../gdb/launching/FinalLaunchSequence.java | 17 ++++-
.../launching/FinalLaunchSequence_7_0.java | 62 +++++++++++++++++++
.../launching/FinalLaunchSequence_7_2.java | 5 +-
.../gdb/service/command/GDBControl_7_0.java | 20 ++++--
4 files changed, 95 insertions(+), 9 deletions(-)
create mode 100644 dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence_7_0.java
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence.java
index 9ab997480a6..92ee9fb219d 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence.java
@@ -11,6 +11,7 @@
* IBM Corporation
* Jens Elmenthaler (Verigy) - Added Full GDB pretty-printing support (bug 302121)
* Sergey Prigogin (Google)
+ * Marc Khouzam (Ericsson) - No longer call method to check non-stop for GDB < 7.0 (Bug 365471)
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.launching;
@@ -79,7 +80,6 @@ public class FinalLaunchSequence extends ReflectionSequence {
"stepSetBreakpointPending", //$NON-NLS-1$
"stepEnablePrettyPrinting", //$NON-NLS-1$
"stepSourceGDBInitFile", //$NON-NLS-1$
- "stepSetNonStop", //$NON-NLS-1$
"stepSetAutoLoadSharedLibrarySymbols", //$NON-NLS-1$
"stepSetSharedLibraryPaths", //$NON-NLS-1$
@@ -251,6 +251,9 @@ public class FinalLaunchSequence extends ReflectionSequence {
* Enable non-stop mode if requested.
* @since 4.0
*/
+ // Keep this method in this class for backwards-compatibility, although
+ // it is called only by sub-classes.
+ // It could be moved to FinalLaunchSequence_7_0, otherwise.
@Execute
public void stepSetNonStop(final RequestMonitor requestMonitor) {
boolean isNonStop = CDebugUtils.getAttribute(
@@ -280,7 +283,17 @@ public class FinalLaunchSequence extends ReflectionSequence {
}
});
} else {
- requestMonitor.done();
+ // Explicitly set target-async to off for all-stop mode.
+ fCommandControl.queueCommand(
+ fCommandFactory.createMIGDBSetTargetAsync(fCommandControl.getContext(), false),
+ new DataRequestMonitor(getExecutor(), requestMonitor) {
+ @Override
+ protected void handleError() {
+ // We should only be calling this for GDB >= 7.0,
+ // but just in case, accept errors for older GDBs
+ requestMonitor.done();
+ }
+ });
}
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence_7_0.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence_7_0.java
new file mode 100644
index 00000000000..19f2d875f8d
--- /dev/null
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence_7_0.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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
+ *
+ * Contributors:
+ * Marc Khouzam (Ericsson) - initial API and implementation (Bug 365471)
+ *******************************************************************************/
+package org.eclipse.cdt.dsf.gdb.launching;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
+import org.eclipse.cdt.dsf.concurrent.RequestMonitorWithProgress;
+import org.eclipse.cdt.dsf.service.DsfSession;
+
+/**
+ * Subclass for GDB >= 7.0.
+ * This class currently sets non-stop mode, or makes
+ * sure target-async is off for all-stop.
+ *
+ * @since 4.1
+ */
+public class FinalLaunchSequence_7_0 extends FinalLaunchSequence {
+
+ public FinalLaunchSequence_7_0(DsfSession session, Map attributes, RequestMonitorWithProgress rm) {
+ super(session, attributes, rm);
+ }
+
+ @Override
+ protected String[] getExecutionOrder(String group) {
+ if (GROUP_TOP_LEVEL.equals(group)) {
+ // Initialize the list with the base class' steps
+ // We need to create a list that we can modify, which is why we create our own ArrayList.
+ List orderList = new ArrayList(Arrays.asList(super.getExecutionOrder(GROUP_TOP_LEVEL)));
+
+ // Now insert our steps right after the initialization of the base class.
+ orderList.add(orderList.indexOf("stepInitializeFinalLaunchSequence") + 1, "stepInitializeFinalLaunchSequence_7_0"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // Note that stepSetNonStop is defined in the base class for backwards-compatibility
+ orderList.add(orderList.indexOf("stepSourceGDBInitFile") + 1, "stepSetNonStop"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ return orderList.toArray(new String[orderList.size()]);
+ }
+
+ return null;
+ }
+
+ /**
+ * Initialize the members of the FinalLaunchSequence_7_0 class.
+ * This step is mandatory for the rest of the sequence to complete.
+ */
+ @Execute
+ public void stepInitializeFinalLaunchSequence_7_0(RequestMonitor rm) {
+ rm.done();
+ }
+}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence_7_2.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence_7_2.java
index ae5cdd7ad35..f5b1683c5a3 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence_7_2.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/FinalLaunchSequence_7_2.java
@@ -7,6 +7,7 @@
*
* Contributors:
* Ericsson - initial API and implementation
+ * Marc Khouzam (Ericsson) - Use new FinalLaunchSequence_7_0 as base class (Bug 365471)
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.launching;
@@ -34,7 +35,7 @@ import org.eclipse.core.runtime.Status;
*
* @since 4.0
*/
-public class FinalLaunchSequence_7_2 extends FinalLaunchSequence {
+public class FinalLaunchSequence_7_2 extends FinalLaunchSequence_7_0 {
private IGDBControl fGdbControl;
private DsfSession fSession;
@@ -56,7 +57,7 @@ public class FinalLaunchSequence_7_2 extends FinalLaunchSequence {
List orderList = new ArrayList(Arrays.asList(super.getExecutionOrder(GROUP_TOP_LEVEL)));
// Now insert our steps right after the initialization of the base class.
- orderList.add(orderList.indexOf("stepInitializeFinalLaunchSequence") + 1, "stepInitializeFinalLaunchSequence_7_2"); //$NON-NLS-1$ //$NON-NLS-2$
+ orderList.add(orderList.indexOf("stepInitializeFinalLaunchSequence_7_0") + 1, "stepInitializeFinalLaunchSequence_7_2"); //$NON-NLS-1$ //$NON-NLS-2$
orderList.add(orderList.indexOf("stepSetBreakpointPending") + 1, "stepDetachOnFork"); //$NON-NLS-1$ //$NON-NLS-2$
return orderList.toArray(new String[orderList.size()]);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java
index 09c8cced6c4..ebbcf745d65 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java
@@ -11,6 +11,7 @@
* Ericsson - New version for 7_0
* Vladimir Prus (CodeSourcery) - Support for -data-read-memory-bytes (bug 322658)
* Jens Elmenthaler (Verigy) - Added Full GDB pretty-printing support (bug 302121)
+ * Marc Khouzam (Ericsson) - Call new FinalLaunchSequence_7_0 (Bug 365471)
*******************************************************************************/
package org.eclipse.cdt.dsf.gdb.service.command;
@@ -38,7 +39,7 @@ import org.eclipse.cdt.dsf.datamodel.AbstractDMEvent;
import org.eclipse.cdt.dsf.debug.service.command.ICommandControl;
import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService;
import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin;
-import org.eclipse.cdt.dsf.gdb.launching.FinalLaunchSequence;
+import org.eclipse.cdt.dsf.gdb.launching.FinalLaunchSequence_7_0;
import org.eclipse.cdt.dsf.gdb.service.IGDBBackend;
import org.eclipse.cdt.dsf.gdb.service.IGDBTraceControl.ITraceRecordSelectedChangedDMEvent;
import org.eclipse.cdt.dsf.mi.service.IMIBackend;
@@ -170,6 +171,7 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl {
}
+ @Override
public String getId() {
return fMIBackend.getId();
}
@@ -179,10 +181,12 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl {
return fControlDmc;
}
+ @Override
public ICommandControlDMContext getContext() {
return fControlDmc;
}
+ @Override
public void terminate(final RequestMonitor rm) {
if (fTerminated) {
rm.done();
@@ -204,6 +208,7 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl {
// runnable will kill the task.
final Future> forceQuitTask = getExecutor().schedule(
new DsfRunnable() {
+ @Override
public void run() {
fMIBackend.destroy();
rm.done();
@@ -246,6 +251,7 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl {
});
}
+ @Override
public AbstractCLIProcess getCLIProcess() {
return fCLIProcess;
}
@@ -253,11 +259,13 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl {
/**
* @since 2.0
*/
+ @Override
public void setTracingStream(OutputStream tracingStream) {
setMITracingStream(tracingStream);
}
/** @since 3.0 */
+ @Override
public void setEnvironment(Properties props, boolean clear, RequestMonitor rm) {
int count = 0;
CountingRequestMonitor countingRm = new CountingRequestMonitor(getExecutor(), rm);
@@ -285,6 +293,7 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl {
/**
* @since 4.0
*/
+ @Override
@SuppressWarnings("unchecked")
public void completeInitialization(final RequestMonitor rm) {
// We take the attributes from the launchConfiguration
@@ -321,10 +330,11 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl {
* @since 4.0
*/
protected Sequence getCompleteInitializationSequence(Map attributes, RequestMonitorWithProgress rm) {
- return new FinalLaunchSequence(getSession(), attributes, rm);
+ return new FinalLaunchSequence_7_0(getSession(), attributes, rm);
}
/**@since 4.0 */
+ @Override
public List getFeatures() {
return fFeatures;
}
@@ -468,9 +478,8 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl {
/**
* @since 4.0
*/
- public void enablePrettyPrintingForMIVariableObjects(
- final RequestMonitor rm) {
-
+ @Override
+ public void enablePrettyPrintingForMIVariableObjects(RequestMonitor rm) {
queueCommand(
getCommandFactory().createMIEnablePrettyPrinting(fControlDmc),
new DataRequestMonitor(getExecutor(), rm));
@@ -479,6 +488,7 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl {
/**
* @since 4.0
*/
+ @Override
public void setPrintPythonErrors(boolean enabled, RequestMonitor rm) {
String subCommand = "set python print-stack " + (enabled ? "on" : "off"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
From dd2d478fc16438fd2dd30da103012e63596825e8 Mon Sep 17 00:00:00 2001
From: Sergey Prigogin
Date: Fri, 23 Dec 2011 14:38:21 -0500
Subject: [PATCH 16/60] Bug 365461: Requesting -Wextra and -Wconversion
warnings flags for gcc c/c++
---
.../plugin.properties | 2 ++
.../plugin.xml | 32 +++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties
index b6eb4cb9230..ea1c1abd6ae 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties
@@ -141,7 +141,9 @@ Option.Posix.Warn.Pedandic=Pedantic (-pedantic)
Option.Posix.Warn.PedErrors=Pedantic warnings as errors (-pedantic-errors)
Option.Posix.Warn.nowarn=Inhibit all warnings (-w)
Option.Posix.Warn.allwarn=All warnings (-Wall)
+Option.Posix.Warn.extrawarn=Extra warnings (-Wextra)
Option.Posix.Warn.toerrs=Warnings as errors (-Werror)
+Option.Posix.Warn.wconversion=Implicit conversion warnings (-Wconversion)
Option.Posix.Verbose=Verbose (-v)
Option.OtherFlags=Other flags
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml
index ddc4c317689..146c331769c 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml
@@ -1202,6 +1202,14 @@
id="gnu.c.compiler.option.warnings.allwarn"
valueType="boolean">
+
+
+
+
Date: Fri, 23 Dec 2011 15:08:56 -0500
Subject: [PATCH 17/60] Bug 317173: Fix new warnings of missing @Override now
that we use java 6, in org.eclipse.cdt.dsf.gdb
---
.../CBreakpointGdbThreadsFilterExtension.java | 7 ++++
.../gdb/internal/memory/GdbMemoryBlock.java | 2 ++
.../memory/GdbMemoryBlockRetrieval.java | 9 +++++
.../AbstractTracepointAction.java | 1 +
.../tracepointactions/CollectAction.java | 6 ++++
.../tracepointactions/EvaluateAction.java | 6 ++++
.../WhileSteppingAction.java | 6 ++++
.../cdt/dsf/gdb/launching/GdbLaunch.java | 3 ++
.../dsf/gdb/launching/ShutdownSequence.java | 1 +
.../cdt/dsf/mi/service/CSourceLookup.java | 2 ++
.../dsf/mi/service/MIBreakpointDMData.java | 9 +++++
.../cdt/dsf/mi/service/MIBreakpoints.java | 7 ++++
.../dsf/mi/service/MIBreakpointsManager.java | 14 +++++---
.../cdt/dsf/mi/service/MIDisassembly.java | 4 +++
.../cdt/dsf/mi/service/MIExpressions.java | 33 +++++++++++++++++++
.../eclipse/cdt/dsf/mi/service/MIMemory.java | 5 +++
.../eclipse/cdt/dsf/mi/service/MIModules.java | 14 +++++++-
.../cdt/dsf/mi/service/MIProcesses.java | 28 ++++++++++++++++
.../cdt/dsf/mi/service/MIRegisters.java | 28 ++++++++++++++++
.../cdt/dsf/mi/service/MIRunControl.java | 32 ++++++++++++++++++
.../eclipse/cdt/dsf/mi/service/MIStack.java | 18 ++++++++++
.../cdt/dsf/mi/service/MIVariableManager.java | 7 ++++
.../actions/BreakpointActionAdapter.java | 1 +
.../actions/MILogActionEnabler.java | 1 +
.../actions/MIResumeActionEnabler.java | 2 ++
.../service/command/AbstractCLIProcess.java | 9 +++--
.../mi/service/command/AbstractMIControl.java | 17 ++++++++++
.../mi/service/command/CLIEventProcessor.java | 5 +++
.../command/CLIEventProcessor_7_0.java | 7 ++--
.../service/command/MIBackendCLIProcess.java | 3 +-
.../service/command/MIControlDMContext.java | 1 +
.../mi/service/command/MIInferiorProcess.java | 6 ++++
.../command/MIRunControlEventProcessor.java | 5 +++
.../MIRunControlEventProcessor_7_0.java | 5 +++
.../command/commands/ExprMetaCommand.java | 2 ++
.../command/commands/MIBreakCondition.java | 1 +
.../service/command/commands/MICommand.java | 5 +++
.../output/ExprMetaGetAttributesInfo.java | 1 +
.../output/ExprMetaGetChildCountInfo.java | 1 +
.../output/ExprMetaGetChildrenInfo.java | 1 +
.../command/output/ExprMetaGetValueInfo.java | 1 +
.../command/output/ExprMetaGetVarInfo.java | 1 +
.../dsf/mi/service/command/output/MIInfo.java | 1 +
.../service/command/output/MIInstruction.java | 6 ++++
.../output/MIListThreadGroupsInfo.java | 9 +++++
.../command/output/MIMixedInstruction.java | 3 ++
.../command/output/MIThreadListIdsInfo.java | 1 +
47 files changed, 327 insertions(+), 10 deletions(-)
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/CBreakpointGdbThreadsFilterExtension.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/CBreakpointGdbThreadsFilterExtension.java
index 74d59bb728d..a9c4e41f203 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/CBreakpointGdbThreadsFilterExtension.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/breakpoints/CBreakpointGdbThreadsFilterExtension.java
@@ -34,12 +34,14 @@ public class CBreakpointGdbThreadsFilterExtension implements IDsfBreakpointExten
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.core.model.ICBreakpointExtension#initialize(org.eclipse.cdt.debug.core.model.ICBreakpoint)
*/
+ @Override
public void initialize(ICBreakpoint breakpoint) {
}
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.core.model.ICBreakpoint#getTargetFilters()
*/
+ @Override
public IContainerDMContext[] getTargetFilters() throws CoreException {
Set set = fFilteredThreadsByTarget.keySet();
return set.toArray( new IContainerDMContext[set.size()] );
@@ -48,6 +50,7 @@ public class CBreakpointGdbThreadsFilterExtension implements IDsfBreakpointExten
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.core.model.ICBreakpoint#getThreadFilters(org.eclipse.cdt.debug.core.model.ICDebugTarget)
*/
+ @Override
public IExecutionDMContext[] getThreadFilters( IContainerDMContext target ) throws CoreException {
Set set = fFilteredThreadsByTarget.get( target );
return ( set != null ) ? set.toArray( new IExecutionDMContext[set.size()] ) : null;
@@ -56,6 +59,7 @@ public class CBreakpointGdbThreadsFilterExtension implements IDsfBreakpointExten
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.core.model.ICBreakpoint#removeTargetFilter(org.eclipse.cdt.debug.core.model.ICDebugTarget)
*/
+ @Override
public void removeTargetFilter( IContainerDMContext target ) throws CoreException {
if ( fFilteredThreadsByTarget.containsKey( target ) ) {
fFilteredThreadsByTarget.remove( target );
@@ -65,6 +69,7 @@ public class CBreakpointGdbThreadsFilterExtension implements IDsfBreakpointExten
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.core.model.ICBreakpoint#removeThreadFilters(org.eclipse.cdt.debug.core.model.ICThread[])
*/
+ @Override
public void removeThreadFilters( IExecutionDMContext[] threads ) throws CoreException {
if ( threads != null && threads.length > 0 ) {
IContainerDMContext target = DMContexts.getAncestorOfType(threads[0], IContainerDMContext.class);
@@ -83,6 +88,7 @@ public class CBreakpointGdbThreadsFilterExtension implements IDsfBreakpointExten
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.core.model.ICBreakpoint#setTargetFilter(org.eclipse.cdt.debug.core.model.ICDebugTarget)
*/
+ @Override
public void setTargetFilter( IContainerDMContext target ) throws CoreException {
fFilteredThreadsByTarget.put( target, null );
}
@@ -90,6 +96,7 @@ public class CBreakpointGdbThreadsFilterExtension implements IDsfBreakpointExten
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.core.model.ICBreakpoint#setThreadFilters(org.eclipse.cdt.debug.core.model.ICThread[])
*/
+ @Override
public void setThreadFilters( IExecutionDMContext[] threads ) throws CoreException {
if ( threads != null && threads.length > 0 ) {
IContainerDMContext target = DMContexts.getAncestorOfType(threads[0], IContainerDMContext.class);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/memory/GdbMemoryBlock.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/memory/GdbMemoryBlock.java
index 7f19800fbd9..802e89834ec 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/memory/GdbMemoryBlock.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/memory/GdbMemoryBlock.java
@@ -70,6 +70,7 @@ public class GdbMemoryBlock extends DsfMemoryBlock implements IMemorySpaceAwareM
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IMemorySpaces.IMemorySpaceDMContext#getMemorySpaceId()
*/
+ @Override
public String getMemorySpaceId() {
return fMemorySpaceId;
}
@@ -245,6 +246,7 @@ public class GdbMemoryBlock extends DsfMemoryBlock implements IMemorySpaceAwareM
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.core.model.provisional.IMemorySpaceAwareMemoryBlock#getMemorySpaceID()
*/
+ @Override
public String getMemorySpaceID() {
return fMemorySpaceID;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/memory/GdbMemoryBlockRetrieval.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/memory/GdbMemoryBlockRetrieval.java
index 1081e67f2f7..61184df3544 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/memory/GdbMemoryBlockRetrieval.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/memory/GdbMemoryBlockRetrieval.java
@@ -106,6 +106,7 @@ public class GdbMemoryBlockRetrieval extends DsfMemoryBlockRetrieval implements
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.core.model.provisional.IMemorySpaceAwareMemoryBlockRetrieval#getExtendedMemoryBlock(java.lang.String, java.lang.Object, java.lang.String)
*/
+ @Override
public IMemorySpaceAwareMemoryBlock getMemoryBlock(String expression, Object context, String memorySpaceID) throws DebugException {
// Drill for the actual DMC
IMemoryDMContext memoryDmc = null;
@@ -185,6 +186,7 @@ public class GdbMemoryBlockRetrieval extends DsfMemoryBlockRetrieval implements
* implementation of
* @see org.eclipse.cdt.debug.internal.core.model.provisional.IMemorySpaceManagement#getMemorySpaces(Object context)
*/
+ @Override
public void getMemorySpaces(final Object context, final GetMemorySpacesRequest request) {
Query query = new Query() {
@Override
@@ -227,6 +229,7 @@ public class GdbMemoryBlockRetrieval extends DsfMemoryBlockRetrieval implements
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.core.model.provisional.IMemorySpaceAwareMemoryBlockRetrieval#encodeAddress(java.lang.String, java.lang.String)
*/
+ @Override
public String encodeAddress(String expression, String memorySpaceID) {
String result = null;
IMemorySpaces service = (IMemorySpaces)fMemorySpaceServiceTracker.getService();
@@ -244,13 +247,16 @@ public class GdbMemoryBlockRetrieval extends DsfMemoryBlockRetrieval implements
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.core.model.provisional.IMemorySpaceAwareMemoryBlockRetrieval#decodeAddress(java.lang.String)
*/
+ @Override
public DecodeResult decodeAddress(String str) throws CoreException {
IMemorySpaces service = (IMemorySpaces)fMemorySpaceServiceTracker.getService();
if (service != null) {
final IMemorySpaces.DecodeResult result = service.decodeAddress(str);
if (result != null) { // service can return null to tell use to use default decoding
return new DecodeResult() {
+ @Override
public String getMemorySpaceId() { return result.getMemorySpaceId(); }
+ @Override
public String getExpression() { return result.getExpression(); }
};
}
@@ -265,7 +271,9 @@ public class GdbMemoryBlockRetrieval extends DsfMemoryBlockRetrieval implements
final String memorySpaceID = str.substring(0, index);
final String expression = (index < str.length()-1) ? str.substring(index+1) : ""; //$NON-NLS-1$
return new DecodeResult() {
+ @Override
public String getMemorySpaceId() { return memorySpaceID; }
+ @Override
public String getExpression() { return expression; }
};
@@ -365,6 +373,7 @@ public class GdbMemoryBlockRetrieval extends DsfMemoryBlockRetrieval implements
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.core.model.provisional.IMemorySpaceAwareMemoryBlockRetrieval#creatingBlockRequiresMemorySpaceID()
*/
+ @Override
public boolean creatingBlockRequiresMemorySpaceID() {
IMemorySpaces service = (IMemorySpaces)fMemorySpaceServiceTracker.getService();
if (service != null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/AbstractTracepointAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/AbstractTracepointAction.java
index 9f6f25e13be..82f7450db10 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/AbstractTracepointAction.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/AbstractTracepointAction.java
@@ -25,6 +25,7 @@ public abstract class AbstractTracepointAction extends AbstractBreakpointAction
/**
* Tracepoint commands, by default, are not executed in Eclipse, but are executed by the backend.
*/
+ @Override
public IStatus execute(IBreakpoint breakpoint, IAdaptable context, IProgressMonitor monitor) {
return new Status(IStatus.OK, GdbPlugin.PLUGIN_ID, null);
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/CollectAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/CollectAction.java
index ee082704b51..b69eba9985a 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/CollectAction.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/CollectAction.java
@@ -37,6 +37,7 @@ public class CollectAction extends AbstractTracepointAction {
private String fCollectString = ""; //$NON-NLS-1$
+ @Override
public String getDefaultName() {
return MessagesForTracepointActions.TracepointActions_Untitled_Collect;
}
@@ -49,10 +50,12 @@ public class CollectAction extends AbstractTracepointAction {
fCollectString = str;
}
+ @Override
public String getIdentifier() {
return COLLECT_ACTION_ID;
}
+ @Override
public String getMemento() {
String collectData = new String(""); //$NON-NLS-1$
@@ -86,14 +89,17 @@ public class CollectAction extends AbstractTracepointAction {
return collectData;
}
+ @Override
public String getSummary() {
return MessageFormat.format(MessagesForTracepointActions.TracepointActions_Collect_text, new Object[] { fCollectString });
}
+ @Override
public String getTypeName() {
return MessagesForTracepointActions.TracepointActions_Collect_Name;
}
+ @Override
public void initializeFromMemento(String data) {
Element root = null;
DocumentBuilder parser;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/EvaluateAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/EvaluateAction.java
index 0d51805c130..da8a8a7574a 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/EvaluateAction.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/EvaluateAction.java
@@ -36,6 +36,7 @@ public class EvaluateAction extends AbstractTracepointAction {
private String fEvalString = ""; //$NON-NLS-1$
+ @Override
public String getDefaultName() {
return MessagesForTracepointActions.TracepointActions_Untitled_Evaluate;
}
@@ -48,10 +49,12 @@ public class EvaluateAction extends AbstractTracepointAction {
fEvalString = str;
}
+ @Override
public String getIdentifier() {
return EVALUATE_ACTION_ID;
}
+ @Override
public String getMemento() {
String collectData = new String(""); //$NON-NLS-1$
@@ -85,14 +88,17 @@ public class EvaluateAction extends AbstractTracepointAction {
return collectData;
}
+ @Override
public String getSummary() {
return MessageFormat.format(MessagesForTracepointActions.TracepointActions_Evaluate_text, new Object[] { fEvalString });
}
+ @Override
public String getTypeName() {
return MessagesForTracepointActions.TracepointActions_Evaluate_Name;
}
+ @Override
public void initializeFromMemento(String data) {
Element root = null;
DocumentBuilder parser;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/WhileSteppingAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/WhileSteppingAction.java
index bfbb96713b2..8c509cd5267 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/WhileSteppingAction.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/tracepointactions/WhileSteppingAction.java
@@ -42,6 +42,7 @@ public class WhileSteppingAction extends AbstractTracepointAction {
// The number of steps this while-stepping command will occur
private int fStepCount = 1;
+ @Override
public String getDefaultName() {
return MessagesForTracepointActions.TracepointActions_Untitled_WhileStepping;
}
@@ -84,10 +85,12 @@ public class WhileSteppingAction extends AbstractTracepointAction {
fStepCount = count;
}
+ @Override
public String getIdentifier() {
return WHILE_STEPPING_ACTION_ID;
}
+ @Override
public String getMemento() {
String collectData = new String(""); //$NON-NLS-1$
@@ -122,14 +125,17 @@ public class WhileSteppingAction extends AbstractTracepointAction {
return collectData;
}
+ @Override
public String getSummary() {
return MessageFormat.format(MessagesForTracepointActions.TracepointActions_WhileStepping_text, new Object[] { fStepCount, fSubActionContent });
}
+ @Override
public String getTypeName() {
return MessagesForTracepointActions.TracepointActions_WhileStepping_Name;
}
+ @Override
public void initializeFromMemento(String data) {
Element root = null;
DocumentBuilder parser;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/GdbLaunch.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/GdbLaunch.java
index 699795ae7e6..c12d53cf518 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/GdbLaunch.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/GdbLaunch.java
@@ -103,6 +103,7 @@ public class GdbLaunch extends DsfLaunch
fSession.registerModelAdapter(ILaunch.class, this);
Runnable initRunnable = new DsfRunnable() {
+ @Override
public void run() {
fTracker = new DsfServicesTracker(GdbPlugin.getBundleContext(), fSession.getId());
fSession.addServiceEventListener(GdbLaunch.this, null);
@@ -128,6 +129,7 @@ public class GdbLaunch extends DsfLaunch
// Create a memory retrieval and register it with the session
try {
fExecutor.submit( new Callable() {
+ @Override
public Object call() throws CoreException {
ICommandControlService commandControl = fTracker.getService(ICommandControlService.class);
IMIProcesses procService = fTracker.getService(IMIProcesses.class);
@@ -160,6 +162,7 @@ public class GdbLaunch extends DsfLaunch
// Add the CLI process object to the launch.
AbstractCLIProcess cliProc =
getDsfExecutor().submit( new Callable() {
+ @Override
public AbstractCLIProcess call() throws CoreException {
IGDBControl gdb = fTracker.getService(IGDBControl.class);
if (gdb != null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/ShutdownSequence.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/ShutdownSequence.java
index 59bb8d964b8..7f7a1256583 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/ShutdownSequence.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/ShutdownSequence.java
@@ -93,6 +93,7 @@ public class ShutdownSequence extends Sequence {
}
Collections.sort( services, new Comparator() {
+ @Override
public int compare( IDsfService o1, IDsfService o2 ) {
return o2.getStartupNumber() - o1.getStartupNumber();
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/CSourceLookup.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/CSourceLookup.java
index b93975d2c57..5afc35c68dd 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/CSourceLookup.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/CSourceLookup.java
@@ -148,6 +148,7 @@ public class CSourceLookup extends AbstractDsfService implements ISourceLookup {
super.shutdown(requestMonitor);
}
+ @Override
public void getDebuggerPath(ISourceLookupDMContext sourceLookupCtx, Object source, final DataRequestMonitor rm) {
if (!(source instanceof String)) {
// In future if needed other elements such as URIs could be supported.
@@ -179,6 +180,7 @@ public class CSourceLookup extends AbstractDsfService implements ISourceLookup {
}.schedule();
}
+ @Override
public void getSource(ISourceLookupDMContext sourceLookupCtx, final String debuggerPath, final DataRequestMonitor rm) {
if (!fDirectors.containsKey(sourceLookupCtx)) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID,
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointDMData.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointDMData.java
index afe3b74f9fa..e9e311cfc34 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointDMData.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointDMData.java
@@ -218,6 +218,7 @@ public class MIBreakpointDMData implements IBreakpointDMData {
// IBreakpointDMData
///////////////////////////////////////////////////////////////////////////
+ @Override
public String getBreakpointType() {
return (String) fProperties.get(MIBreakpoints.BREAKPOINT_TYPE);
}
@@ -226,36 +227,44 @@ public class MIBreakpointDMData implements IBreakpointDMData {
return fBreakpoint.getNumber();
}
+ @Override
public IAddress[] getAddresses() {
IAddress[] addresses = new IAddress[1];
addresses[0] = new Addr64(fBreakpoint.getAddress());
return addresses;
}
+ @Override
public String getCondition() {
return fBreakpoint.getCondition();
}
+ @Override
public String getExpression() {
return fBreakpoint.getExpression();
}
+ @Override
public String getFileName() {
return fBreakpoint.getFile();
}
+ @Override
public String getFunctionName() {
return fBreakpoint.getFunction();
}
+ @Override
public int getIgnoreCount() {
return fBreakpoint.getIgnoreCount();
}
+ @Override
public int getLineNumber() {
return fBreakpoint.getLine();
}
+ @Override
public boolean isEnabled() {
return fBreakpoint.isEnabled();
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java
index c449af45af7..345b35b49dd 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java
@@ -188,6 +188,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
super(DMContexts.getAncestorOfType(bp, IBreakpointsTargetDMContext.class));
fEventBreakpoints = new IBreakpointDMContext[] { bp };
}
+ @Override
public IBreakpointDMContext[] getBreakpoints() {
return fEventBreakpoints;
}
@@ -383,6 +384,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IBreakpoints#getBreakpoints(org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getBreakpoints(final IBreakpointsTargetDMContext context, final DataRequestMonitor drm)
{
// Validate the context
@@ -430,6 +432,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IBreakpoints#getBreakpointDMData(org.eclipse.cdt.dsf.debug.service.IBreakpoints.IDsfBreakpointDMContext, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getBreakpointDMData(IBreakpointDMContext dmc, DataRequestMonitor drm)
{
// Validate the breakpoint context
@@ -479,6 +482,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IBreakpoints#insertBreakpoint(org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext, java.util.Map, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void insertBreakpoint(IBreakpointsTargetDMContext context, Map attributes, DataRequestMonitor drm) {
// Validate the context
@@ -524,6 +528,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
/**
* @since 3.0
*/
+ @Override
public void getExecutionContextBreakpoints(IExecutionDMContext ctx, DataRequestMonitor rm) {
IBreakpointDMContext[] bps = fBreakpointHitMap.get(ctx);
if (bps == null && ctx instanceof IContainerDMContext) {
@@ -866,6 +871,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IBreakpoints#removeBreakpoint(org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointDMContext, org.eclipse.cdt.dsf.concurrent.RequestMonitor)
*/
+ @Override
public void removeBreakpoint(final IBreakpointDMContext dmc, final RequestMonitor finalRm) {
// Validate the breakpoint context
@@ -940,6 +946,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IBreakpoints#updateBreakpoint(org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointDMContext, java.util.Map, org.eclipse.cdt.dsf.concurrent.RequestMonitor)
*/
+ @Override
public void updateBreakpoint(IBreakpointDMContext dmc, Map properties, RequestMonitor rm)
{
// Validate the breakpoint context
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java
index 211992419e0..d9f92ccf869 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java
@@ -365,7 +365,8 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
protected IStatus run(IProgressMonitor monitor) {
// Submit the runnable to plant the breakpoints on dispatch thread.
getExecutor().submit(new Runnable() {
- public void run() {
+ @Override
+ public void run() {
installInitialBreakpoints(dmc, rm);
}
});
@@ -399,7 +400,6 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(fDebugModelId);
for (IBreakpoint breakpoint : breakpoints) {
if (supportsBreakpoint(breakpoint)) {
- @SuppressWarnings("unchecked")
Map attributes = breakpoint.getMarker().getAttributes();
attributes.put(ATTR_DEBUGGER_PATH, NULL_STRING);
attributes.put(ATTR_THREAD_FILTER, extractThreads(dmc, (ICBreakpoint) breakpoint));
@@ -1108,6 +1108,7 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
/* (non-Javadoc)
* @see org.eclipse.debug.core.IBreakpointManagerListener#breakpointManagerEnablementChanged(boolean)
*/
+ @Override
public void breakpointManagerEnablementChanged(boolean enabled) {
// Only modify enabled breakpoints
@@ -1136,15 +1137,16 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
* @see org.eclipse.debug.core.IBreakpointListener#breakpointAdded(org.eclipse.debug.core.model.IBreakpoint)
*/
@ThreadSafe
+ @Override
public void breakpointAdded(final IBreakpoint breakpoint) {
if (supportsBreakpoint(breakpoint)) {
try {
// Retrieve the breakpoint attributes
- @SuppressWarnings("unchecked")
final Map attrs = breakpoint.getMarker().getAttributes();
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
final CountingRequestMonitor countingRm = new CountingRequestMonitor(getExecutor(), null) {
@Override
@@ -1199,13 +1201,13 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
/* (non-Javadoc)
* @see org.eclipse.debug.core.IBreakpointListener#breakpointChanged(org.eclipse.debug.core.model.IBreakpoint, org.eclipse.core.resources.IMarkerDelta)
*/
+ @Override
public void breakpointChanged(final IBreakpoint breakpoint, final IMarkerDelta delta) {
if (supportsBreakpoint(breakpoint)) {
try {
// Retrieve the breakpoint attributes
- @SuppressWarnings("unchecked")
final Map attrs = breakpoint.getMarker().getAttributes();
// Tracepoints are not affected by "skip-all"
if (!(breakpoint instanceof ICTracepoint) && !fBreakpointManager.isEnabled()) {
@@ -1214,6 +1216,7 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
// Modify the breakpoint in all the target contexts
getExecutor().execute( new DsfRunnable() {
+ @Override
public void run() {
// If the breakpoint is currently being updated, queue the request and exit
@@ -1269,11 +1272,13 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
/* (non-Javadoc)
* @see org.eclipse.debug.core.IBreakpointListener#breakpointRemoved(org.eclipse.debug.core.model.IBreakpoint, org.eclipse.core.resources.IMarkerDelta)
*/
+ @Override
public void breakpointRemoved(final IBreakpoint breakpoint, IMarkerDelta delta) {
if (supportsBreakpoint(breakpoint)) {
try {
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
CountingRequestMonitor countingRm = new CountingRequestMonitor(getExecutor(), null) {
@Override
@@ -1448,6 +1453,7 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
private void clearBreakpointStatus(final ICBreakpoint[] bps, final IBreakpointsTargetDMContext ctx)
{
IWorkspaceRunnable wr = new IWorkspaceRunnable() {
+ @Override
public void run(IProgressMonitor monitor) throws CoreException {
// For every platform breakpoint that has at least one target breakpoint installed
// we must decrement the install count, for every target breakpoint.
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIDisassembly.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIDisassembly.java
index 3486217ddde..bdbd630da8b 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIDisassembly.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIDisassembly.java
@@ -97,6 +97,7 @@ public class MIDisassembly extends AbstractDsfService implements IDisassembly {
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IDisassembly#getInstructions(org.eclipse.cdt.dsf.debug.service.IDisassembly.IDisassemblyDMContext, java.math.BigInteger, java.math.BigInteger, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getInstructions(IDisassemblyDMContext context,
BigInteger startAddress, BigInteger endAddress,
final DataRequestMonitor drm)
@@ -125,6 +126,7 @@ public class MIDisassembly extends AbstractDsfService implements IDisassembly {
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IDisassembly#getInstructions(org.eclipse.cdt.dsf.debug.service.IDisassembly.IDisassemblyDMContext, java.lang.String, int, int, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getInstructions(IDisassemblyDMContext context, String filename,
int linenum, int lines, final DataRequestMonitor drm)
{
@@ -150,6 +152,7 @@ public class MIDisassembly extends AbstractDsfService implements IDisassembly {
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IDisassembly#getMixedInstructions(org.eclipse.cdt.dsf.debug.service.IDisassembly.IDisassemblyDMContext, java.math.BigInteger, java.math.BigInteger, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getMixedInstructions(IDisassemblyDMContext context,
BigInteger startAddress, BigInteger endAddress,
final DataRequestMonitor drm)
@@ -178,6 +181,7 @@ public class MIDisassembly extends AbstractDsfService implements IDisassembly {
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IDisassembly#getMixedInstructions(org.eclipse.cdt.dsf.debug.service.IDisassembly.IDisassemblyDMContext, java.lang.String, int, int, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getMixedInstructions(IDisassemblyDMContext context,
String filename, int linenum, int lines,
final DataRequestMonitor drm)
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIExpressions.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIExpressions.java
index e0a567f4fdc..9f978a8a274 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIExpressions.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIExpressions.java
@@ -349,6 +349,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
/**
* @return The full expression string represented by this ExpressionDMC
*/
+ @Override
public String getExpression() {
return exprInfo.getFullExpr();
}
@@ -407,6 +408,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
return baseToString() + ".invalid_expr[" + expression + "]"; //$NON-NLS-1$ //$NON-NLS-2$
}
+ @Override
public String getExpression() {
return expression;
}
@@ -437,7 +439,9 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
}
}
+ @Override
public IAddress getAddress() { return fAddr; }
+ @Override
public int getSize() { return fSize; }
@Override
@@ -468,14 +472,17 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
*/
protected class InvalidDMAddress implements IExpressionDMLocation {
+ @Override
public IAddress getAddress() {
return IExpressions.IExpressionDMLocation.INVALID_ADDRESS;
}
+ @Override
public int getSize() {
return 0;
}
+ @Override
public String getLocation() {
return ""; //$NON-NLS-1$
}
@@ -525,22 +532,27 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
fBasicType = basicType;
}
+ @Override
public BasicType getBasicType() {
return fBasicType;
}
+ @Override
public String getEncoding() {
return null;
}
+ @Override
public Map getEnumerations() {
return new HashMap();
}
+ @Override
public String getName() {
return relativeExpression;
}
+ @Override
public IRegisterDMContext getRegister() {
return null;
}
@@ -550,10 +562,12 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
return null;
}
+ @Override
public String getTypeId() {
return null;
}
+ @Override
public String getTypeName() {
return exprType;
}
@@ -586,6 +600,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
/**
* @since 4.0
*/
+ @Override
public boolean hasChildren() {
return numChildrenHint > 0;
}
@@ -739,6 +754,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
/**
* Create an expression context with the same full and relative expression
*/
+ @Override
public IExpressionDMContext createExpression(IDMContext ctx, String expression) {
return createExpression(ctx, expression, expression);
}
@@ -797,6 +813,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* of an expression in a specific format.
*/
+ @Override
public FormattedValueDMContext getFormattedValueContext(
IFormattedDataDMContext dmc, String formatId) {
return new FormattedValueDMContext(this, dmc, formatId);
@@ -813,6 +830,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
*
*/
+ @Override
public void getAvailableFormats(IFormattedDataDMContext dmc,
final DataRequestMonitor rm) {
rm.setData(FORMATS_SUPPORTED);
@@ -828,6 +846,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @param rm
* The data request monitor that will contain the requested data
*/
+ @Override
public void getExpressionData(
final IExpressionDMContext dmc,
final DataRequestMonitor rm)
@@ -892,6 +911,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @param rm
* The data request monitor that will contain the requested data
*/
+ @Override
public void getExpressionAddressData(
IExpressionDMContext dmc,
final DataRequestMonitor rm) {
@@ -961,6 +981,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @param rm
* The data request monitor that will contain the requested data
*/
+ @Override
public void getFormattedExpressionValue(
final FormattedValueDMContext dmc,
final DataRequestMonitor rm)
@@ -1025,6 +1046,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IExpressions#getBaseExpressions(org.eclipse.cdt.dsf.debug.service.IExpressions.IExpressionDMContext, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getBaseExpressions(IExpressionDMContext exprContext,
DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID,
@@ -1041,6 +1063,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @param rm
* The data request monitor that will contain the requested data
*/
+ @Override
public void getSubExpressions(final IExpressionDMContext dmc,
final DataRequestMonitor rm)
{
@@ -1085,6 +1108,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @param rm
* The data request monitor that will contain the requested data
*/
+ @Override
public void getSubExpressions(final IExpressionDMContext exprCtx, final int startIndex,
final int length, final DataRequestMonitor rm) {
@@ -1131,6 +1155,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
/**
* @since 4.0
*/
+ @Override
public void safeToAskForAllSubExpressions(IExpressionDMContext dmc,
final DataRequestMonitor rm) {
if (dmc instanceof MIExpressionDMC) {
@@ -1157,6 +1182,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
/**
* @since 4.0
*/
+ @Override
public void getSubExpressionCount(IExpressionDMContext dmc,
final int numChildLimit, final DataRequestMonitor rm) {
@@ -1188,6 +1214,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @param rm
* The data request monitor that will contain the requested data
*/
+ @Override
public void getSubExpressionCount(IExpressionDMContext dmc,
final DataRequestMonitor rm)
{
@@ -1202,6 +1229,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @param rm Data Request monitor containing True if this expression's value can be edited. False otherwise.
*/
+ @Override
public void canWriteExpression(IExpressionDMContext dmc, final DataRequestMonitor rm) {
if (dmc instanceof MIExpressionDMC) {
fExpressionCache.execute(
@@ -1236,6 +1264,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @param rm
* The request monitor that will indicate the completion of the operation
*/
+ @Override
public void writeExpression(final IExpressionDMContext dmc, String expressionValue,
String formatId, final RequestMonitor rm) {
@@ -1305,6 +1334,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* {@inheritDoc}
* @since 1.1
*/
+ @Override
public void flushCache(IDMContext context) {
fExpressionCache.reset(context);
// We must also mark all variable objects as out-of-date
@@ -1331,6 +1361,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IExpressions2.ICastedExpressionDMContext#getCastInfo()
*/
+ @Override
public CastInfo getCastInfo() {
return fCastInfo;
}
@@ -1364,6 +1395,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @see org.eclipse.cdt.dsf.debug.service.IExpressions2#createCastedExpression(org.eclipse.cdt.dsf.datamodel.IDMContext, java.lang.String, org.eclipse.cdt.dsf.debug.service.IExpressions2.ICastedExpressionDMContext)
*/
/** @since 3.0 */
+ @Override
public ICastedExpressionDMContext createCastedExpression(IExpressionDMContext exprDMC, CastInfo castInfo) {
if (exprDMC instanceof MIExpressionDMC && castInfo != null) {
String castType = castInfo.getTypeString();
@@ -1400,6 +1432,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions,
* @see org.eclipse.cdt.dsf.debug.service.IExpressions3#getExpressionDataExtension(org.eclipse.cdt.dsf.debug.service.IExpressions.IExpressionDMContext, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
/** @since 4.0 */
+ @Override
public void getExpressionDataExtension(IExpressionDMContext dmc, final DataRequestMonitor rm) {
getExpressionData(dmc, new DataRequestMonitor(getExecutor(), rm) {
@Override
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIMemory.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIMemory.java
index 8263718d4ee..4aa41ceff4a 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIMemory.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIMemory.java
@@ -75,6 +75,7 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer
fAddresses = addresses;
}
+ @Override
public IAddress[] getAddresses() {
return fAddresses;
}
@@ -199,6 +200,7 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IMemory#getMemory(org.eclipse.cdt.dsf.datamodel.IDMContext, org.eclipse.cdt.core.IAddress, long, int, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getMemory(IMemoryDMContext memoryDMC, IAddress address, long offset,
int word_size, int count, DataRequestMonitor drm)
{
@@ -231,6 +233,7 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IMemory#setMemory(org.eclipse.cdt.dsf.datamodel.IDMContext, org.eclipse.cdt.core.IAddress, long, int, byte[], org.eclipse.cdt.dsf.concurrent.RequestMonitor)
*/
+ @Override
public void setMemory(IMemoryDMContext memoryDMC, IAddress address, long offset,
int word_size, int count, byte[] buffer, RequestMonitor rm)
{
@@ -270,6 +273,7 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer
/* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IMemory#fillMemory(org.eclipse.cdt.dsf.datamodel.IDMContext, org.eclipse.cdt.core.IAddress, long, int, byte[], org.eclipse.cdt.dsf.concurrent.RequestMonitor)
*/
+ @Override
public void fillMemory(IMemoryDMContext memoryDMC, IAddress address, long offset,
int word_size, int count, byte[] pattern, RequestMonitor rm)
{
@@ -994,6 +998,7 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer
* {@inheritDoc}
* @since 1.1
*/
+ @Override
public void flushCache(IDMContext context) {
fCommandCache.reset(context);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIModules.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIModules.java
index 177f9873ba9..15089ec276f 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIModules.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIModules.java
@@ -121,30 +121,37 @@ public class MIModules extends AbstractDsfService implements IModules, ICachingS
fIsSymbolsRead = isSymsRead;
}
+ @Override
public String getFile() {
return fFile;
}
+ @Override
public String getName() {
return fFile;
}
+ @Override
public long getTimeStamp() {
return 0;
}
- public String getBaseAddress() {
+ @Override
+ public String getBaseAddress() {
return fFromAddress;
}
+ @Override
public String getToAddress() {
return fToAddress;
}
+ @Override
public boolean isSymbolsLoaded() {
return fIsSymbolsRead;
}
+ @Override
public long getSize() {
long result = 0;
if(getBaseAddress() == null || getToAddress() == null)
@@ -158,6 +165,7 @@ public class MIModules extends AbstractDsfService implements IModules, ICachingS
}
+ @Override
public void getModules(final ISymbolDMContext symCtx, final DataRequestMonitor rm) {
if(symCtx != null){
fModulesCache.execute(fCommandFactory.createCLIInfoSharedLibrary(symCtx),
@@ -186,6 +194,7 @@ public class MIModules extends AbstractDsfService implements IModules, ICachingS
return modules;
}
+ @Override
public void getModuleData(final IModuleDMContext dmc, final DataRequestMonitor rm) {
assert dmc != null;
if (dmc instanceof ModuleDMContext) {
@@ -213,11 +222,13 @@ public class MIModules extends AbstractDsfService implements IModules, ICachingS
}
+ @Override
public void calcAddressInfo(ISymbolDMContext symCtx, String file, int line, int col, DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, NOT_SUPPORTED, "Functionality not supported", null)); //$NON-NLS-1$
rm.done();
}
+ @Override
public void calcLineInfo(ISymbolDMContext symCtx, IAddress address, DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, NOT_SUPPORTED, "Functionality not supported", null)); //$NON-NLS-1$
rm.done();
@@ -227,6 +238,7 @@ public class MIModules extends AbstractDsfService implements IModules, ICachingS
* {@inheritDoc}
* @since 1.1
*/
+ @Override
public void flushCache(IDMContext context) {
fModulesCache.reset();
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIProcesses.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIProcesses.java
index 0d3cdbac54c..250782a5027 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIProcesses.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIProcesses.java
@@ -107,6 +107,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
* Returns the GDB/MI thread identifier of this context.
* @return
*/
+ @Override
public int getThreadId(){
try {
return Integer.parseInt(fThreadId);
@@ -162,6 +163,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
/**
* Returns the GDB/MI thread group identifier of this context.
*/
+ @Override
public String getGroupId(){ return fId; }
@Override
@@ -249,6 +251,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
fId = id;
}
+ @Override
public String getProcId() { return fId; }
@Override
@@ -302,8 +305,11 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
fId = id;
}
+ @Override
public String getId() { return fId; }
+ @Override
public String getName() { return fName; }
+ @Override
public boolean isDebuggerAttached() {
return true;
}
@@ -423,36 +429,43 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
return GdbPlugin.getBundleContext();
}
+ @Override
public IThreadDMContext createThreadContext(IProcessDMContext processDmc, String threadId) {
return new MIThreadDMC(getSession().getId(), processDmc, threadId);
}
+ @Override
public IProcessDMContext createProcessContext(ICommandControlDMContext controlDmc, String pid) {
return new MIProcessDMC(getSession().getId(), controlDmc, pid);
}
+ @Override
public IMIExecutionDMContext createExecutionContext(IContainerDMContext containerDmc,
IThreadDMContext threadDmc,
String threadId) {
return new MIExecutionDMC(getSession().getId(), containerDmc, threadDmc, threadId);
}
+ @Override
public IMIContainerDMContext createContainerContext(IProcessDMContext processDmc,
String groupId) {
return new MIContainerDMC(getSession().getId(), processDmc, groupId);
}
+ @Override
public IMIContainerDMContext createContainerContextFromThreadId(ICommandControlDMContext controlDmc, String threadId) {
return createContainerContextFromGroupId(controlDmc, UNIQUE_GROUP_ID);
}
/** @since 4.0 */
+ @Override
public IMIContainerDMContext createContainerContextFromGroupId(ICommandControlDMContext controlDmc, String groupId) {
IProcessDMContext processDmc = createProcessContext(controlDmc, UNKNOWN_PROCESS_ID);
return createContainerContext(processDmc, groupId);
}
+ @Override
public void getExecutionData(IThreadDMContext dmc, final DataRequestMonitor rm) {
if (dmc instanceof MIProcessDMC) {
rm.setData(new MIThreadDMData("", ((MIProcessDMC)dmc).getProcId())); //$NON-NLS-1$
@@ -495,6 +508,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
}
}
+ @Override
public void getDebuggingContext(IThreadDMContext dmc, DataRequestMonitor rm) {
if (dmc instanceof MIProcessDMC) {
MIProcessDMC procDmc = (MIProcessDMC)dmc;
@@ -511,11 +525,13 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
rm.done();
}
+ @Override
public void isDebuggerAttachSupported(IDMContext dmc, DataRequestMonitor rm) {
rm.setData(false);
rm.done();
}
+ @Override
public void attachDebuggerToProcess(final IProcessDMContext procCtx, final DataRequestMonitor rm) {
if (procCtx instanceof IMIProcessDMContext) {
@@ -539,11 +555,13 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
}
}
+ @Override
public void canDetachDebuggerFromProcess(IDMContext dmc, DataRequestMonitor rm) {
rm.setData(false);
rm.done();
}
+ @Override
public void detachDebuggerFromProcess(final IDMContext dmc, final RequestMonitor rm) {
ICommandControlDMContext controlDmc = DMContexts.getAncestorOfType(dmc, ICommandControlDMContext.class);
@@ -574,16 +592,19 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
}
}
+ @Override
public void canTerminate(IThreadDMContext thread, DataRequestMonitor rm) {
rm.setData(true);
rm.done();
}
+ @Override
public void isDebugNewProcessSupported(IDMContext dmc, DataRequestMonitor rm) {
rm.setData(false);
rm.done();
}
+ @Override
public void debugNewProcess(IDMContext dmc, String file,
Map attributes, DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID,
@@ -591,6 +612,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
rm.done();
}
+ @Override
public void getProcessesBeingDebugged(IDMContext dmc, final DataRequestMonitor rm) {
final IMIContainerDMContext containerDmc = DMContexts.getAncestorOfType(dmc, IMIContainerDMContext.class);
if (containerDmc != null) {
@@ -636,16 +658,20 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
}
}
+ @Override
public void getRunningProcesses(IDMContext dmc, final DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID,
NOT_SUPPORTED, "Not supported", null)); //$NON-NLS-1$
rm.done();
}
+ @Override
public void isRunNewProcessSupported(IDMContext dmc, DataRequestMonitor rm) {
rm.setData(false);
rm.done();
}
+
+ @Override
public void runNewProcess(IDMContext dmc, String file,
Map attributes, DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID,
@@ -653,6 +679,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
rm.done();
}
+ @Override
public void terminate(IThreadDMContext thread, RequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID,
NOT_SUPPORTED, "Not supported", null)); //$NON-NLS-1$
@@ -716,6 +743,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses, ICa
fContainerCommandCache.reset();
}
+ @Override
public void flushCache(IDMContext context) {
fContainerCommandCache.reset(context);
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRegisters.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRegisters.java
index d808baf1c86..2931117ad58 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRegisters.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRegisters.java
@@ -136,6 +136,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
fRegisterDmc = registerDMC;
}
+ @Override
public IRegisterDMContext getDMContext() {
return fRegisterDmc;
}
@@ -221,6 +222,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
public boolean isValid() { return true; }
+ @Override
public void getFormattedExpressionValue(FormattedValueDMContext dmc, DataRequestMonitor rm) {
if (dmc.getParents().length == 1 && dmc.getParents()[0] instanceof MIRegisterDMC) {
getRegisterDataValue( (MIRegisterDMC) dmc.getParents()[0], dmc.getFormatID(), rm);
@@ -230,13 +232,16 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
}
}
+ @Override
public void getRegisterGroupData(IRegisterGroupDMContext regGroupDmc, DataRequestMonitor rm) {
/**
* For the GDB GDBMI implementation there is only on group. The GPR and FPU registers are grouped into
* one set. We are going to hard wire this set as the "General Registers".
*/
class RegisterGroupData implements IRegisterGroupDMData {
+ @Override
public String getName() { return "General Registers"; } //$NON-NLS-1$
+ @Override
public String getDescription() { return "General Purpose and FPU Register Group"; } //$NON-NLS-1$
}
@@ -244,6 +249,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
rm.done();
}
+ @Override
public void getBitFieldData(IBitFieldDMContext dmc, DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, NOT_SUPPORTED, "Bit fields not yet supported", null)); //$NON-NLS-1$
rm.done();
@@ -254,6 +260,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* this group as a single list we maintain within this service. So we
* need to search this list to see if we have a current value.
*/
+ @Override
public void getRegisterData(IRegisterDMContext regDmc , final DataRequestMonitor rm) {
if (regDmc instanceof MIRegisterDMC) {
final MIRegisterDMC miRegDmc = (MIRegisterDMC)regDmc;
@@ -362,15 +369,24 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
fIsFloat = isFloat;
}
+ @Override
public boolean isReadable() { return true; }
+ @Override
public boolean isReadOnce() { return false; }
+ @Override
public boolean isWriteable() { return true; }
+ @Override
public boolean isWriteOnce() { return false; }
+ @Override
public boolean hasSideEffects() { return false; }
+ @Override
public boolean isVolatile() { return true; }
+ @Override
public boolean isFloat() { return fIsFloat; }
+ @Override
public String getName() { return fRegName; }
+ @Override
public String getDescription() { return fRegDesc; }
}
@@ -443,6 +459,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IRegisters#getRegisterGroups(org.eclipse.cdt.dsf.debug.service.IRunControl.IExecutionDMContext, org.eclipse.cdt.dsf.debug.service.IStack.IFrameDMContext, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getRegisterGroups(IDMContext ctx, DataRequestMonitor rm ) {
IContainerDMContext contDmc = DMContexts.getAncestorOfType(ctx, IContainerDMContext.class);
if (contDmc == null) {
@@ -464,6 +481,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IRegisters#getRegisters(org.eclipse.cdt.dsf.debug.service.IRegisters.IRegisterGroupDMContext, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getRegisters(final IDMContext dmc, final DataRequestMonitor rm) {
final MIRegisterGroupDMC groupDmc = DMContexts.getAncestorOfType(dmc, MIRegisterGroupDMC.class);
if ( groupDmc == null ) {
@@ -513,6 +531,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IRegisters#getBitFields(org.eclipse.cdt.dsf.debug.service.IRegisters.IRegisterDMContext, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getBitFields( IDMContext regDmc , DataRequestMonitor rm ) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, NOT_SUPPORTED, "BitField not supported", null)); //$NON-NLS-1$
rm.done();
@@ -522,6 +541,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IRegisters#writeRegister(org.eclipse.cdt.dsf.debug.service.IRegisters.IRegisterDMContext, java.lang.String, java.lang.String, org.eclipse.cdt.dsf.concurrent.RequestMonitor)
*/
+ @Override
public void writeRegister(IRegisterDMContext regCtx, final String regValue, final String formatId, final RequestMonitor rm) {
MIRegisterGroupDMC grpDmc = DMContexts.getAncestorOfType(regCtx, MIRegisterGroupDMC.class);
if ( grpDmc == null ) {
@@ -569,6 +589,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IRegisters#writeBitField(org.eclipse.cdt.dsf.debug.service.IRegisters.IBitFieldDMContext, java.lang.String, java.lang.String, org.eclipse.cdt.dsf.concurrent.RequestMonitor)
*/
+ @Override
public void writeBitField(IBitFieldDMContext bitFieldCtx, String bitFieldValue, String formatId, RequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, NOT_SUPPORTED, "Writing bit field not supported", null)); //$NON-NLS-1$
rm.done();
@@ -578,6 +599,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IRegisters#writeBitField(org.eclipse.cdt.dsf.debug.service.IRegisters.IBitFieldDMContext, org.eclipse.cdt.dsf.debug.service.IRegisters.IMnemonic, org.eclipse.cdt.dsf.concurrent.RequestMonitor)
*/
+ @Override
public void writeBitField(IBitFieldDMContext bitFieldCtx, IMnemonic mnemonic, RequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, NOT_SUPPORTED, "Writing bit field not supported", null)); //$NON-NLS-1$
rm.done();
@@ -587,6 +609,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IFormattedValues#getAvailableFormats(org.eclipse.cdt.dsf.debug.service.IFormattedValues.IFormattedDataDMContext, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void getAvailableFormats(IFormattedDataDMContext dmc, DataRequestMonitor rm) {
rm.setData(new String[] { HEX_FORMAT, DECIMAL_FORMAT, OCTAL_FORMAT, BINARY_FORMAT, NATURAL_FORMAT });
@@ -597,6 +620,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IFormattedValues#getFormattedValueContext(org.eclipse.cdt.dsf.debug.service.IFormattedValues.IFormattedDataDMContext, java.lang.String)
*/
+ @Override
public FormattedValueDMContext getFormattedValueContext(IFormattedDataDMContext dmc, String formatId) {
if ( dmc instanceof MIRegisterDMC ) {
MIRegisterDMC regDmc = (MIRegisterDMC) dmc;
@@ -609,6 +633,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IRegisters#findRegisterGroup(org.eclipse.cdt.dsf.datamodel.IDMContext, java.lang.String, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void findRegisterGroup(IDMContext ctx, String name, DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, NOT_SUPPORTED, "Finding a Register Group context not supported", null)); //$NON-NLS-1$
rm.done();
@@ -618,6 +643,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IRegisters#findRegister(org.eclipse.cdt.dsf.datamodel.IDMContext, java.lang.String, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void findRegister(IDMContext ctx, String name, DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, NOT_SUPPORTED, "Finding a Register context not supported", null)); //$NON-NLS-1$
rm.done();
@@ -627,6 +653,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.debug.service.IRegisters#findBitField(org.eclipse.cdt.dsf.datamodel.IDMContext, java.lang.String, org.eclipse.cdt.dsf.concurrent.DataRequestMonitor)
*/
+ @Override
public void findBitField(IDMContext ctx, String name, DataRequestMonitor rm) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, NOT_SUPPORTED, "Finding a Register Group context not supported", null)); //$NON-NLS-1$
rm.done();
@@ -636,6 +663,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters, ICach
* {@inheritDoc}
* @since 1.1
*/
+ @Override
public void flushCache(IDMContext context) {
fRegisterNameCache.reset(context);
fRegisterValueCache.reset(context);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java
index 00d00abe18b..eb6a5a66ba9 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java
@@ -120,6 +120,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
* Returns the GDB/MI thread identifier of this context.
* @return
*/
+ @Override
public int getThreadId(){
return fThreadId;
}
@@ -144,7 +145,9 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
fReason = reason;
fDetails = details;
}
+ @Override
public StateChangeReason getStateChangeReason() { return fReason; }
+ @Override
public String getDetails() { return fDetails; }
}
@@ -167,6 +170,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
fMIInfo = miInfo;
}
+ @Override
public T getMIEvent() { return fMIInfo; }
}
@@ -181,6 +185,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
super(ctx, miInfo);
}
+ @Override
public StateChangeReason getReason() {
if (getMIEvent() instanceof MICatchpointHitEvent) { // must precede MIBreakpointHitEvent
return StateChangeReason.EVENT_BREAKPOINT;
@@ -244,6 +249,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
fBreakpoints = new IBreakpointDMContext[] { bpCtx };
}
+ @Override
public IBreakpointDMContext[] getBreakpoints() {
return fBreakpoints;
}
@@ -261,6 +267,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
? new IExecutionDMContext[] { triggeringDmc } : new IExecutionDMContext[0];
}
+ @Override
public IExecutionDMContext[] getTriggeringContexts() {
return triggeringDmcs;
}
@@ -282,6 +289,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
fBreakpoints = new IBreakpointDMContext[] { bpCtx };
}
+ @Override
public IBreakpointDMContext[] getBreakpoints() {
return fBreakpoints;
}
@@ -295,6 +303,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
super(ctx, miInfo);
}
+ @Override
public StateChangeReason getReason() {
switch(getMIEvent().getType()) {
case MIRunningEvent.CONTINUE:
@@ -327,6 +336,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
? new IExecutionDMContext[] { triggeringDmc } : new IExecutionDMContext[0];
}
+ @Override
public IExecutionDMContext[] getTriggeringContexts() {
return triggeringDmcs;
}
@@ -655,6 +665,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
///////////////////////////////////////////////////////////////////////////
// IRunControl
+ @Override
public void canResume(IExecutionDMContext context, DataRequestMonitor rm) {
rm.setData(doCanResume(context));
rm.done();
@@ -665,6 +676,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
return !fTerminated && isSuspended(context) && !fResumePending;
}
+ @Override
public void canSuspend(IExecutionDMContext context, DataRequestMonitor rm) {
rm.setData(doCanSuspend(context));
rm.done();
@@ -674,14 +686,17 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
return !fTerminated && !isSuspended(context);
}
+ @Override
public boolean isSuspended(IExecutionDMContext context) {
return !fTerminated && fSuspended;
}
+ @Override
public boolean isStepping(IExecutionDMContext context) {
return !fTerminated && fStepping;
}
+ @Override
public void resume(final IExecutionDMContext context, final RequestMonitor rm) {
assert context != null;
@@ -723,6 +738,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
}
}
+ @Override
public void suspend(IExecutionDMContext context, final RequestMonitor rm){
assert context != null;
@@ -747,6 +763,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
}
}
+ @Override
public void canStep(IExecutionDMContext context, StepType stepType, DataRequestMonitor rm) {
if (context instanceof IContainerDMContext) {
rm.setData(false);
@@ -756,6 +773,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
canResume(context, rm);
}
+ @Override
public void step(final IExecutionDMContext context, StepType stepType, final RequestMonitor rm) {
assert context != null;
@@ -826,6 +844,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
}
+ @Override
public void getExecutionContexts(final IContainerDMContext containerDmc, final DataRequestMonitor rm) {
fMICommandCache.execute(
fCommandFactory.createMIThreadListIds(containerDmc),
@@ -856,6 +875,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
}
}
+ @Override
public void getExecutionData(IExecutionDMContext dmc, DataRequestMonitor rm){
if (dmc instanceof IContainerDMContext) {
rm.setData( new ExecutionData(fStateChangeReason, fStateChangeDetails) );
@@ -1123,6 +1143,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
/**
* @since 3.0
*/
+ @Override
public void executeWithTargetAvailable(IDMContext ctx, final Sequence.Step[] steps, final RequestMonitor rm) {
if (!fOngoingOperation) {
// We are the first operation of this kind currently requested
@@ -1362,6 +1383,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
* {@inheritDoc}
* @since 1.1
*/
+ @Override
public void flushCache(IDMContext context) {
fMICommandCache.reset(context);
}
@@ -1397,6 +1419,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
/**
* @since 3.0
*/
+ @Override
public void canRunToLine(IExecutionDMContext context, String sourceFile,
int lineNumber, DataRequestMonitor rm) {
canResume(context, rm);
@@ -1408,6 +1431,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
/**
* @since 3.0
*/
+ @Override
public void runToLine(IExecutionDMContext context, String sourceFile,
int lineNumber, boolean skipBreakpoints, RequestMonitor rm) {
@@ -1423,6 +1447,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
/**
* @since 3.0
*/
+ @Override
public void canRunToAddress(IExecutionDMContext context, IAddress address,
DataRequestMonitor rm) {
canResume(context, rm);
@@ -1434,6 +1459,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
/**
* @since 3.0
*/
+ @Override
public void runToAddress(IExecutionDMContext context, IAddress address,
boolean skipBreakpoints, RequestMonitor rm) {
runToLocation(context, "*0x" + address.toString(16), skipBreakpoints, rm); //$NON-NLS-1$
@@ -1445,6 +1471,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
/**
* @since 3.0
*/
+ @Override
public void canMoveToLine(IExecutionDMContext context, String sourceFile,
int lineNumber, boolean resume, DataRequestMonitor rm) {
canResume(context, rm);
@@ -1456,6 +1483,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
/**
* @since 3.0
*/
+ @Override
public void moveToLine(IExecutionDMContext context, String sourceFile,
int lineNumber, boolean resume, RequestMonitor rm) {
IMIExecutionDMContext threadExecDmc = DMContexts.getAncestorOfType(context, IMIExecutionDMContext.class);
@@ -1489,6 +1517,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
/**
* @since 3.0
*/
+ @Override
public void canMoveToAddress(IExecutionDMContext context, IAddress address,
boolean resume, DataRequestMonitor rm) {
canResume(context, rm);
@@ -1500,6 +1529,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
/**
* @since 3.0
*/
+ @Override
public void moveToAddress(IExecutionDMContext context, IAddress address,
boolean resume, RequestMonitor rm) {
IMIExecutionDMContext threadExecDmc = DMContexts.getAncestorOfType(context, IMIExecutionDMContext.class);
@@ -1527,11 +1557,13 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
}
/** @since 4.0 */
+ @Override
public IRunMode getRunMode() {
return MIRunMode.ALL_STOP;
}
/** @since 4.0 */
+ @Override
public boolean isTargetAcceptingCommands() {
// For all-stop mode:
// 1- if GDB is not terminated and
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIStack.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIStack.java
index df9861beb76..c37fbc247eb 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIStack.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIStack.java
@@ -70,6 +70,7 @@ public class MIStack extends AbstractDsfService
fLevel = level;
}
+ @Override
public int getLevel() { return fLevel; }
@Override
@@ -244,10 +245,12 @@ public class MIStack extends AbstractDsfService
return new MIFrameDMC(getSession().getId(), execDmc, level);
}
+ @Override
public void getFrames(final IDMContext ctx, final DataRequestMonitor rm) {
getFrames(ctx, 0, ALL_FRAMES, rm);
}
+ @Override
public void getFrames(final IDMContext ctx, final int startIndex, final int endIndex, final DataRequestMonitor rm) {
if (startIndex < 0 || endIndex > 0 && endIndex < startIndex) {
@@ -304,6 +307,7 @@ public class MIStack extends AbstractDsfService
});
}
+ @Override
public void getTopFrame(final IDMContext ctx, final DataRequestMonitor rm) {
final IMIExecutionDMContext execDmc = DMContexts.getAncestorOfType(ctx, IMIExecutionDMContext.class);
if (execDmc == null) {
@@ -357,6 +361,7 @@ public class MIStack extends AbstractDsfService
+ @Override
public void getFrameData(final IFrameDMContext frameDmc, final DataRequestMonitor rm) {
if (!(frameDmc instanceof MIFrameDMC)) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, INVALID_HANDLE, "Invalid context type " + frameDmc, null)); //$NON-NLS-1$
@@ -381,6 +386,7 @@ public class MIStack extends AbstractDsfService
{
abstract protected MIFrame getMIFrame();
+ @Override
public IAddress getAddress() {
String addr = getMIFrame().getAddress();
if (addr == null || addr.length() == 0) {
@@ -396,11 +402,16 @@ public class MIStack extends AbstractDsfService
}
}
+ @Override
public int getColumn() { return 0; }
+ @Override
public String getFile() { return getMIFrame().getFile(); }
+ @Override
public int getLine() { return getMIFrame().getLine(); }
+ @Override
public String getFunction() { return getMIFrame().getFunction(); }
+ @Override
public String getModule() { return ""; }//$NON-NLS-1$
@Override
@@ -494,6 +505,7 @@ public class MIStack extends AbstractDsfService
});
}
+ @Override
public void getArguments(final IFrameDMContext frameDmc, final DataRequestMonitor rm) {
final IMIExecutionDMContext execDmc = DMContexts.getAncestorOfType(frameDmc, IMIExecutionDMContext.class);
if (execDmc == null) {
@@ -578,6 +590,7 @@ public class MIStack extends AbstractDsfService
});
}
+ @Override
public void getVariableData(IVariableDMContext variableDmc, final DataRequestMonitor rm) {
if (!(variableDmc instanceof MIVariableDMC)) {
rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, INVALID_HANDLE, "Invalid context type " + variableDmc, null)); //$NON-NLS-1$
@@ -610,7 +623,9 @@ public class MIStack extends AbstractDsfService
VariableData(MIArg arg){
dsfMIArg = arg;
}
+ @Override
public String getName() { return dsfMIArg.getName(); }
+ @Override
public String getValue() { return dsfMIArg.getValue(); }
@Override
public String toString() { return dsfMIArg.toString(); }
@@ -753,6 +768,7 @@ public class MIStack extends AbstractDsfService
}
+ @Override
public void getLocals(final IFrameDMContext frameDmc, final DataRequestMonitor rm) {
final List localsList = new ArrayList();
@@ -811,6 +827,7 @@ public class MIStack extends AbstractDsfService
});
}
+ @Override
public void getStackDepth(final IDMContext dmc, final int maxDepth, final DataRequestMonitor rm) {
final IMIExecutionDMContext execDmc = DMContexts.getAncestorOfType(dmc, IMIExecutionDMContext.class);
if (execDmc != null) {
@@ -939,6 +956,7 @@ public class MIStack extends AbstractDsfService
* {@inheritDoc}
* @since 1.1
*/
+ @Override
public void flushCache(IDMContext context) {
fMICommandCache.reset(context);
fStackDepthCache.clear(context);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIVariableManager.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIVariableManager.java
index c248ac05a7b..1636f919ede 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIVariableManager.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIVariableManager.java
@@ -2752,9 +2752,11 @@ public class MIVariableManager implements ICommandControl {
});
}
+ @Override
public ICommandToken queueCommand(final ICommand command, DataRequestMonitor rm) {
final ICommandToken token = new ICommandToken() {
+ @Override
public ICommand extends ICommandResult> getCommand() {
return command;
}
@@ -2939,6 +2941,7 @@ public class MIVariableManager implements ICommandControl {
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl#removeCommand(org.eclipse.cdt.dsf.mi.service.command.commands.ICommand)
*/
+ @Override
public void removeCommand(ICommandToken token) {
// It is impossible to remove a command from the MIVariableManager.
// This should never be called, if we did things right.
@@ -2955,9 +2958,13 @@ public class MIVariableManager implements ICommandControl {
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl#cancelCommand(org.eclipse.cdt.dsf.mi.service.command.commands.ICommand)
*/
+ @Override
public void addCommandListener(ICommandListener processor) { fCommandProcessors.add(processor); }
+ @Override
public void removeCommandListener(ICommandListener processor) { fCommandProcessors.remove(processor); }
+ @Override
public void addEventListener(IEventListener processor) {}
+ @Override
public void removeEventListener(IEventListener processor) {}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/BreakpointActionAdapter.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/BreakpointActionAdapter.java
index 8404758b4c5..aa2861b5eb5 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/BreakpointActionAdapter.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/BreakpointActionAdapter.java
@@ -34,6 +34,7 @@ public class BreakpointActionAdapter implements IAdaptable {
}
@SuppressWarnings("rawtypes")
+ @Override
public Object getAdapter(Class adapter) {
if (adapter.equals(ILogActionEnabler.class)) {
return new MILogActionEnabler(fExecutor, fServiceTracker, fContext);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/MILogActionEnabler.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/MILogActionEnabler.java
index e2845d0e9ba..c5e37bbd070 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/MILogActionEnabler.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/MILogActionEnabler.java
@@ -42,6 +42,7 @@ public class MILogActionEnabler implements ILogActionEnabler {
fContext = DMContexts.getAncestorOfType(context, IBreakpointsTargetDMContext.class);
}
+ @Override
public String evaluateExpression(final String expression) throws Exception {
// Use a Query to synchronize the call
Query query = new Query() {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/MIResumeActionEnabler.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/MIResumeActionEnabler.java
index 1f994ce9382..6ab835df48b 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/MIResumeActionEnabler.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/breakpoint/actions/MIResumeActionEnabler.java
@@ -35,8 +35,10 @@ public class MIResumeActionEnabler implements IResumeActionEnabler {
fContext = (IExecutionDMContext) context;
}
+ @Override
public void resume() throws Exception {
fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
final IRunControl runControlService = fServiceTracker.getService(IRunControl.class);
if (runControlService != null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractCLIProcess.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractCLIProcess.java
index 5661ac2e293..4ee7f8922cb 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractCLIProcess.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractCLIProcess.java
@@ -205,6 +205,7 @@ public abstract class AbstractCLIProcess extends Process
}
+ @Override
public void eventReceived(Object output) {
if (fSuppressConsoleOutputCounter > 0) return;
for (MIOOBRecord oobr : ((MIOutput)output).getMIOOBRecords()) {
@@ -250,10 +251,12 @@ public abstract class AbstractCLIProcess extends Process
}
}
+ @Override
public void commandQueued(ICommandToken token) {
// Ignore
}
+ @Override
public void commandSent(ICommandToken token) {
// Bug 285170
// Don't reset the fPrompt here, in case we are
@@ -340,10 +343,12 @@ public abstract class AbstractCLIProcess extends Process
return false;
}
+ @Override
public void commandRemoved(ICommandToken token) {
// Ignore
}
+ @Override
public void commandDone(ICommandToken token, ICommandResult result) {
// Whenever we get a command that is completed, we know we must be in the primary prompt
fPrompt = PromptType.IN_PRIMARY_PROMPT;
@@ -405,7 +410,7 @@ public abstract class AbstractCLIProcess extends Process
final String bufString = buf.toString().trim();
buf.setLength(0);
try {
- fSession.getExecutor().execute(new DsfRunnable() { public void run() {
+ fSession.getExecutor().execute(new DsfRunnable() { @Override public void run() {
try {
post(bufString);
} catch (IOException e) {
@@ -445,7 +450,7 @@ public abstract class AbstractCLIProcess extends Process
cmd = new ProcessCLICommand(getCommandControlService().getContext(), str);
}
final ICommand finalCmd = cmd;
- fSession.getExecutor().execute(new DsfRunnable() { public void run() {
+ fSession.getExecutor().execute(new DsfRunnable() { @Override public void run() {
if (isDisposed()) return;
// Do not wait around for the answer.
getCommandControlService().queueCommand(finalCmd, null);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractMIControl.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractMIControl.java
index 33bb3e2fe39..e9cb3781732 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractMIControl.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractMIControl.java
@@ -199,6 +199,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
/**
* @since 3.0
*/
+ @Override
public CommandFactory getCommandFactory() {
return fCommandFactory;
}
@@ -291,6 +292,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
* @see org.eclipse.cdt.dsf.debug.service.command.ICommandControl#addCommand(org.eclipse.cdt.dsf.debug.service.command.ICommand, org.eclipse.cdt.dsf.concurrent.RequestMonitor)
*/
+ @Override
public ICommandToken queueCommand(final ICommand command, DataRequestMonitor rm) {
// Cast the command to MI Command type. This will cause a cast exception to be
@@ -323,6 +325,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
// In a separate dispatch cycle. This allows command listeners
// to respond to the command queued event.
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
processNextQueuedCommand();
}
@@ -396,6 +399,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl#removeCommand(org.eclipse.cdt.dsf.mi.service.command.commands.ICommand)
*/
+ @Override
public void removeCommand(ICommandToken token) {
synchronized(fCommandQueue) {
@@ -406,6 +410,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
final CommandHandle finalHandle = handle;
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
processCommandRemoved(finalHandle);
}
@@ -423,6 +428,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl#addCommandListener(org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl.ICommandListener)
*/
+ @Override
public void addCommandListener(ICommandListener processor) { fCommandProcessors.add(processor); }
/*
@@ -430,6 +436,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl#removeCommandListener(org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl.ICommandListener)
*/
+ @Override
public void removeCommandListener(ICommandListener processor) { fCommandProcessors.remove(processor); }
/*
@@ -438,6 +445,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl#addEventListener(org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl.IEventListener)
*/
+ @Override
public void addEventListener(IEventListener processor) { fEventProcessors.add(processor); }
/*
@@ -446,6 +454,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
* (non-Javadoc)
* @see org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl#removeEventListener(org.eclipse.cdt.dsf.mi.service.command.IDebuggerControl.IEventListener)
*/
+ @Override
public void removeEventListener(IEventListener processor) { fEventProcessors.remove(processor); }
abstract public MIControlDMContext getControlDMContext();
@@ -453,6 +462,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
/**
* @since 1.1
*/
+ @Override
public boolean isActive() {
return !fStoppedCommandProcessing;
}
@@ -525,6 +535,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
fTokenId = -1; // Only initialize to a real value when needed
}
+ @Override
public MICommand getCommand() { return fCommand; }
public DataRequestMonitor getRequestMonitor() { return fRequestMonitor; }
// This method allows us to generate the token Id when we area actually going to use
@@ -891,6 +902,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
*/
final ICommandResult finalResult = result;
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
/*
* Complete the specific command.
@@ -918,6 +930,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
*/
final ICommandResult finalResult = result;
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
processCommandDone(commandHandle, finalResult);
}
@@ -937,6 +950,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
final MIOutput response = new MIOutput(rr, new MIOOBRecord[0]);
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
processEvent(response);
}
@@ -979,6 +993,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
* be done on the DSF thread for integrity.
*/
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
processEvent(response);
}
@@ -990,6 +1005,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
}
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
processNextQueuedCommand();
}
@@ -1030,6 +1046,7 @@ public abstract class AbstractMIControl extends AbstractDsfService
final MIOOBRecord oob = fMiParser.parseMIOOBRecord("&"+line+"\n"); //$NON-NLS-1$//$NON-NLS-2$
final MIOutput response = new MIOutput(oob, new MIStreamRecord[0]);
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
processEvent(response);
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/CLIEventProcessor.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/CLIEventProcessor.java
index c7185e882e1..2d245d25eb1 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/CLIEventProcessor.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/CLIEventProcessor.java
@@ -81,6 +81,7 @@ public class CLIEventProcessor
fServicesTracker.dispose();
}
+ @Override
public void commandSent(ICommandToken token) {
if (token.getCommand() instanceof CLICommand>) {
processStateChanges( (CLICommand>)token.getCommand() );
@@ -90,6 +91,7 @@ public class CLIEventProcessor
}
}
+ @Override
public void commandDone(ICommandToken token, ICommandResult result) {
if (token.getCommand() instanceof CLICommand>) {
processSettingChanges( (CLICommand>)token.getCommand() );
@@ -99,14 +101,17 @@ public class CLIEventProcessor
}
}
+ @Override
public void commandQueued(ICommandToken token) {
// No action
}
+ @Override
public void commandRemoved(ICommandToken token) {
// No action
}
+ @Override
public void eventReceived(Object output) {
for (MIOOBRecord oobr : ((MIOutput)output).getMIOOBRecords()) {
if (oobr instanceof MIConsoleStreamOutput) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/CLIEventProcessor_7_0.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/CLIEventProcessor_7_0.java
index 85765af7b75..bcafe71276b 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/CLIEventProcessor_7_0.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/CLIEventProcessor_7_0.java
@@ -44,13 +44,11 @@ public class CLIEventProcessor_7_0
implements ICommandListener, IEventListener
{
private final ICommandControlService fCommandControl;
- private final ICommandControlDMContext fControlDmc;
private final DsfServicesTracker fServicesTracker;
public CLIEventProcessor_7_0(ICommandControlService connection, ICommandControlDMContext controlDmc) {
fCommandControl = connection;
- fControlDmc = controlDmc;
fServicesTracker = new DsfServicesTracker(GdbPlugin.getBundleContext(), fCommandControl.getSession().getId());
fCommandControl.addCommandListener(this);
fCommandControl.addEventListener(this);
@@ -62,6 +60,7 @@ public class CLIEventProcessor_7_0
fServicesTracker.dispose();
}
+ @Override
public void commandSent(ICommandToken token) {
if (token.getCommand() instanceof CLICommand>) {
processStateChanges( (CLICommand>)token.getCommand() );
@@ -71,6 +70,7 @@ public class CLIEventProcessor_7_0
}
}
+ @Override
public void commandDone(ICommandToken token, ICommandResult result) {
if (token.getCommand() instanceof CLICommand>) {
processSettingChanges( (CLICommand>)token.getCommand() );
@@ -80,14 +80,17 @@ public class CLIEventProcessor_7_0
}
}
+ @Override
public void commandQueued(ICommandToken token) {
// No action
}
+ @Override
public void commandRemoved(ICommandToken token) {
// No action
}
+ @Override
public void eventReceived(Object output) {
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIBackendCLIProcess.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIBackendCLIProcess.java
index e28c5ca8611..8f19d8eb8e6 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIBackendCLIProcess.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIBackendCLIProcess.java
@@ -132,6 +132,7 @@ public class MIBackendCLIProcess extends AbstractCLIProcess {
}
try {
getSession().getExecutor().submit(new Callable() {
+ @Override
public Object call() throws Exception {
if (fMIBackend.getState() != IMIBackend.State.TERMINATED) {
throw new IllegalThreadStateException("Backend Process has not exited"); //$NON-NLS-1$
@@ -153,7 +154,7 @@ public class MIBackendCLIProcess extends AbstractCLIProcess {
@Override
public void destroy() {
try {
- getSession().getExecutor().execute(new DsfRunnable() { public void run() {
+ getSession().getExecutor().execute(new DsfRunnable() { @Override public void run() {
if (!DsfSession.isSessionActive(getSession().getId())) return;
if (isDisposed()) return;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIControlDMContext.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIControlDMContext.java
index 3ec9afafa25..e923cc754a8 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIControlDMContext.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIControlDMContext.java
@@ -53,6 +53,7 @@ public class MIControlDMContext extends AbstractDMContext
/**
* @since 1.1
*/
+ @Override
public String getCommandControlId() {
return fCommandControlId;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIInferiorProcess.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIInferiorProcess.java
index 7a128a82818..57c4a6c0433 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIInferiorProcess.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIInferiorProcess.java
@@ -315,6 +315,7 @@ public class MIInferiorProcess extends Process
public void destroy() {
try {
fSession.getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
doDestroy();
}
@@ -374,6 +375,7 @@ public class MIInferiorProcess extends Process
return fErrorStreamPiped;
}
+ @Override
public void eventReceived(Object output) {
for (MIOOBRecord oobr : ((MIOutput)output).getMIOOBRecords()) {
if (oobr instanceof MITargetStreamOutput) {
@@ -390,20 +392,24 @@ public class MIInferiorProcess extends Process
}
}
+ @Override
public void commandQueued(ICommandToken token) {
// No action
}
+ @Override
public void commandSent(ICommandToken token) {
if (token.getCommand() instanceof CLICommand>) {
fSuppressTargetOutputCounter++;
}
}
+ @Override
public void commandRemoved(ICommandToken token) {
// No action
}
+ @Override
public void commandDone(ICommandToken token, ICommandResult result) {
if (token.getCommand() instanceof CLICommand>) {
fSuppressTargetOutputCounter--;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIRunControlEventProcessor.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIRunControlEventProcessor.java
index afbd3ce5138..2fd7e8ea20d 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIRunControlEventProcessor.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIRunControlEventProcessor.java
@@ -113,6 +113,7 @@ public class MIRunControlEventProcessor
fServicesTracker.dispose();
}
+ @Override
public void eventReceived(Object output) {
for (MIOOBRecord oobr : ((MIOutput)output).getMIOOBRecords()) {
List> events = new LinkedList>();
@@ -294,18 +295,22 @@ public class MIRunControlEventProcessor
}
}
+ @Override
public void commandQueued(ICommandToken token) {
// Do nothing.
}
+ @Override
public void commandSent(ICommandToken token) {
// Do nothing.
}
+ @Override
public void commandRemoved(ICommandToken token) {
// Do nothing.
}
+ @Override
public void commandDone(ICommandToken token, ICommandResult result) {
ICommand> cmd = token.getCommand();
MIInfo cmdResult = (MIInfo) result ;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIRunControlEventProcessor_7_0.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIRunControlEventProcessor_7_0.java
index 5591aeb5fa9..03a04a35eeb 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIRunControlEventProcessor_7_0.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/MIRunControlEventProcessor_7_0.java
@@ -113,6 +113,7 @@ public class MIRunControlEventProcessor_7_0
fServicesTracker.dispose();
}
+ @Override
public void eventReceived(Object output) {
for (MIOOBRecord oobr : ((MIOutput)output).getMIOOBRecords()) {
List> events = new LinkedList>();
@@ -366,18 +367,22 @@ public class MIRunControlEventProcessor_7_0
return event;
}
+ @Override
public void commandQueued(ICommandToken token) {
// Do nothing.
}
+ @Override
public void commandSent(ICommandToken token) {
// Do nothing.
}
+ @Override
public void commandRemoved(ICommandToken token) {
// Do nothing.
}
+ @Override
public void commandDone(ICommandToken token, ICommandResult result) {
ICommand> cmd = token.getCommand();
MIInfo cmdResult = (MIInfo) result ;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/ExprMetaCommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/ExprMetaCommand.java
index 387f1610b0d..e458e6b0f05 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/ExprMetaCommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/ExprMetaCommand.java
@@ -29,10 +29,12 @@ public class ExprMetaCommand implements ICommand {
* The result is a new third command which represent the two
* original command.
*/
+ @Override
public ICommand extends ICommandResult> coalesceWith( ICommand extends ICommandResult> command ) {
return null ;
}
+ @Override
public IDMContext getContext(){
return fCtx;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/MIBreakCondition.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/MIBreakCondition.java
index b648f25bb1d..068a2183227 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/MIBreakCondition.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/MIBreakCondition.java
@@ -54,6 +54,7 @@ public class MIBreakCondition extends MICommand
super(param);
}
+ @Override
public String getAdjustedValue() {
return getValue();
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/MICommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/MICommand.java
index df26dabcd4e..dc11d539c6f 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/MICommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/commands/MICommand.java
@@ -190,11 +190,13 @@ public class MICommand implements ICommand {
* The result is a new third command which represent the two
* original command.
*/
+ @Override
public ICommand extends ICommandResult> coalesceWith( ICommand extends ICommandResult> command ) {
return null ;
}
+ @Override
public IDMContext getContext(){
return fCtx;
}
@@ -289,6 +291,7 @@ public class MICommand implements ICommand {
super(option);
}
+ @Override
public String getAdjustedValue() {
StringBuilder builder = new StringBuilder();
String option = value;
@@ -322,6 +325,7 @@ public class MICommand implements ICommand {
super(parameter);
}
+ @Override
public String getAdjustedValue() {
StringBuilder builder = new StringBuilder();
for (int j = 0; j < value.length(); j++) {
@@ -361,6 +365,7 @@ public class MICommand implements ICommand {
this.value = value;
}
+ @Override
public String getValue() {
return value;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetAttributesInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetAttributesInfo.java
index 967cccf2476..d8cdc8e37ea 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetAttributesInfo.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetAttributesInfo.java
@@ -23,6 +23,7 @@ public class ExprMetaGetAttributesInfo implements ICommandResult {
public boolean getEditable() { return editable; }
+ @Override
public V getSubsetResult(ICommand command) {
return null;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetChildCountInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetChildCountInfo.java
index 80715d4fb73..29e4cb78f37 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetChildCountInfo.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetChildCountInfo.java
@@ -23,6 +23,7 @@ public class ExprMetaGetChildCountInfo implements ICommandResult {
public int getChildNum() { return childNum; }
+ @Override
public V getSubsetResult(ICommand command) {
return null;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetChildrenInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetChildrenInfo.java
index 8cc6327f790..c89d44175f7 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetChildrenInfo.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetChildrenInfo.java
@@ -24,6 +24,7 @@ public class ExprMetaGetChildrenInfo implements ICommandResult {
public ExpressionInfo[] getChildrenExpressions() { return childrenExpressions; }
+ @Override
public V getSubsetResult(ICommand command) {
return null;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetValueInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetValueInfo.java
index 0822b9f7099..fe641d193e4 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetValueInfo.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetValueInfo.java
@@ -23,6 +23,7 @@ public class ExprMetaGetValueInfo implements ICommandResult {
public String getValue() { return value; }
+ @Override
public V getSubsetResult(ICommand command) {
return null;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetVarInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetVarInfo.java
index 6fc6fa6931f..5785f7a2eff 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetVarInfo.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/ExprMetaGetVarInfo.java
@@ -101,6 +101,7 @@ public class ExprMetaGetVarInfo implements ICommandResult {
return isCollectionHint;
}
+ @Override
public V getSubsetResult(ICommand command) {
return null;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIInfo.java
index 05a2e6f081e..ecf7ebb0996 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIInfo.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIInfo.java
@@ -94,6 +94,7 @@ public class MIInfo implements ICommandResult {
* result canot be calculated for the given command. Deriving classes should
* override this method as needed.
*/
+ @Override
public V getSubsetResult(ICommand command) {
return null;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIInstruction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIInstruction.java
index bbfc6563f51..cf3c3e6ae97 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIInstruction.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIInstruction.java
@@ -29,26 +29,32 @@ public class MIInstruction extends AbstractInstruction {
parse(tuple);
}
+ @Override
public BigInteger getAdress() {
return address;
}
+ @Override
public String getFuntionName() {
return function;
}
+ @Override
public long getOffset() {
return offset;
}
+ @Override
public String getInstruction() {
return opcode + " " + args; //$NON-NLS-1$;
}
+ @Override
public String getOpcode() {
return opcode;
}
+ @Override
public String getArgs() {
return args;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIListThreadGroupsInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIListThreadGroupsInfo.java
index d8269b22f7d..5d085f1906f 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIListThreadGroupsInfo.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIListThreadGroupsInfo.java
@@ -239,18 +239,27 @@ public class MIListThreadGroupsInfo extends MIInfo {
return name;
}
+ @Override
public String getGroupId() { return fGroupId; }
+ @Override
public String getPid() { return fPid; }
+ @Override
public String getName() { return fName; }
+ @Override
public String getDesciption() { return fDescription; }
+ @Override
public String[] getCores() { return fCores; }
+ @Override
public String getUser() { return fUser; }
+ @Override
public String getType() { return fType; }
+ @Override
public String getExecutable() { return fExecutable; }
+ @Override
public MIThread[] getThreads() { return fThreadList; }
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIMixedInstruction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIMixedInstruction.java
index f4d4647966c..582a84484dd 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIMixedInstruction.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIMixedInstruction.java
@@ -29,14 +29,17 @@ public class MIMixedInstruction implements IMixedInstruction {
parse(tuple);
}
+ @Override
public String getFileName() {
return fileName;
}
+ @Override
public int getLineNumber() {
return lineNumber;
}
+ @Override
public IInstruction[] getInstructions() {
return assemblyCode;
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThreadListIdsInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThreadListIdsInfo.java
index 7d0131fe67c..2729cecf31e 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThreadListIdsInfo.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIThreadListIdsInfo.java
@@ -54,6 +54,7 @@ public class MIThreadListIdsInfo extends MIInfo {
// We need our own comparator to treat these strings as integers.
Arrays.sort(strThreadIds,
new Comparator() {
+ @Override
public int compare(String o1, String o2) {
int threadInt1;
int threadInt2;
From f8f7295cf11e611cca5e92eacf71ce31231fba5f Mon Sep 17 00:00:00 2001
From: Marc Khouzam
Date: Fri, 23 Dec 2011 15:24:10 -0500
Subject: [PATCH 18/60] Bug 317173: Fix new warnings of missing @Override now
that we use java 6, in org.eclipse.cdt.dsf.gdb.ui
---
.../gdb/internal/ui/GdbAdapterFactory.java | 7 +++++++
.../dsf/gdb/internal/ui/GdbPinProvider.java | 8 +++++++
.../gdb/internal/ui/GdbSuspendTrigger.java | 3 ++-
.../ui/actions/ConnectActionDelegate.java | 1 +
.../ui/actions/DsfTerminateCommand.java | 4 ++++
.../ui/actions/FetchMoreChildrenAction.java | 3 +++
.../ui/actions/GdbConnectCommand.java | 4 ++++
.../ui/actions/GdbDisconnectCommand.java | 2 ++
.../ui/actions/GdbRestartCommand.java | 3 +++
.../gdb/internal/ui/actions/ProcessInfo.java | 5 +++++
.../ReverseDebuggingPropertyTester.java | 1 +
.../GDBTracepointPropertyPage.java | 4 ++++
.../ui/breakpoints/GdbThreadFilterEditor.java | 7 +++++++
.../ToggleTracepointsTargetFactory.java | 5 +++++
.../ui/commands/GdbReverseToggleCommand.java | 2 ++
.../ui/commands/GdbSaveTraceDataCommand.java | 1 +
.../ui/console/ConsolePageParticipant.java | 6 ++++++
.../ui/console/ConsoleSaveAction.java | 1 +
.../internal/ui/console/TracingConsole.java | 4 ++++
.../ui/console/TracingConsoleManager.java | 5 +++++
.../internal/ui/launching/CArgumentsTab.java | 6 ++++++
.../internal/ui/launching/CDebuggerTab.java | 9 ++++++++
.../gdb/internal/ui/launching/CMainTab.java | 8 +++++++
.../ui/launching/CoreFilePrompter.java | 1 +
.../internal/ui/launching/GDBSolibBlock.java | 8 +++++++
.../ui/launching/GdbCoreDebuggerPage.java | 10 +++++++--
.../ui/launching/GdbDebuggerPage.java | 12 +++++++++--
.../ui/launching/ProcessPrompter.java | 1 +
.../ui/launching/ProcessPrompterDialog.java | 1 +
.../ui/launching/SolibSearchPathBlock.java | 21 +++++++++++++------
.../ui/launching/WorkingDirectoryBlock.java | 6 ++++++
.../preferences/GdbDebugPreferencePage.java | 1 +
.../tracepointactions/CollectActionPage.java | 3 +++
.../tracepointactions/EvaluateActionPage.java | 3 +++
.../TracepointActionsPreferencePage.java | 1 +
.../WhileSteppingActionPage.java | 3 +++
.../ui/tracepoints/TraceControlView.java | 11 ++++++++++
.../ui/tracepoints/TraceVarDetailsDialog.java | 4 ++++
.../ui/viewmodel/GdbExpressionVMProvider.java | 3 +++
.../ui/viewmodel/GdbVariableVMNode.java | 4 ++++
.../ui/viewmodel/GdbVariableVMProvider.java | 3 +++
.../breakpoints/GdbBreakpointVMProvider.java | 1 +
.../commands/RetargetDebugContextCommand.java | 2 ++
.../ui/viewmodel/launch/ContainerVMNode.java | 4 ++++
.../ui/viewmodel/launch/LaunchVMProvider.java | 1 +
.../ui/viewmodel/launch/ThreadVMNode.java | 2 ++
46 files changed, 194 insertions(+), 11 deletions(-)
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbAdapterFactory.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbAdapterFactory.java
index 24fe859fdc7..da17bba5f5c 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbAdapterFactory.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbAdapterFactory.java
@@ -202,6 +202,7 @@ public class GdbAdapterFactory
fDebugModelProvider = new IDebugModelProvider() {
// @see org.eclipse.debug.core.model.IDebugModelProvider#getModelIdentifiers()
+ @Override
public String[] getModelIdentifiers() {
return new String[] { GdbLaunchDelegate.GDB_DEBUG_MODEL_ID, ICBreakpoint.C_BREAKPOINTS_DEBUG_MODEL_ID };
}
@@ -329,6 +330,7 @@ public class GdbAdapterFactory
* This method only actually returns adapters for the launch object.
*/
@SuppressWarnings("rawtypes")
+ @Override
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (!(adaptableObject instanceof GdbLaunch)) return null;
@@ -379,6 +381,7 @@ public class GdbAdapterFactory
}
@SuppressWarnings("rawtypes")
+ @Override
public Class[] getAdapterList() {
return new Class[] {
IElementContentProvider.class, IModelProxyFactory.class, ISuspendTrigger.class,
@@ -386,6 +389,7 @@ public class GdbAdapterFactory
};
}
+ @Override
public void launchesRemoved(ILaunch[] launches) {
// Dispose the set of adapters for a launch only after the launch is
// removed.
@@ -396,12 +400,15 @@ public class GdbAdapterFactory
}
}
+ @Override
public void launchesTerminated(ILaunch[] launches) {
}
+ @Override
public void launchesAdded(ILaunch[] launches) {
}
+ @Override
public void launchesChanged(ILaunch[] launches) {
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbPinProvider.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbPinProvider.java
index 94967cc6088..bec41e415cb 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbPinProvider.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbPinProvider.java
@@ -61,9 +61,11 @@ public class GdbPinProvider implements IPinProvider {
GdbPinElementColorDescriptor(int color) {
fColor = color;
}
+ @Override
public int getOverlayColor() {
return fColor;
}
+ @Override
public ImageDescriptor getToolbarIconDescriptor() {
return null;
}
@@ -89,6 +91,7 @@ public class GdbPinProvider implements IPinProvider {
fSession = session;
session.getExecutor().execute(new Runnable() {
+ @Override
public void run() {
fSession.addServiceEventListener(GdbPinProvider.this, null);
}
@@ -101,6 +104,7 @@ public class GdbPinProvider implements IPinProvider {
public void dispose() {
try {
fSession.getExecutor().execute(new Runnable() {
+ @Override
public void run() {
fSession.removeServiceEventListener(GdbPinProvider.this);
}
@@ -190,6 +194,7 @@ public class GdbPinProvider implements IPinProvider {
* (non-Javadoc)
* @see org.eclipse.cdt.debug.ui.IPinProvider#isPinnable(org.eclipse.ui.IWorkbenchPart, java.lang.Object)
*/
+ @Override
public boolean isPinnable(IWorkbenchPart part, Object debugContext) {
if (debugContext instanceof IAdaptable) {
return ((IAdaptable) debugContext).getAdapter(IDMContext.class) != null;
@@ -201,6 +206,7 @@ public class GdbPinProvider implements IPinProvider {
* (non-Javadoc)
* @see org.eclipse.cdt.debug.ui.IPinProvider#pin(org.eclipse.ui.IWorkbenchPart, java.lang.Object, org.eclipse.cdt.debug.ui.IPinModelListener)
*/
+ @Override
public IPinElementHandle pin(IWorkbenchPart part, Object debugContext, IPinModelListener listener) {
Object pinContext = debugContext;
String label = ""; //$NON-NLS-1$
@@ -242,6 +248,7 @@ public class GdbPinProvider implements IPinProvider {
* (non-Javadoc)
* @see org.eclipse.cdt.debug.ui.IPinProvider#unpin(org.eclipse.ui.IWorkbenchPart, org.eclipse.cdt.debug.ui.IPinProvider.IPinElementHandle)
*/
+ @Override
public void unpin(IWorkbenchPart part, IPinElementHandle handle) {
// remove the handle from the cache
gsPinnedHandles.remove(handle);
@@ -260,6 +267,7 @@ public class GdbPinProvider implements IPinProvider {
* (non-Javadoc)
* @see org.eclipse.cdt.debug.ui.IPinProvider#isPinnedTo(java.lang.Object, org.eclipse.cdt.debug.ui.IPinProvider.IPinElementHandle)
*/
+ @Override
public boolean isPinnedTo(Object debugContext, IPinElementHandle handle) {
Object handleDebugContext = handle.getDebugContext();
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbSuspendTrigger.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbSuspendTrigger.java
index 97fdfd168e0..21c199e2a11 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbSuspendTrigger.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbSuspendTrigger.java
@@ -39,7 +39,8 @@ public class GdbSuspendTrigger extends DsfSuspendTrigger {
protected void getLaunchTopContainers(final DataRequestMonitor rm) {
try {
getSession().getExecutor().execute(new DsfRunnable() {
- public void run() {
+ @Override
+ public void run() {
IProcesses processService = getServicesTracker().getService(IProcesses.class);
ICommandControlService controlService = getServicesTracker().getService(ICommandControlService.class);
if (processService == null || controlService == null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ConnectActionDelegate.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ConnectActionDelegate.java
index 784fde439a9..81cba62accb 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ConnectActionDelegate.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ConnectActionDelegate.java
@@ -27,6 +27,7 @@ public class ConnectActionDelegate extends AbstractVMProviderActionDelegate {
/*
* @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
*/
+ @Override
public void run(IAction action) {
if (action.isEnabled()) {
// disable the action so it cannot be run again until an event or
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/DsfTerminateCommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/DsfTerminateCommand.java
index f233aa6b6cf..4850e0781d1 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/DsfTerminateCommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/DsfTerminateCommand.java
@@ -42,6 +42,7 @@ public class DsfTerminateCommand implements ITerminateHandler {
}
// Run control may not be avilable after a connection is terminated and shut down.
+ @Override
public void canExecute(final IEnabledStateRequest request) {
if (request.getElements().length != 1 ||
!(request.getElements()[0] instanceof IDMVMContext) )
@@ -64,6 +65,7 @@ public class DsfTerminateCommand implements ITerminateHandler {
try {
fExecutor.execute(
new DsfRunnable() {
+ @Override
public void run() {
// Get the processes service and the exec context.
IProcesses procService = fTracker.getService(IProcesses.class);
@@ -88,6 +90,7 @@ public class DsfTerminateCommand implements ITerminateHandler {
}
}
+ @Override
public boolean execute(final IDebugCommandRequest request) {
if (request.getElements().length != 1 ||
!(request.getElements()[0] instanceof IDMVMContext)) {
@@ -106,6 +109,7 @@ public class DsfTerminateCommand implements ITerminateHandler {
try {
fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
IProcesses procService = fTracker.getService(IProcesses.class);
if (procService != null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/FetchMoreChildrenAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/FetchMoreChildrenAction.java
index 84842f340c6..c74fc317d74 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/FetchMoreChildrenAction.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/FetchMoreChildrenAction.java
@@ -38,6 +38,7 @@ public class FetchMoreChildrenAction extends AbstractVMProviderActionDelegate
private ISelection selection;
+ @Override
public void run(IAction action) {
IncompleteChildrenVMC incompleteChildrenVmc = getIncompleteChildrenVMC();
@@ -53,6 +54,7 @@ public class FetchMoreChildrenAction extends AbstractVMProviderActionDelegate
final FetchMoreChildrenEvent fetchMoreChildrenEvent = new FetchMoreChildrenEvent(exprCtx, path);
final AbstractVMProvider vmProvider = (AbstractVMProvider) getVMProvider();
vmProvider.getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
vmProvider.handleEvent(fetchMoreChildrenEvent);
}
@@ -89,6 +91,7 @@ public class FetchMoreChildrenAction extends AbstractVMProviderActionDelegate
getAction().setEnabled(enabled);
}
+ @Override
public void setActivePart(IAction action, IWorkbenchPart targetPart) {
if (targetPart instanceof IViewPart) {
init((IViewPart) targetPart);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbConnectCommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbConnectCommand.java
index ff72cce4a54..04ca9d980ee 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbConnectCommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbConnectCommand.java
@@ -84,6 +84,7 @@ public class GdbConnectCommand implements IConnect {
fTracker.dispose();
}
+ @Override
public boolean canConnect() {
Query canConnectQuery = new Query() {
@Override
@@ -210,6 +211,7 @@ public class GdbConnectCommand implements IConnect {
final String finalBinaryPath = binaryPath;
fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
IGDBProcesses procService = fTracker.getService(IGDBProcesses.class);
ICommandControlService commandControl = fTracker.getService(ICommandControlService.class);
@@ -239,6 +241,7 @@ public class GdbConnectCommand implements IConnect {
}
}
+ @Override
public void connect(RequestMonitor requestMonitor)
{
// Create a fake rm to avoid null pointer exceptions
@@ -255,6 +258,7 @@ public class GdbConnectCommand implements IConnect {
// thread to prompt the user for the process to choose.
// This is why we simply use a DsfRunnable.
fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
final IProcesses procService = fTracker.getService(IProcesses.class);
ICommandControlService commandControl = fTracker.getService(ICommandControlService.class);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbDisconnectCommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbDisconnectCommand.java
index c2c406f4742..93c56084d43 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbDisconnectCommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbDisconnectCommand.java
@@ -37,6 +37,7 @@ public class GdbDisconnectCommand implements IDisconnectHandler {
fTracker.dispose();
}
+ @Override
public void canExecute(final IEnabledStateRequest request) {
if (request.getElements().length != 1) {
request.setEnabled(false);
@@ -67,6 +68,7 @@ public class GdbDisconnectCommand implements IDisconnectHandler {
});
}
+ @Override
public boolean execute(final IDebugCommandRequest request) {
if (request.getElements().length != 1) {
request.done();
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbRestartCommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbRestartCommand.java
index 6619bdb0534..e2e05301f60 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbRestartCommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbRestartCommand.java
@@ -45,6 +45,7 @@ public class GdbRestartCommand implements IRestartHandler {
fTracker.dispose();
}
+ @Override
public void canExecute(final IEnabledStateRequest request) {
if (request.getElements().length != 1) {
request.setEnabled(false);
@@ -75,6 +76,7 @@ public class GdbRestartCommand implements IRestartHandler {
});
}
+ @Override
public boolean execute(final IDebugCommandRequest request) {
if (request.getElements().length != 1) {
request.done();
@@ -92,6 +94,7 @@ public class GdbRestartCommand implements IRestartHandler {
fExecutor.submit(new DsfRunnable() {
@SuppressWarnings("unchecked")
+ @Override
public void run() {
IGDBProcesses procService = fTracker.getService(IGDBProcesses.class);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ProcessInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ProcessInfo.java
index 8ec9b08b961..6b763246435 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ProcessInfo.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ProcessInfo.java
@@ -32,18 +32,22 @@ class ProcessInfo implements IProcessExtendedInfo, Comparable {
this.ownerId = owner;
}
+ @Override
public String getName() {
return name;
}
+ @Override
public int getPid() {
return pid;
}
+ @Override
public String[] getCores() {
return cores;
}
+ @Override
public String getOwner() {
return ownerId;
}
@@ -52,6 +56,7 @@ class ProcessInfo implements IProcessExtendedInfo, Comparable {
* Sort by name, then by pid.
* No need to sort any further since pids are unique.
*/
+ @Override
public int compareTo(ProcessInfo other) {
int nameCompare = getName().compareTo(other.getName());
if (nameCompare != 0) return nameCompare;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ReverseDebuggingPropertyTester.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ReverseDebuggingPropertyTester.java
index 1067991189c..7b913d3aaff 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ReverseDebuggingPropertyTester.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/ReverseDebuggingPropertyTester.java
@@ -31,6 +31,7 @@ public class ReverseDebuggingPropertyTester extends PropertyTester {
private static final String ENABLED = "isReverseDebuggingEnabled"; //$NON-NLS-1$
+ @Override
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
if (ENABLED.equals(property)) {
if (receiver instanceof IDMVMContext) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBTracepointPropertyPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBTracepointPropertyPage.java
index 3c166416bbd..acfa8557ac2 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBTracepointPropertyPage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBTracepointPropertyPage.java
@@ -356,6 +356,7 @@ public class GDBTracepointPropertyPage extends FieldEditorPreferencePage impleme
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPropertyPage#getElement()
*/
+ @Override
public IAdaptable getElement() {
return fElement;
}
@@ -363,6 +364,7 @@ public class GDBTracepointPropertyPage extends FieldEditorPreferencePage impleme
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPropertyPage#setElement(org.eclipse.core.runtime.IAdaptable)
*/
+ @Override
public void setElement(IAdaptable element) {
fElement = element;
}
@@ -380,6 +382,7 @@ public class GDBTracepointPropertyPage extends FieldEditorPreferencePage impleme
/**
* @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
*/
+ @Override
public void propertyChange(PropertyChangeEvent event) {
changedProperties.add(event.getProperty());
}
@@ -392,6 +395,7 @@ public class GDBTracepointPropertyPage extends FieldEditorPreferencePage impleme
protected void setBreakpointProperties(final List changedProperties) {
IWorkspaceRunnable wr = new IWorkspaceRunnable() {
+ @Override
public void run( IProgressMonitor monitor ) throws CoreException {
ICTracepoint tracepoint = getTracepoint();
Iterator changed = changedProperties.iterator();
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GdbThreadFilterEditor.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GdbThreadFilterEditor.java
index 8fb3b63a6ba..2e1681fa829 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GdbThreadFilterEditor.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GdbThreadFilterEditor.java
@@ -72,6 +72,7 @@ public class GdbThreadFilterEditor {
*
* @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
*/
+ @Override
public void checkStateChanged(CheckStateChangedEvent event) {
Object element = event.getElement();
if (element instanceof IContainerDMContext) {
@@ -140,6 +141,7 @@ public class GdbThreadFilterEditor {
*
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
*/
+ @Override
public Object[] getChildren(Object parent) {
if (parent instanceof IContainerDMContext) {
return syncGetThreads((IContainerDMContext) parent);
@@ -165,6 +167,7 @@ public class GdbThreadFilterEditor {
*
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
*/
+ @Override
public Object getParent(Object element) {
if (element instanceof IContainerDMContext) {
return DebugPlugin.getDefault().getLaunchManager();
@@ -180,6 +183,7 @@ public class GdbThreadFilterEditor {
*
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
*/
+ @Override
public boolean hasChildren(Object element) {
return getChildren(element).length > 0;
}
@@ -189,6 +193,7 @@ public class GdbThreadFilterEditor {
*
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
*/
+ @Override
public Object[] getElements(Object inputElement) {
return getChildren(inputElement);
}
@@ -198,6 +203,7 @@ public class GdbThreadFilterEditor {
*
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
+ @Override
public void dispose() {
}
@@ -207,6 +213,7 @@ public class GdbThreadFilterEditor {
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
* java.lang.Object, java.lang.Object)
*/
+ @Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/ToggleTracepointsTargetFactory.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/ToggleTracepointsTargetFactory.java
index 3032a3e0aab..72409bfe4ce 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/ToggleTracepointsTargetFactory.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/ToggleTracepointsTargetFactory.java
@@ -53,6 +53,7 @@ public class ToggleTracepointsTargetFactory implements IToggleBreakpointsTargetF
public ToggleTracepointsTargetFactory() {
}
+ @Override
public IToggleBreakpointsTarget createToggleTarget(String targetID) {
if (TOGGLE_C_TRACEPOINT_TARGET_ID.equals(targetID)) {
return fgDisassemblyToggleTracepointsTarget;
@@ -60,10 +61,12 @@ public class ToggleTracepointsTargetFactory implements IToggleBreakpointsTargetF
return null;
}
+ @Override
public String getDefaultToggleTarget(IWorkbenchPart part, ISelection selection) {
return null;
}
+ @Override
public String getToggleTargetDescription(String targetID) {
if (TOGGLE_C_TRACEPOINT_TARGET_ID.equals(targetID)) {
return Messages.ToggleTracepointsTargetFactory_description;
@@ -71,6 +74,7 @@ public class ToggleTracepointsTargetFactory implements IToggleBreakpointsTargetF
return null;
}
+ @Override
public String getToggleTargetName(String targetID) {
if (TOGGLE_C_TRACEPOINT_TARGET_ID.equals(targetID)) {
return Messages.ToggleTracepointsTargetFactory_name;
@@ -78,6 +82,7 @@ public class ToggleTracepointsTargetFactory implements IToggleBreakpointsTargetF
return null;
}
+ @Override
public Set getToggleTargets(IWorkbenchPart part, ISelection selection) {
if (part instanceof IDisassemblyPart) {
return TOGGLE_TARGET_IDS_ALL;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/commands/GdbReverseToggleCommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/commands/GdbReverseToggleCommand.java
index 18e5c270aae..dd236ed83d0 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/commands/GdbReverseToggleCommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/commands/GdbReverseToggleCommand.java
@@ -149,10 +149,12 @@ public class GdbReverseToggleCommand extends AbstractDebugCommand implements IRe
return true;
}
+ @Override
public boolean toggleNeedsUpdating() {
return true;
}
+ @Override
public boolean isReverseToggled(Object context) {
IDMContext dmc;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/commands/GdbSaveTraceDataCommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/commands/GdbSaveTraceDataCommand.java
index d534bf15f68..e4d62a8483a 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/commands/GdbSaveTraceDataCommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/commands/GdbSaveTraceDataCommand.java
@@ -69,6 +69,7 @@ public class GdbSaveTraceDataCommand extends AbstractDebugCommand implements ISa
final String[] fileName = new String[1];
PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
+ @Override
public void run() {
fileName[0] = promptForFileName();
};
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsolePageParticipant.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsolePageParticipant.java
index fd04e971f10..a35f1e86ac6 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsolePageParticipant.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsolePageParticipant.java
@@ -45,6 +45,7 @@ public class ConsolePageParticipant implements IConsolePageParticipant, IDebugCo
private IPageBookViewPage fPage;
private IConsoleView fView;
+ @Override
public void init(IPageBookViewPage page, IConsole console) {
fPage = page;
fConsole = console;
@@ -98,10 +99,12 @@ public class ConsolePageParticipant implements IConsolePageParticipant, IDebugCo
}
@SuppressWarnings("rawtypes")
+ @Override
public Object getAdapter(Class adapter) {
return null;
}
+ @Override
public void dispose() {
if (isConsoleInferior(fConsole) || isConsoleGdbCli(fConsole)) {
DebugUITools.getDebugContextManager().getContextService(fPage.getSite().getWorkbenchWindow()).removeDebugContextListener(this);
@@ -109,9 +112,11 @@ public class ConsolePageParticipant implements IConsolePageParticipant, IDebugCo
fConsole = null;
}
+ @Override
public void activated() {
}
+ @Override
public void deactivated() {
}
@@ -186,6 +191,7 @@ public class ConsolePageParticipant implements IConsolePageParticipant, IDebugCo
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.contexts.provisional.IDebugContextListener#contextEvent(org.eclipse.debug.internal.ui.contexts.provisional.DebugContextEvent)
*/
+ @Override
public void debugContextChanged(DebugContextEvent event) {
if ((event.getFlags() & DebugContextEvent.ACTIVATED) > 0) {
IProcess consoleProcess = getConsoleProcess();
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleSaveAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleSaveAction.java
index 30fd14e5850..2b161752e06 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleSaveAction.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/ConsoleSaveAction.java
@@ -48,6 +48,7 @@ public class ConsoleSaveAction extends Action{
}
Runnable saveJob = new Runnable() {
+ @Override
public void run() {
saveContent(fileName);
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/TracingConsole.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/TracingConsole.java
index 2f873307d37..6193a8a7dfd 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/TracingConsole.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/TracingConsole.java
@@ -70,6 +70,7 @@ public class TracingConsole extends IOConsole {
protected void init() {
super.init();
fSession.getExecutor().submit(new DsfRunnable() {
+ @Override
public void run() {
fSession.addServiceEventListener(TracingConsole.this, null);
}
@@ -84,6 +85,7 @@ public class TracingConsole extends IOConsole {
}
try {
fSession.getExecutor().submit(new DsfRunnable() {
+ @Override
public void run() {
fSession.removeServiceEventListener(TracingConsole.this);
}
@@ -99,6 +101,7 @@ public class TracingConsole extends IOConsole {
private void setStreamInService() {
try {
fSession.getExecutor().submit(new DsfRunnable() {
+ @Override
public void run() {
DsfServicesTracker tracker = new DsfServicesTracker(GdbUIPlugin.getBundleContext(), fSession.getId());
IGDBControl control = tracker.getService(IGDBControl.class);
@@ -146,6 +149,7 @@ public class TracingConsole extends IOConsole {
String name = getName();
if (!name.equals(newName)) {
Runnable r = new Runnable() {
+ @Override
public void run() {
setName(newName);
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/TracingConsoleManager.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/TracingConsoleManager.java
index 84176be6cb0..6a6d4c5a72b 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/TracingConsoleManager.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/TracingConsoleManager.java
@@ -108,21 +108,25 @@ public class TracingConsoleManager implements ILaunchesListener2, IPropertyChang
}
}
+ @Override
public void launchesAdded(ILaunch[] launches) {
for (ILaunch launch : launches) {
addConsole(launch);
}
}
+ @Override
public void launchesChanged(ILaunch[] launches) {
}
+ @Override
public void launchesRemoved(ILaunch[] launches) {
for (ILaunch launch : launches) {
removeConsole(launch);
}
}
+ @Override
public void launchesTerminated(ILaunch[] launches) {
for (ILaunch launch : launches) {
// Since we already had a console, don't get rid of it
@@ -131,6 +135,7 @@ public class TracingConsoleManager implements ILaunchesListener2, IPropertyChang
}
}
+ @Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(IGdbDebugPreferenceConstants.PREF_TRACES_ENABLE)) {
fTracingEnabled = (Boolean)event.getNewValue();
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CArgumentsTab.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CArgumentsTab.java
index 9eeeca46aac..bb653b04059 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CArgumentsTab.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CArgumentsTab.java
@@ -68,6 +68,7 @@ public class CArgumentsTab extends CLaunchConfigurationTab {
/* (non-Javadoc)
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
*/
+ @Override
public void createControl(Composite parent) {
Font font = parent.getFont();
Composite comp = new Composite(parent, SWT.NONE);
@@ -111,6 +112,7 @@ public class CArgumentsTab extends CLaunchConfigurationTab {
fPrgmArgumentsText.setLayoutData(gd);
fPrgmArgumentsText.setFont(font);
fPrgmArgumentsText.addModifyListener(new ModifyListener() {
+ @Override
public void modifyText(ModifyEvent evt) {
updateLaunchConfigurationDialog();
}
@@ -187,6 +189,7 @@ public class CArgumentsTab extends CLaunchConfigurationTab {
/* (non-Javadoc)
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
+ @Override
public void setDefaults(ILaunchConfigurationWorkingCopy config) {
config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, (String) null);
config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, (String) null);
@@ -195,6 +198,7 @@ public class CArgumentsTab extends CLaunchConfigurationTab {
/* (non-Javadoc)
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
*/
+ @Override
public void initializeFrom(ILaunchConfiguration configuration) {
try {
fPrgmArgumentsText.setText(configuration.getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, "")); //$NON-NLS-1$
@@ -209,6 +213,7 @@ public class CArgumentsTab extends CLaunchConfigurationTab {
/* (non-Javadoc)
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
+ @Override
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
configuration.setAttribute(
ICDTLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS,
@@ -239,6 +244,7 @@ public class CArgumentsTab extends CLaunchConfigurationTab {
/* (non-Javadoc)
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
*/
+ @Override
public String getName() {
return LaunchMessages.getString("CArgumentsTab.Arguments"); //$NON-NLS-1$
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CDebuggerTab.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CDebuggerTab.java
index 41625aee268..b5dfc7a551b 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CDebuggerTab.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CDebuggerTab.java
@@ -91,6 +91,7 @@ public class CDebuggerTab extends CLaunchConfigurationTab {
private Composite fContents;
private IContentChangeListener fContentListener = new IContentChangeListener() {
+ @Override
public void contentChanged() {
contentsChanged();
}
@@ -116,6 +117,7 @@ public class CDebuggerTab extends CLaunchConfigurationTab {
return TAB_ID;
}
+ @Override
public void createControl(Composite parent) {
fContainer = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);
fContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
@@ -162,6 +164,7 @@ public class CDebuggerTab extends CLaunchConfigurationTab {
}
}
+ @Override
public void setDefaults(ILaunchConfigurationWorkingCopy config) {
setLaunchConfigurationWorkingCopy(config);
ICDebuggerPage dynamicTab = getDynamicTab();
@@ -199,6 +202,7 @@ public class CDebuggerTab extends CLaunchConfigurationTab {
}
}
+ @Override
public void initializeFrom(ILaunchConfiguration config) {
setInitializing(true);
@@ -217,6 +221,7 @@ public class CDebuggerTab extends CLaunchConfigurationTab {
setInitializing(false);
}
+ @Override
public void performApply(ILaunchConfigurationWorkingCopy config) {
if (getDebuggerId() != null) {
config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_ID, getDebuggerId());
@@ -322,6 +327,7 @@ public class CDebuggerTab extends CLaunchConfigurationTab {
gridData.widthHint = 100;
fStopInMainSymbol.setLayoutData(gridData);
fStopInMainSymbol.addModifyListener(new ModifyListener() {
+ @Override
public void modifyText(ModifyEvent evt) {
update();
}
@@ -536,6 +542,7 @@ public class CDebuggerTab extends CLaunchConfigurationTab {
return LaunchImages.get(LaunchImages.IMG_VIEW_DEBUGGER_TAB);
}
+ @Override
public String getName() {
return LaunchMessages.getString("AbstractCDebuggerTab.Debugger"); //$NON-NLS-1$
}
@@ -551,6 +558,7 @@ public class CDebuggerTab extends CLaunchConfigurationTab {
fDCombo = new Combo(comboComp, SWT.READ_ONLY | SWT.DROP_DOWN);
fDCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
fDCombo.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetSelected(SelectionEvent e) {
if (!isInitializing()) {
setInitializeDefault(true);
@@ -558,6 +566,7 @@ public class CDebuggerTab extends CLaunchConfigurationTab {
}
}
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CMainTab.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CMainTab.java
index cc979aa15f4..93a56874be6 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CMainTab.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CMainTab.java
@@ -107,6 +107,7 @@ public class CMainTab extends CAbstractMainTab {
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
*/
+ @Override
public void createControl(Composite parent) {
Composite comp = new Composite(parent, SWT.NONE);
setControl(comp);
@@ -149,6 +150,7 @@ public class CMainTab extends CAbstractMainTab {
gd = new GridData(GridData.FILL_HORIZONTAL);
fProgText.setLayoutData(gd);
fProgText.addModifyListener(new ModifyListener() {
+ @Override
public void modifyText(ModifyEvent evt) {
updateLaunchConfigurationDialog();
}
@@ -208,6 +210,7 @@ public class CMainTab extends CAbstractMainTab {
gd = new GridData(GridData.FILL_HORIZONTAL);
fCoreText.setLayoutData(gd);
fCoreText.addModifyListener(new ModifyListener() {
+ @Override
public void modifyText(ModifyEvent evt) {
updateLaunchConfigurationDialog();
}
@@ -237,11 +240,13 @@ public class CMainTab extends CAbstractMainTab {
});
fCoreTypeCombo.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetSelected(SelectionEvent e) {
updateCoreFileLabel();
updateLaunchConfigurationDialog();
}
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
@@ -268,6 +273,7 @@ public class CMainTab extends CAbstractMainTab {
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
*/
+ @Override
public void initializeFrom(ILaunchConfiguration config) {
filterPlatform = getPlatform(config);
updateProjectFromConfig(config);
@@ -500,6 +506,7 @@ public class CMainTab extends CAbstractMainTab {
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
+ @Override
public void setDefaults(ILaunchConfigurationWorkingCopy config) {
// We set empty attributes for project & program so that when one config is
// compared to another, the existence of empty attributes doesn't cause and
@@ -592,6 +599,7 @@ public class CMainTab extends CAbstractMainTab {
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
*/
+ @Override
public String getName() {
return LaunchMessages.getString("CMainTab.Main"); //$NON-NLS-1$
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CoreFilePrompter.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CoreFilePrompter.java
index c41e9c114cd..6d00780f285 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CoreFilePrompter.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/CoreFilePrompter.java
@@ -34,6 +34,7 @@ public class CoreFilePrompter implements IStatusHandler {
* @see org.eclipse.debug.core.IStatusHandler#handleStatus(org.eclipse.core.runtime.IStatus,
* java.lang.Object)
*/
+ @Override
public Object handleStatus(IStatus status, Object params) throws CoreException {
final Shell shell = GdbUIPlugin.getShell();
if (shell == null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GDBSolibBlock.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GDBSolibBlock.java
index ab539f4bf2b..fd7ddaf98ac 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GDBSolibBlock.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GDBSolibBlock.java
@@ -54,6 +54,7 @@ public class GDBSolibBlock extends Observable implements IMILaunchConfigurationC
fAutoSolib = autoSolib;
}
+ @Override
public void createControl( Composite parent ) {
Composite subComp = ControlFactory.createCompositeEx( parent, 1, GridData.FILL_HORIZONTAL );
((GridLayout)subComp.getLayout()).makeColumnsEqualWidth = false;
@@ -89,6 +90,7 @@ public class GDBSolibBlock extends Observable implements IMILaunchConfigurationC
fControl = subComp;
}
+ @Override
public void initializeFrom( ILaunchConfiguration configuration ) {
if ( fSolibSearchPathBlock != null )
fSolibSearchPathBlock.initializeFrom( configuration );
@@ -104,6 +106,7 @@ public class GDBSolibBlock extends Observable implements IMILaunchConfigurationC
}
}
+ @Override
public void performApply( ILaunchConfigurationWorkingCopy configuration ) {
if ( fSolibSearchPathBlock != null )
fSolibSearchPathBlock.performApply( configuration );
@@ -121,6 +124,7 @@ public class GDBSolibBlock extends Observable implements IMILaunchConfigurationC
}
}
+ @Override
public void setDefaults( ILaunchConfigurationWorkingCopy configuration ) {
if ( fSolibSearchPathBlock != null )
fSolibSearchPathBlock.setDefaults( configuration );
@@ -131,6 +135,7 @@ public class GDBSolibBlock extends Observable implements IMILaunchConfigurationC
protected void updateButtons() {
}
+ @Override
public void dispose() {
deleteObservers();
if ( fSolibSearchPathBlock != null ) {
@@ -140,6 +145,7 @@ public class GDBSolibBlock extends Observable implements IMILaunchConfigurationC
}
}
+ @Override
public void update( Observable o, Object arg ) {
changed();
}
@@ -161,10 +167,12 @@ public class GDBSolibBlock extends Observable implements IMILaunchConfigurationC
}
}
+ @Override
public Control getControl() {
return fControl;
}
+ @Override
public boolean isValid( ILaunchConfiguration launchConfig ) {
// TODO Auto-generated method stub
return false;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbCoreDebuggerPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbCoreDebuggerPage.java
index 912e35bfedf..71b206e1fbf 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbCoreDebuggerPage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbCoreDebuggerPage.java
@@ -53,6 +53,7 @@ public class GdbCoreDebuggerPage extends AbstractCDebuggerPage implements Observ
private IMILaunchConfigurationComponent fSolibBlock;
private boolean fIsInitializing = false;
+ @Override
public void createControl(Composite parent) {
Composite comp = new Composite(parent, SWT.NONE);
comp.setLayout(new GridLayout());
@@ -64,6 +65,7 @@ public class GdbCoreDebuggerPage extends AbstractCDebuggerPage implements Observ
setControl(parent);
}
+ @Override
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
IPreferenceStore preferenceStore = GdbUIPlugin.getDefault().getPreferenceStore();
String defaultGdbCommand = preferenceStore.getString(IGdbDebugPreferenceConstants.PREF_DEFAULT_GDB_COMMAND);
@@ -88,6 +90,7 @@ public class GdbCoreDebuggerPage extends AbstractCDebuggerPage implements Observ
return valid;
}
+ @Override
public void initializeFrom(ILaunchConfiguration configuration) {
setInitializing(true);
IPreferenceStore preferenceStore = GdbUIPlugin.getDefault().getPreferenceStore();
@@ -114,6 +117,7 @@ public class GdbCoreDebuggerPage extends AbstractCDebuggerPage implements Observ
setInitializing(false);
}
+ @Override
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
configuration.setAttribute(IGDBLaunchConfigurationConstants.ATTR_DEBUG_NAME,
fGDBCommandText.getText().trim());
@@ -124,6 +128,7 @@ public class GdbCoreDebuggerPage extends AbstractCDebuggerPage implements Observ
fSolibBlock.performApply(configuration);
}
+ @Override
public String getName() {
return LaunchUIMessages.getString("GDBDebuggerPage.tab_name"); //$NON-NLS-1$
}
@@ -149,6 +154,7 @@ public class GdbCoreDebuggerPage extends AbstractCDebuggerPage implements Observ
*
* @see java.util.Observer#update(java.util.Observable, java.lang.Object)
*/
+ @Override
public void update(Observable o, Object arg) {
if (!isInitializing())
updateLaunchConfigurationDialog();
@@ -181,7 +187,7 @@ public class GdbCoreDebuggerPage extends AbstractCDebuggerPage implements Observ
label.setLayoutData(gd);
fGDBCommandText = ControlFactory.createTextField(subComp, SWT.SINGLE | SWT.BORDER);
fGDBCommandText.addModifyListener(new ModifyListener() {
-
+ @Override
public void modifyText(ModifyEvent evt) {
if (!isInitializing())
updateLaunchConfigurationDialog();
@@ -218,7 +224,7 @@ public class GdbCoreDebuggerPage extends AbstractCDebuggerPage implements Observ
gd = new GridData(GridData.FILL_HORIZONTAL);
fGDBInitText.setLayoutData(gd);
fGDBInitText.addModifyListener(new ModifyListener() {
-
+ @Override
public void modifyText(ModifyEvent evt) {
if (!isInitializing())
updateLaunchConfigurationDialog();
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbDebuggerPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbDebuggerPage.java
index f4f91de6799..64193d74e70 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbDebuggerPage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbDebuggerPage.java
@@ -68,6 +68,7 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer {
private IMILaunchConfigurationComponent fSolibBlock;
private boolean fIsInitializing = false;
+ @Override
public void createControl(Composite parent) {
Composite comp = new Composite(parent, SWT.NONE);
comp.setLayout(new GridLayout());
@@ -79,6 +80,7 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer {
setControl(parent);
}
+ @Override
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
IPreferenceStore preferenceStore = GdbUIPlugin.getDefault().getPreferenceStore();
configuration.setAttribute(IGDBLaunchConfigurationConstants.ATTR_DEBUG_NAME,
@@ -130,6 +132,7 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer {
}
}
+ @Override
public void initializeFrom(ILaunchConfiguration configuration) {
setInitializing(true);
IPreferenceStore preferenceStore = GdbUIPlugin.getDefault().getPreferenceStore();
@@ -194,6 +197,7 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer {
return IGDBLaunchConfigurationConstants.DEBUGGER_TRACEPOINT_MODE_DEFAULT;
}
+ @Override
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
configuration.setAttribute(IGDBLaunchConfigurationConstants.ATTR_DEBUG_NAME,
fGDBCommandText.getText().trim());
@@ -217,6 +221,7 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer {
fSolibBlock.performApply(configuration);
}
+ @Override
public String getName() {
return LaunchUIMessages.getString("GDBDebuggerPage.tab_name"); //$NON-NLS-1$
}
@@ -242,6 +247,7 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer {
*
* @see java.util.Observer#update(java.util.Observable, java.lang.Object)
*/
+ @Override
public void update(Observable o, Object arg) {
if (!isInitializing())
updateLaunchConfigurationDialog();
@@ -274,7 +280,7 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer {
label.setLayoutData(gd);
fGDBCommandText = ControlFactory.createTextField(subComp, SWT.SINGLE | SWT.BORDER);
fGDBCommandText.addModifyListener(new ModifyListener() {
-
+ @Override
public void modifyText(ModifyEvent evt) {
if (!isInitializing())
updateLaunchConfigurationDialog();
@@ -311,7 +317,7 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer {
gd = new GridData(GridData.FILL_HORIZONTAL);
fGDBInitText.setLayoutData(gd);
fGDBInitText.addModifyListener(new ModifyListener() {
-
+ @Override
public void modifyText(ModifyEvent evt) {
if (!isInitializing())
updateLaunchConfigurationDialog();
@@ -378,10 +384,12 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer {
fTracepointModeCombo.add(TP_AUTOMATIC);
fTracepointModeCombo.addSelectionListener(new SelectionListener() {
+ @Override
public void widgetSelected(SelectionEvent e) {
updateLaunchConfigurationDialog();
}
+ @Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/ProcessPrompter.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/ProcessPrompter.java
index e2010daf80a..19a46e5335b 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/ProcessPrompter.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/ProcessPrompter.java
@@ -48,6 +48,7 @@ public class ProcessPrompter implements IStatusHandler {
* @see org.eclipse.debug.core.IStatusHandler#handleStatus(org.eclipse.core.runtime.IStatus,
* java.lang.Object)
*/
+ @Override
public Object handleStatus(IStatus status, Object info) throws CoreException {
Shell shell = GdbUIPlugin.getShell();
if (shell == null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/ProcessPrompterDialog.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/ProcessPrompterDialog.java
index 93bf4fcf314..92f6ee216bd 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/ProcessPrompterDialog.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/ProcessPrompterDialog.java
@@ -103,6 +103,7 @@ public class ProcessPrompterDialog extends TwoPaneElementSelector {
// Now add a listener to prevent selection
list.addListener(SWT.EraseItem, new Listener() {
+ @Override
public void handleEvent(Event event) {
if ((event.detail & SWT.SELECTED) != 0) {
event.detail &= ~SWT.SELECTED;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/SolibSearchPathBlock.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/SolibSearchPathBlock.java
index f67d15f0068..6f87f5ca9a3 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/SolibSearchPathBlock.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/SolibSearchPathBlock.java
@@ -269,6 +269,7 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.mi.internal.ui.IMILaunchConfigurationComponent#createControl(org.eclipse.swt.widgets.Composite)
*/
+ @Override
public void createControl(Composite parent) {
fShell = parent.getShell();
Composite comp = ControlFactory.createCompositeEx(parent, 2, GridData.FILL_BOTH);
@@ -287,6 +288,7 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.mi.internal.ui.IMILaunchConfigurationComponent#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
*/
+ @Override
public void initializeFrom(ILaunchConfiguration configuration) {
IProject project = null;
try {
@@ -340,6 +342,7 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.mi.internal.ui.IMILaunchConfigurationComponent#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
+ @Override
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
configuration.setAttribute(IGDBLaunchConfigurationConstants.ATTR_DEBUGGER_SOLIB_PATH, Collections.EMPTY_LIST);
}
@@ -347,6 +350,7 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.mi.internal.ui.IMILaunchConfigurationComponent#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
+ @Override
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
if (fDirList != null) {
@@ -410,6 +414,7 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.mi.internal.ui.IMILaunchConfigurationComponent#dispose()
*/
+ @Override
public void dispose() {
deleteObservers();
}
@@ -417,6 +422,7 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.mi.internal.ui.IMILaunchConfigurationComponent#getControl()
*/
+ @Override
public Control getControl() {
return fControl;
}
@@ -424,6 +430,7 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.mi.internal.ui.IMILaunchConfigurationComponent#isValid(org.eclipse.debug.core.ILaunchConfiguration)
*/
+ @Override
public boolean isValid(ILaunchConfiguration launchConfig) {
// TODO Auto-generated method stub
return false;
@@ -459,31 +466,31 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
final HashSet libs = new HashSet(10);
if (generateLibraryList(dirList.toArray(new IPath[dirList.size()]), libs)) {
ITreeContentProvider cp = new ITreeContentProvider() {
-
+ @Override
public Object[] getChildren(Object parentElement) {
return getElements(parentElement);
}
-
+ @Override
public Object getParent(Object element) {
if (libs.contains(element))
return libs;
return null;
}
-
+ @Override
public boolean hasChildren(Object element) {
return false;
}
-
+ @Override
public Object[] getElements(Object inputElement) {
if (inputElement instanceof Set) {
return ((Set)inputElement).toArray();
}
return new Object[0];
}
-
+ @Override
public void dispose() {
}
-
+ @Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
};
@@ -517,6 +524,7 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
boolean result = true;
IRunnableWithProgress runnable = new IRunnableWithProgress() {
+ @Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
for (int i = 0; i < paths.length; ++i) {
@@ -614,6 +622,7 @@ public class SolibSearchPathBlock extends Observable implements IMILaunchConfigu
return (name.indexOf(".so.") >= 0); //$NON-NLS-1$
}
+ @Override
public void dialogFieldChanged(DialogField field) {
setChanged();
notifyObservers();
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/WorkingDirectoryBlock.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/WorkingDirectoryBlock.java
index 076fd9366e4..77adc2ef96e 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/WorkingDirectoryBlock.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/WorkingDirectoryBlock.java
@@ -71,6 +71,7 @@ public class WorkingDirectoryBlock extends CLaunchConfigurationTab {
*/
private class WidgetListener extends SelectionAdapter implements ModifyListener {
+ @Override
public void modifyText(ModifyEvent e) {
updateLaunchConfigurationDialog();
}
@@ -97,6 +98,7 @@ public class WorkingDirectoryBlock extends CLaunchConfigurationTab {
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
*/
+ @Override
public void createControl(Composite parent) {
Font font = parent.getFont();
@@ -305,6 +307,7 @@ public class WorkingDirectoryBlock extends CLaunchConfigurationTab {
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
+ @Override
public void setDefaults(ILaunchConfigurationWorkingCopy config) {
// config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
// (String)null);
@@ -315,6 +318,7 @@ public class WorkingDirectoryBlock extends CLaunchConfigurationTab {
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
*/
+ @Override
public void initializeFrom(ILaunchConfiguration configuration) {
setLaunchConfiguration(configuration);
try {
@@ -338,6 +342,7 @@ public class WorkingDirectoryBlock extends CLaunchConfigurationTab {
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
+ @Override
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
String wd = null;
if (!isDefaultWorkingDirectory()) {
@@ -364,6 +369,7 @@ public class WorkingDirectoryBlock extends CLaunchConfigurationTab {
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
*/
+ @Override
public String getName() {
return LaunchUIMessages.getString("WorkingDirectoryBlock.Working_Directory_8"); //$NON-NLS-1$
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/preferences/GdbDebugPreferencePage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/preferences/GdbDebugPreferencePage.java
index 6993e02e459..7277956d3f1 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/preferences/GdbDebugPreferencePage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/preferences/GdbDebugPreferencePage.java
@@ -65,6 +65,7 @@ public class GdbDebugPreferencePage extends FieldEditorPreferencePage implements
setDescription(MessagesForPreferences.GdbDebugPreferencePage_description);
}
+ @Override
public void init(IWorkbench workbench) {
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/CollectActionPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/CollectActionPage.java
index bdfdae2e855..1f6201c7d01 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/CollectActionPage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/CollectActionPage.java
@@ -51,13 +51,16 @@ public class CollectActionPage extends PlatformObject implements IBreakpointActi
return fCollectAction;
}
+ @Override
public void actionDialogCanceled() {
}
+ @Override
public void actionDialogOK() {
fCollectAction.setCollectString(fCollectString.getText());
}
+ @Override
public Composite createComposite(IBreakpointAction action, Composite composite, int style) {
fCollectAction = (CollectAction) action;
return createCollectActionComposite(composite, style);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/EvaluateActionPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/EvaluateActionPage.java
index b80b0ca2b97..ba13780f301 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/EvaluateActionPage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/EvaluateActionPage.java
@@ -52,13 +52,16 @@ public class EvaluateActionPage extends PlatformObject implements IBreakpointAct
return fEvalAction;
}
+ @Override
public void actionDialogCanceled() {
}
+ @Override
public void actionDialogOK() {
fEvalAction.setEvalString(fEvalString.getText());
}
+ @Override
public Composite createComposite(IBreakpointAction action, Composite composite, int style) {
fEvalAction = (EvaluateAction) action;
return createEvaluateActionComposite(composite, style);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/TracepointActionsPreferencePage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/TracepointActionsPreferencePage.java
index 1532ac64f1a..77918114f1d 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/TracepointActionsPreferencePage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/TracepointActionsPreferencePage.java
@@ -61,6 +61,7 @@ public class TracepointActionsPreferencePage extends PreferencePage implements I
}
+ @Override
public void init(IWorkbench workbench) {
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/WhileSteppingActionPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/WhileSteppingActionPage.java
index abc47339bac..e3c7f0ea1c6 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/WhileSteppingActionPage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepointactions/WhileSteppingActionPage.java
@@ -125,9 +125,11 @@ public class WhileSteppingActionPage extends PlatformObject implements IBreakpoi
return fWhileSteppingAction;
}
+ @Override
public void actionDialogCanceled() {
}
+ @Override
public void actionDialogOK() {
// Make sure we are dealing with an int
int count = 1;
@@ -141,6 +143,7 @@ public class WhileSteppingActionPage extends PlatformObject implements IBreakpoi
fWhileSteppingAction.setSubActionsContent(actionsList.getActionNames());
}
+ @Override
public Composite createComposite(IBreakpointAction action, Composite composite, int style) {
fWhileSteppingAction = (WhileSteppingAction)action;
return createWhileSteppingActionComposite(composite, style);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepoints/TraceControlView.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepoints/TraceControlView.java
index 1e6a127eb14..d7b0714f36b 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepoints/TraceControlView.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepoints/TraceControlView.java
@@ -124,6 +124,7 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
@Override
public void run() {
asyncExec(new Runnable() {
+ @Override
public void run() {
exitVisualizationMode();
updateActionEnablement();
@@ -152,6 +153,7 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
super.init(site);
site.getPage().addSelectionListener(IDebugUIConstants.ID_DEBUG_VIEW,
fDebugViewListener = new ISelectionListener() {
+ @Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
updateDebugContext();
}});
@@ -221,6 +223,7 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
if (ctx != null) {
getSession().getExecutor().execute(
new DsfRunnable() {
+ @Override
public void run() {
final IGDBTraceControl traceControl = getService(IGDBTraceControl.class);
if (traceControl != null) {
@@ -247,6 +250,7 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
final String finalStatus = traceStatus;
asyncExec(new Runnable() {
+ @Override
public void run() {
fStatusText.setText(finalStatus);
updateActionEnablement();
@@ -257,6 +261,7 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
fTracingSupported = false;
asyncExec(new Runnable() {
+ @Override
public void run() {
fStatusText.setText(EMPTY_STRING);
updateActionEnablement();
@@ -287,6 +292,7 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
getSession().getExecutor().execute(
new DsfRunnable() {
+ @Override
public void run() {
final IGDBTraceControl traceControl = getService(IGDBTraceControl.class);
if (traceControl != null) {
@@ -316,6 +322,7 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
try {
final DsfSession session = getSession();
session.getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
session.removeServiceEventListener(TraceControlView.this);
}
@@ -336,6 +343,7 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
try {
final DsfSession session = getSession();
session.getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
session.removeServiceEventListener(TraceControlView.this);
}
@@ -363,6 +371,7 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
try {
final DsfSession session = getSession();
session.getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
session.addServiceEventListener(TraceControlView.this, null);
}
@@ -395,9 +404,11 @@ public class TraceControlView extends ViewPart implements IViewPart, SessionEnde
}
}
+ @Override
public void sessionEnded(DsfSession session) {
if (session.getId().equals(fDebugSessionId)) {
asyncExec(new Runnable() {
+ @Override
public void run() {
setDebugContext(null);
}});
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepoints/TraceVarDetailsDialog.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepoints/TraceVarDetailsDialog.java
index 8df6738368a..e414bcafc99 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepoints/TraceVarDetailsDialog.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/tracepoints/TraceVarDetailsDialog.java
@@ -168,6 +168,7 @@ public final class TraceVarDetailsDialog extends Dialog {
warningTextLabel = new Label(createButtonComposite, SWT.NONE);
warningTextLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
parent.addDisposeListener(new DisposeListener() {
+ @Override
public void widgetDisposed(DisposeEvent e) {
if (warningImage != null)
warningImage.dispose();
@@ -177,9 +178,11 @@ public final class TraceVarDetailsDialog extends Dialog {
// When the user goes into either input field, then pressing return
// should try to create the command
FocusListener clearWarningFocusListener = new FocusListener() {
+ @Override
public void focusGained(FocusEvent e) {
getShell().setDefaultButton(createButton);
}
+ @Override
public void focusLost(FocusEvent e) {
}
};
@@ -189,6 +192,7 @@ public final class TraceVarDetailsDialog extends Dialog {
// When the user modifies any entry in the input, we should clear any warning
ModifyListener clearWarningListener = new ModifyListener() {
+ @Override
public void modifyText(ModifyEvent e) {
setWarningVisible(false);
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbExpressionVMProvider.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbExpressionVMProvider.java
index 424438918f6..2deb784576c 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbExpressionVMProvider.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbExpressionVMProvider.java
@@ -70,6 +70,7 @@ public class GdbExpressionVMProvider extends ExpressionVMProvider {
}
fPreferencesListener = new IPropertyChangeListener() {
+ @Override
public void propertyChange(final PropertyChangeEvent event) {
handlePropertyChanged(store, event);
}};
@@ -190,6 +191,7 @@ public class GdbExpressionVMProvider extends ExpressionVMProvider {
final FetchMoreChildrenEvent fetchMoreChildrenEvent = new FetchMoreChildrenEvent(
exprCtx, path);
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
handleEvent(fetchMoreChildrenEvent, rm);
}
@@ -225,6 +227,7 @@ public class GdbExpressionVMProvider extends ExpressionVMProvider {
}
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
handleEvent(event);
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbVariableVMNode.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbVariableVMNode.java
index 934a304ac01..2d6eaf50e24 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbVariableVMNode.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbVariableVMNode.java
@@ -108,10 +108,12 @@ public class GdbVariableVMNode extends VariableVMNode {
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.core.IWatchpointTarget#getSize()
*/
+ @Override
public void getSize(final ICWatchpointTarget.GetSizeRequest request) {
final IExpressionDMContext exprDmc = DMContexts.getAncestorOfType(getDMContext(), IExpressionDMContext.class);
if (exprDmc != null) {
getSession().getExecutor().execute(new Runnable() {
+ @Override
public void run() {
final IExpressions expressionService = getServicesTracker().getService(IExpressions.class);
if (expressionService != null) {
@@ -144,6 +146,7 @@ public class GdbVariableVMNode extends VariableVMNode {
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.core.IWatchpointTarget#canCreateWatchpoint(org.eclipse.cdt.debug.internal.core.IWatchpointTarget.CanCreateWatchpointRequest)
*/
+ @Override
public void canSetWatchpoint(final ICWatchpointTarget.CanCreateWatchpointRequest request) {
// If the expression is an l-value, then we say it supports a
// watchpoint. The logic here is basically the same as what's in
@@ -152,6 +155,7 @@ public class GdbVariableVMNode extends VariableVMNode {
final IExpressionDMContext exprDmc = DMContexts.getAncestorOfType(getDMContext(), IExpressionDMContext.class);
if (exprDmc != null) {
getSession().getExecutor().execute(new Runnable() {
+ @Override
public void run() {
final IExpressions expressionService = getServicesTracker().getService(IExpressions.class);
if (expressionService != null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbVariableVMProvider.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbVariableVMProvider.java
index 7832b053c30..a3a89ceb64e 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbVariableVMProvider.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/GdbVariableVMProvider.java
@@ -62,6 +62,7 @@ public class GdbVariableVMProvider extends VariableVMProvider {
}
fPreferencesListener = new IPropertyChangeListener() {
+ @Override
public void propertyChange(final PropertyChangeEvent event) {
handlePropertyChanged(store, event);
}};
@@ -127,6 +128,7 @@ public class GdbVariableVMProvider extends VariableVMProvider {
final FetchMoreChildrenEvent fetchMoreChildrenEvent = new FetchMoreChildrenEvent(
exprCtx, path);
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
handleEvent(fetchMoreChildrenEvent, rm);
}
@@ -162,6 +164,7 @@ public class GdbVariableVMProvider extends VariableVMProvider {
}
getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
handleEvent(event);
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/breakpoints/GdbBreakpointVMProvider.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/breakpoints/GdbBreakpointVMProvider.java
index 9c63633e01f..b6b20dc5618 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/breakpoints/GdbBreakpointVMProvider.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/breakpoints/GdbBreakpointVMProvider.java
@@ -104,6 +104,7 @@ public class GdbBreakpointVMProvider extends BreakpointVMProvider {
try {
fSession.getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
IBreakpointsExtension bpService = fServicesTracker.getService(IBreakpointsExtension.class);
if (bpService == null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/commands/RetargetDebugContextCommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/commands/RetargetDebugContextCommand.java
index 9834ccc58a4..ccbde94b82d 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/commands/RetargetDebugContextCommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/commands/RetargetDebugContextCommand.java
@@ -59,6 +59,7 @@ abstract public class RetargetDebugContextCommand extends AbstractHandler implem
update();
}
+ @Override
public Object execute(ExecutionEvent event) throws ExecutionException {
fCommandId = event.getCommand().getId();
@@ -137,6 +138,7 @@ abstract public class RetargetDebugContextCommand extends AbstractHandler implem
fTargetAdapter = null;
}
+ @Override
public void debugContextChanged(DebugContextEvent event) {
fDebugContext = event.getContext();
update();
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/ContainerVMNode.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/ContainerVMNode.java
index 76233d36347..b727c78a20d 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/ContainerVMNode.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/ContainerVMNode.java
@@ -328,6 +328,7 @@ public class ContainerVMNode extends AbstractContainerVMNode
*/
private final String MEMENTO_NAME = "CONTAINER_MEMENTO_NAME"; //$NON-NLS-1$
+ @Override
public void compareElements(IElementCompareRequest[] requests) {
for (final IElementCompareRequest request : requests) {
@@ -347,6 +348,7 @@ public class ContainerVMNode extends AbstractContainerVMNode
if (procDmc != null) {
try {
getSession().getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
final IProcesses processService = getServicesTracker().getService(IProcesses.class);
if (processService != null) {
@@ -384,6 +386,7 @@ public class ContainerVMNode extends AbstractContainerVMNode
* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider#encodeElements(org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoRequest[])
*/
+ @Override
public void encodeElements(IElementMementoRequest[] requests) {
for (final IElementMementoRequest request : requests) {
@@ -401,6 +404,7 @@ public class ContainerVMNode extends AbstractContainerVMNode
if (procDmc != null) {
try {
getSession().getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
final IProcesses processService = getServicesTracker().getService(IProcesses.class);
if (processService != null) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/LaunchVMProvider.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/LaunchVMProvider.java
index f7f32928ce8..16a0d1d0f57 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/LaunchVMProvider.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/LaunchVMProvider.java
@@ -144,6 +144,7 @@ public class LaunchVMProvider extends AbstractLaunchVMProvider
super.refresh();
try {
getSession().getExecutor().execute(new DsfRunnable() {
+ @Override
public void run() {
DsfServicesTracker tracker = new DsfServicesTracker(GdbUIPlugin.getBundleContext(), getSession().getId());
IProcesses processesService = tracker.getService(IProcesses.class);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/ThreadVMNode.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/ThreadVMNode.java
index 4b56d0dee91..03887ccf20b 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/ThreadVMNode.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/viewmodel/launch/ThreadVMNode.java
@@ -287,6 +287,7 @@ public class ThreadVMNode extends AbstractThreadVMNode
/*
* @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider#compareElements(org.eclipse.debug.internal.ui.viewers.model.provisional.IElementCompareRequest[])
*/
+ @Override
public void compareElements(IElementCompareRequest[] requests) {
for ( IElementCompareRequest request : requests ) {
@@ -314,6 +315,7 @@ public class ThreadVMNode extends AbstractThreadVMNode
/*
* @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider#encodeElements(org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoRequest[])
*/
+ @Override
public void encodeElements(IElementMementoRequest[] requests) {
for ( IElementMementoRequest request : requests ) {
From 46e94156ee3e704bd585a3bd84c8f875f13ee356 Mon Sep 17 00:00:00 2001
From: Sergey Prigogin
Date: Fri, 23 Dec 2011 12:08:12 -0800
Subject: [PATCH 19/60] Bug 367482. Patch by Raphael Zulliger with minor
modifications.
---
.../core/templateengine/messages.properties | 2 +-
.../templateengine/process/ProcessHelper.java | 83 ++++++++++---------
2 files changed, 45 insertions(+), 40 deletions(-)
diff --git a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/messages.properties b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/messages.properties
index 63cc89c65dc..08d89dd50bf 100644
--- a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/messages.properties
+++ b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/messages.properties
@@ -29,4 +29,4 @@ ProcessRunner.argumentsMismatch=Argument type mismatch:
ProcessRunner.error=-->Error:
ProcessRunner.success=-->Success:
ProcessRunner.info=-->Info:
-ProcessHelper.fileNotFound=File not found:
+ProcessHelper.fileNotFound=File not found: ''{0}''
diff --git a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/ProcessHelper.java b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/ProcessHelper.java
index 1e6eb795ce7..465432cac9a 100644
--- a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/ProcessHelper.java
+++ b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/ProcessHelper.java
@@ -6,8 +6,9 @@
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Bala Torati (Symbian) - Initial API and implementation
- * Mark Espiritu (VastSystems) - bug 215283
+ * Bala Torati (Symbian) - Initial API and implementation
+ * Mark Espiritu (VastSystems) - bug 215283
+ * Raphael Zulliger (Indel AG) - [367482] fixed resource leak
*******************************************************************************/
package org.eclipse.cdt.core.templateengine.process;
@@ -20,7 +21,6 @@ import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.net.URL;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@@ -29,9 +29,10 @@ import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
+import com.ibm.icu.text.MessageFormat;
+
/**
- * Acts as Helper class for process the processes i.e., copy, replace and append
- * files.
+ * Acts as helper class for process the processes i.e., copy, replace and append files.
*/
public class ProcessHelper {
public static final String CONDITION = "condition"; //$NON-NLS-1$
@@ -45,15 +46,15 @@ public class ProcessHelper {
*
* @param fileContents contents which are appended to the file.
* @param toFile a file to append contents.
- * @throws IOException,
- * exception while writing contents into a file
- *
+ * @throws IOException exception while writing contents into a file
* @since 4.0
*/
public static void appendFile(String fileContents, File toFile) throws IOException {
RandomAccessFile raf = null;
if (!toFile.exists()) {
- throw new FileNotFoundException(" The specified destination file does not exists "); //$NON-NLS-1$
+ throw new FileNotFoundException(MessageFormat.format(
+ TemplateEngineMessages.getString("ProcessHelper.fileNotFound"), //$NON-NLS-1$
+ toFile.getPath()));
} else {
try {
raf = new RandomAccessFile(toFile, "rw"); //$NON-NLS-1$
@@ -69,7 +70,7 @@ public class ProcessHelper {
/**
* This method returns a vector of all replace marker strings. (e.g.,
- * $(item), vector contains 'item' as one item. , ) is the end pattern.
+ * $(item), vector contains 'item' as one item) is the end pattern.
*
* @param str A given string possibly containing markers.
* @return the set of names occurring within markers
@@ -77,14 +78,16 @@ public class ProcessHelper {
*/
public static Set getReplaceKeys(String str) {
Set replaceStrings = new HashSet();
- int start= 0, end= 0;
+ int start= 0;
+ int end= 0;
while ((start = str.indexOf(START_PATTERN, start)) >= 0) {
end = str.indexOf(END_PATTERN, start);
if (end != -1) {
replaceStrings.add(str.substring(start + START_PATTERN.length(), end));
start = end + END_PATTERN.length();
- } else
+ } else {
start++;
+ }
}
return replaceStrings;
}
@@ -93,19 +96,18 @@ public class ProcessHelper {
* This method takes a URL as parameter to read the contents, and to add
* into a string buffer.
*
- * @param source
- * URL to read the contents.
- * @return string, contents of a file specified in the URL source path.
- * @throws IOException
- *
+ * @param source URL to read the contents.
+ * @return string contents of a file specified in the URL source path.
* @since 4.0
*/
public static String readFromFile(URL source) throws IOException {
char[] chars = new char[4092];
InputStreamReader contentsReader = null;
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
if (!new java.io.File(source.getFile()).exists()) {
- throw new FileNotFoundException(TemplateEngineMessages.getString("ProcessHelper.fileNotFound") + source.getFile()); //$NON-NLS-1$
+ throw new FileNotFoundException(MessageFormat.format(
+ TemplateEngineMessages.getString("ProcessHelper.fileNotFound"), //$NON-NLS-1$
+ source.getFile()));
} else {
contentsReader = new InputStreamReader(source.openStream());
int c;
@@ -124,12 +126,8 @@ public class ProcessHelper {
* This method reads contents from source, and writes the contents into
* destination file.
*
- * @param source
- * URL to read the contents.
- * @param dest
- * destination file to write the contents.
- * @throws IOException
- *
+ * @param source URL to read the contents.
+ * @param dest destination file to write the contents.
* @since 4.0
*/
public static void copyBinaryFile(URL source, File dest) throws IOException {
@@ -137,22 +135,30 @@ public class ProcessHelper {
if (source != null && dest != null) {
File file = new File(source.getFile());
if (file.isFile()) {
- FileInputStream fis = new FileInputStream(file);
- FileOutputStream fos = new FileOutputStream(dest);
- int ch;
- while (true) {
- ch = fis.read(bytes);
- if (ch == -1) {
- break;
+ FileInputStream in = null;
+ FileOutputStream out = null;
+ try {
+ in = new FileInputStream(file);
+ out = new FileOutputStream(dest);
+ int len;
+ while ((len = in.read(bytes)) != -1) {
+ out.write(bytes, 0, len);
+ }
+ } finally {
+ try {
+ if (in != null)
+ in.close();
+ } finally {
+ if (out != null)
+ out.close();
}
- fos.write(bytes, 0, ch);
}
}
}
}
/**
- * This method Creates the Directories in the parent Folder.
+ * This method creates the directories in the parent folder.
* @param projectHandle
* @param parentFolder
* @throws CoreException
@@ -169,18 +175,17 @@ public class ProcessHelper {
parentFolder.create(true, true, null);
}
-
/**
* @param string
* @param macros
* @param valueStore
- * @return the Macro Value after expanding the Macros.
+ * @return the macro value after expanding the macros.
*
* @since 4.0
*/
- public static String getValueAfterExpandingMacros(String string, Set