Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Schorn2011-05-02 09:24:05 +0000
committerMarkus Schorn2011-05-02 09:24:05 +0000
commit63eebc52903e7edf362dbde7e5f9d5382b47c477 (patch)
treea0854a135272d0ba409a3350c410d26634e1aef3
parentf915813d3e46dc1eb34a361613c3534b06b45a6f (diff)
downloadorg.eclipse.cdt-63eebc52903e7edf362dbde7e5f9d5382b47c477.tar.gz
org.eclipse.cdt-63eebc52903e7edf362dbde7e5f9d5382b47c477.tar.xz
org.eclipse.cdt-63eebc52903e7edf362dbde7e5f9d5382b47c477.zip
Bug 173458: Make camel-case content assist a UI preference, by Jens Elmenthaler.
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ContentAssistMatcherFactoryTest.java13
-rw-r--r--core/org.eclipse.cdt.core/META-INF/MANIFEST.MF2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndex.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/SegmentMatcher.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CVisitor.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClosureType.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPScope.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/util/ContentAssistMatcherFactory.java (renamed from core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ContentAssistMatcherFactory.java)61
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/MacroContainerCollector.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/NamedNodeCollector.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassScope.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumScope.java2
-rw-r--r--core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java5
-rw-r--r--core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java7
-rw-r--r--core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePreferenceInitializer.java3
-rw-r--r--core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/ContentAssist2TestSuite.java2
-rw-r--r--core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/ShowCamelCasePreferenceTest.java113
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CodeAssistPreferencePage.java28
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProposal.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistPreference.java70
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java2
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/InclusionProposalComputer.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPlugin.java5
26 files changed, 234 insertions, 114 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ContentAssistMatcherFactoryTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ContentAssistMatcherFactoryTest.java
index f5888e9a8e8..b470674dbb6 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ContentAssistMatcherFactoryTest.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ContentAssistMatcherFactoryTest.java
@@ -14,22 +14,18 @@ package org.eclipse.cdt.core.parser.tests;
import junit.framework.TestCase;
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.CCorePreferenceConstants;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
-import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
public class ContentAssistMatcherFactoryTest extends TestCase {
@Override
protected void tearDown() throws Exception {
- InstanceScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID).remove(
- CCorePreferenceConstants.SHOW_CAMEL_CASE_MATCHES);
+ ContentAssistMatcherFactory.getInstance().setShowCamelCaseMatches(true);
super.tearDown();
}
- public void testCamelCasePreference() {
+ public void testConfiguration() {
// Default is show camel case matches on
assertTrue(match("foo", "fooBar"));
assertTrue(match("fB", "fooBar"));
@@ -64,8 +60,7 @@ public class ContentAssistMatcherFactoryTest extends TestCase {
}
private void setShowCamelCaseMatches(boolean enabled) {
- InstanceScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID).putBoolean(
- CCorePreferenceConstants.SHOW_CAMEL_CASE_MATCHES, enabled);
+ ContentAssistMatcherFactory.getInstance().setShowCamelCaseMatches(enabled);
}
private boolean match(String pattern, String name) {
diff --git a/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF b/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF
index b628c67b30e..ececbc080a5 100644
--- a/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.cdt.core/META-INF/MANIFEST.MF
@@ -67,7 +67,7 @@ Export-Package: org.eclipse.cdt.core,
org.eclipse.cdt.internal.core.parser.problem;x-internal:=true,
org.eclipse.cdt.internal.core.parser.scanner;x-friends:="org.eclipse.cdt.ui",
org.eclipse.cdt.internal.core.parser.token;x-friends:="org.eclipse.cdt.ui",
- org.eclipse.cdt.internal.core.parser.util;x-internal:=true,
+ org.eclipse.cdt.internal.core.parser.util;x-friends:="org.eclipse.cdt.ui",
org.eclipse.cdt.internal.core.pdom;x-friends:="org.eclipse.cdt.ui",
org.eclipse.cdt.internal.core.pdom.db;x-friends:="org.eclipse.cdt.ui",
org.eclipse.cdt.internal.core.pdom.dom;x-friends:="org.eclipse.cdt.ui",
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndex.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndex.java
index 9ae50211c0d..4bca60849ed 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndex.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndex.java
@@ -329,14 +329,7 @@ public interface IIndex {
public IIndexBinding[] findBindingsForPrefix(char[] prefix, boolean fileScopeOnly, IndexFilter filter, IProgressMonitor monitor) throws CoreException;
/**
- * Searches for all bindings that are valid completions to the given prefix.
- * @param prefix the text to be completed.
- * @param fileScopeOnly if true, only bindings at file scope are returned
- * @param filter a filter that allows for skipping parts of the index
- * @param monitor a monitor for progress reporting and cancellation, may be <code>null</code>
- * @return an array of bindings that complete the given text
- * @throws CoreException
- * @since 5.3
+ * @noreference This method is not intended to be referenced by clients.
*/
public IIndexBinding[] findBindingsForContentAssist(char[] prefix, boolean fileScopeOnly, IndexFilter filter, IProgressMonitor monitor) throws CoreException;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/SegmentMatcher.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/SegmentMatcher.java
index ed3e500d6e9..57d34d217ce 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/SegmentMatcher.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/SegmentMatcher.java
@@ -230,7 +230,7 @@ public class SegmentMatcher {
* name survived a binary search using the prefix returned by
* @{@link #getPrefixForBinarySearch()} as key.
*/
- boolean matchRequiredAfterBinarySearch() {
+ public boolean matchRequiredAfterBinarySearch() {
return !singleSegment;
}
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java
index a9aecb7005a..95a095369c8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java
@@ -57,13 +57,13 @@ import org.eclipse.cdt.core.index.IndexFilter;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.CharArrayObjectMap;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousDeclarator;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousParameterDeclaration;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousSimpleDeclaration;
import org.eclipse.cdt.internal.core.dom.parser.IASTInternalScope;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CVisitor.java
index 3e6d48dd54b..f85c2753aa6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CVisitor.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CVisitor.java
@@ -90,7 +90,6 @@ import org.eclipse.cdt.core.index.IIndexFileSet;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.CharArraySet;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
@@ -99,6 +98,7 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTInternalScope;
import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer;
import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding;
import org.eclipse.cdt.internal.core.dom.parser.ProblemType;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
/**
* Collection of methods to find information in an AST.
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java
index de50f1cc0cc..40391f11ef0 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java
@@ -42,11 +42,11 @@ import org.eclipse.cdt.core.model.IEnumeration;
import org.eclipse.cdt.core.parser.Keywords;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.internal.core.dom.parser.IASTInternalNameOwner;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.core.runtime.Assert;
/**
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java
index e2b956327dd..618c29500d2 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassScope.java
@@ -55,13 +55,13 @@ import org.eclipse.cdt.core.index.IIndexFileSet;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.CharArrayObjectMap;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.ObjectSet;
import org.eclipse.cdt.internal.core.dom.parser.ASTQueries;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPTemplates;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
/**
* Base implementation for c++ scopes.
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClosureType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClosureType.java
index 3a9e06d29f4..7a702e36aa8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClosureType.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClosureType.java
@@ -46,13 +46,13 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPParameter;
import org.eclipse.cdt.core.index.IIndexBinding;
import org.eclipse.cdt.core.index.IIndexFileSet;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
import org.eclipse.cdt.internal.core.dom.Linkage;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.Conversions;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.core.runtime.PlatformObject;
/**
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPScope.java
index 635d7c46a09..e928a663cfb 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPScope.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPScope.java
@@ -38,7 +38,6 @@ import org.eclipse.cdt.core.index.IndexFilter;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.core.parser.util.CharArrayObjectMap;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
import org.eclipse.cdt.core.parser.util.ObjectSet;
import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
@@ -46,6 +45,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.LookupData;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ContentAssistMatcherFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/util/ContentAssistMatcherFactory.java
index 8bf2566751a..6ac40fe7527 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ContentAssistMatcherFactory.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/util/ContentAssistMatcherFactory.java
@@ -7,18 +7,13 @@
*
* Contributors:
* Jens Elmenthaler - http://bugs.eclipse.org/173458 (camel case completion)
+ * IBM Corporation
*******************************************************************************/
-package org.eclipse.cdt.core.parser.util;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.CCorePreferenceConstants;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.core.runtime.preferences.IPreferencesService;
-import org.eclipse.core.runtime.preferences.InstanceScope;
+package org.eclipse.cdt.internal.core.parser.util;
+import org.eclipse.cdt.core.parser.util.CharArrayUtils;
+import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
+import org.eclipse.cdt.core.parser.util.SegmentMatcher;
/**
* The facade to the pattern matching algorithms of content assist.
@@ -32,18 +27,8 @@ public class ContentAssistMatcherFactory {
private static ContentAssistMatcherFactory instance = null;
- private boolean showCamelCaseMatches;
-
- private final IPreferenceChangeListener preferencesListener = new IPreferenceChangeListener() {
+ private boolean showCamelCaseMatches = true;
- public void preferenceChange(PreferenceChangeEvent event) {
- String prop = event.getKey();
- if (prop.equals(CCorePreferenceConstants.SHOW_CAMEL_CASE_MATCHES)) {
- updateOnPreferences();
- }
- }
- };
-
private static class CamelCaseMatcher implements IContentAssistMatcher {
private final SegmentMatcher matcher;
@@ -88,9 +73,7 @@ public class ContentAssistMatcherFactory {
}
private ContentAssistMatcherFactory() {
- getPreferences().addPreferenceChangeListener(
- preferencesListener);
- updateOnPreferences();
+
}
public static synchronized ContentAssistMatcherFactory getInstance() {
@@ -101,28 +84,22 @@ public class ContentAssistMatcherFactory {
return instance;
}
- private void shutdownInternal() {
- getPreferences().removePreferenceChangeListener(
- preferencesListener);
+ /**
+ * This function is not supposed to be called from any functions except
+ * for ContentAssistMatcherPreference.updateOnPreferences.
+ *
+ * @param showCamelCaseMatches
+ */
+ public synchronized void setShowCamelCaseMatches(boolean showCamelCaseMatches) {
+ this.showCamelCaseMatches = showCamelCaseMatches;
}
/**
- * @noreference This method is not intended to be referenced by clients.
+ *
+ * @return <code>true</code> if showCamelCaseMatches is set from the content assist preference page.
*/
- public static synchronized void shutdown() {
- if (instance != null) {
- instance.shutdownInternal();
- }
- }
-
- private static IEclipsePreferences getPreferences() {
- return InstanceScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID);
- }
-
- private synchronized void updateOnPreferences() {
- IPreferencesService prefs = Platform.getPreferencesService();
- showCamelCaseMatches = prefs.getBoolean(CCorePlugin.PLUGIN_ID,
- CCorePreferenceConstants.SHOW_CAMEL_CASE_MATCHES, true, null);
+ public boolean getShowCamelCaseMatches() {
+ return showCamelCaseMatches;
}
/**
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/MacroContainerCollector.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/MacroContainerCollector.java
index 3e46d0d63c8..db75385a3e5 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/MacroContainerCollector.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/MacroContainerCollector.java
@@ -14,8 +14,8 @@ package org.eclipse.cdt.internal.core.pdom.dom;
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.internal.core.pdom.db.IBTreeVisitor;
import org.eclipse.cdt.internal.core.pdom.db.IString;
import org.eclipse.core.runtime.CoreException;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/NamedNodeCollector.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/NamedNodeCollector.java
index ee0a8f84394..651a02d49ce 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/NamedNodeCollector.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/NamedNodeCollector.java
@@ -16,8 +16,8 @@ import java.util.List;
import org.eclipse.cdt.core.dom.IPDOMNode;
import org.eclipse.cdt.core.dom.IPDOMVisitor;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.internal.core.pdom.db.IBTreeVisitor;
import org.eclipse.cdt.internal.core.pdom.db.IString;
import org.eclipse.core.runtime.CoreException;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassScope.java
index 3c36369abff..9ba21e35989 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassScope.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassScope.java
@@ -42,12 +42,12 @@ import org.eclipse.cdt.core.index.IndexFilter;
import org.eclipse.cdt.core.parser.Keywords;
import org.eclipse.cdt.core.parser.util.CharArrayMap;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassScope;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil;
import org.eclipse.cdt.internal.core.index.DeclaredBindingsFilter;
import org.eclipse.cdt.internal.core.index.IIndexScope;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.internal.core.pdom.PDOM;
import org.eclipse.cdt.internal.core.pdom.dom.BindingCollector;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumScope.java
index b34a281e2d1..62c6cd90ab2 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumScope.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPEnumScope.java
@@ -29,10 +29,10 @@ import org.eclipse.cdt.core.index.IIndexFileSet;
import org.eclipse.cdt.core.index.IIndexName;
import org.eclipse.cdt.core.index.IndexFilter;
import org.eclipse.cdt.core.parser.util.CharArrayMap;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics;
import org.eclipse.cdt.internal.core.index.IIndexScope;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.internal.core.pdom.PDOM;
import org.eclipse.core.runtime.CoreException;
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java
index a588bf23956..e39749b1a02 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java
@@ -34,7 +34,6 @@ import org.eclipse.cdt.core.model.ILanguage;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.model.IWorkingCopy;
import org.eclipse.cdt.core.parser.IScannerInfoProvider;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.resources.IConsole;
import org.eclipse.cdt.core.resources.IPathEntryVariableManager;
import org.eclipse.cdt.core.settings.model.ICConfigExtensionReference;
@@ -324,9 +323,7 @@ public class CCorePlugin extends Plugin {
fNewCProjectDescriptionManager.shutdown();
ResourceLookup.shutdown();
- ContentAssistMatcherFactory.shutdown();
-
- savePluginPreferences();
+ savePluginPreferences();
} finally {
super.stop(context);
}
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java
index 605e7ed962e..ccd22d28084 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java
@@ -165,10 +165,5 @@ public class CCorePreferenceConstants {
*/
public static final String PREF_BUILD_CONFIGS_RESOURCE_CHANGES = "build.proj.ref.configs.enabled"; //$NON-NLS-1$
- /**
- * Key for boolean preference telling whether camel case/underscore matches are to be shown by content assist features or not.
- *
- * @since 5.3
- */
- public static final String SHOW_CAMEL_CASE_MATCHES = "contentAssist.showCamelCaseMatches"; //$NON-NLS-1$
+
}
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePreferenceInitializer.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePreferenceInitializer.java
index 7116634cf09..6f8c80b4a4d 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePreferenceInitializer.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePreferenceInitializer.java
@@ -70,7 +70,6 @@ public class CCorePreferenceInitializer extends AbstractPreferenceInitializer {
// indexer defaults
IndexerPreferences.initializeDefaultPreferences(defaultPreferences);
- // content assist defaults
- defaultPreferences.putBoolean(CCorePreferenceConstants.SHOW_CAMEL_CASE_MATCHES, true);
+
}
}
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/ContentAssist2TestSuite.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/ContentAssist2TestSuite.java
index 86cd6454361..70db213e247 100644
--- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/ContentAssist2TestSuite.java
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/ContentAssist2TestSuite.java
@@ -71,5 +71,7 @@ public class ContentAssist2TestSuite extends TestSuite {
addTest(CompletionTests.suite());
addTest(CompletionTests_PlainC.suite());
addTest(ParameterHintTests.suite());
+
+ addTest(ShowCamelCasePreferenceTest.suite());
}
}
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/ShowCamelCasePreferenceTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/ShowCamelCasePreferenceTest.java
new file mode 100644
index 00000000000..c03a7a1a0ca
--- /dev/null
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/ShowCamelCasePreferenceTest.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Jens Elmenthaler 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:
+ * Jens Elmenthaler - http://bugs.eclipse.org/173458 (camel case completion)
+ *******************************************************************************/
+package org.eclipse.cdt.ui.tests.text.contentassist2;
+
+import junit.framework.Test;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+
+import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
+import org.eclipse.cdt.ui.CUIPlugin;
+
+import org.eclipse.cdt.internal.ui.text.contentassist.ContentAssistPreference;
+
+/**
+ * Test the correct response to the value of {@link ContentAssistPreference#SHOW_CAMEL_CASE_MATCHES}.
+ */
+public class ShowCamelCasePreferenceTest extends AbstractContentAssistTest {
+
+ private static final String SOURCE_FILE_NAME = "ContentAssistPreferenceTest.cpp";
+ private static final String CURSOR_LOCATION_TAG = "/*cursor*/";
+
+
+ protected int fCursorOffset;
+ private IProject fProject;
+
+ public ShowCamelCasePreferenceTest(String name) {
+ super(name, true);
+ }
+
+ public static Test suite() {
+ return BaseTestCase.suite(ShowCamelCasePreferenceTest.class, "_");
+ }
+
+ @Override
+ protected IFile setUpProjectContent(IProject project) throws Exception {
+ fProject= project;
+ StringBuffer sourceContent= getContentsForTest(1)[0];
+ fCursorOffset= sourceContent.indexOf(CURSOR_LOCATION_TAG);
+ assertTrue("No cursor location specified", fCursorOffset >= 0);
+ sourceContent.delete(fCursorOffset, fCursorOffset+CURSOR_LOCATION_TAG.length());
+ return createFile(project, SOURCE_FILE_NAME, sourceContent.toString());
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ InstanceScope.INSTANCE.getNode(CUIPlugin.PLUGIN_ID).remove(
+ ContentAssistPreference.SHOW_CAMEL_CASE_MATCHES);
+ super.setUp();
+ }
+
+ @Override
+
+ protected void tearDown() throws Exception {
+ InstanceScope.INSTANCE.getNode(CUIPlugin.PLUGIN_ID).remove(
+ ContentAssistPreference.SHOW_CAMEL_CASE_MATCHES);
+ super.tearDown();
+ }
+
+ protected void assertCompletionResults(int offset, String[] expected, int compareType) throws Exception {
+ assertContentAssistResults(offset, expected, true, compareType);
+ }
+
+ protected void assertCompletionResults(String[] expected) throws Exception {
+ assertCompletionResults(fCursorOffset, expected, AbstractContentAssistTest.COMPARE_REP_STRINGS);
+ }
+
+ private void setShowCamelCaseMatches(boolean enabled) {
+ InstanceScope.INSTANCE.getNode(CUIPlugin.PLUGIN_ID).putBoolean(
+ ContentAssistPreference.SHOW_CAMEL_CASE_MATCHES, enabled);
+ }
+
+ // int fbar;
+ // int fooBar;
+ // void something() {
+ // fB/*cursor*/
+ // }
+ public void testDefault() throws Exception {
+ final String[] expected= { "fbar", "fooBar" };
+ assertCompletionResults(expected);
+ }
+
+ // int fbar;
+ // int fooBar;
+ // void something() {
+ // fB/*cursor*/
+ // }
+ public void testCamelCaseOff() throws Exception {
+ setShowCamelCaseMatches(false);
+ final String[] expected= { "fbar" };
+ assertCompletionResults(expected);
+ }
+
+ // int fbar;
+ // int fooBar;
+ // void something() {
+ // fB/*cursor*/
+ // }
+ public void testCamelCaseOn() throws Exception {
+ setShowCamelCaseMatches(true);
+ final String[] expected= { "fbar", "fooBar" };
+ assertCompletionResults(expected);
+ }
+}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CodeAssistPreferencePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CodeAssistPreferencePage.java
index 3386f6551e3..3dbef4bcb72 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CodeAssistPreferencePage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CodeAssistPreferencePage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2002, 2010 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
@@ -26,7 +26,6 @@ import org.eclipse.swt.widgets.Group;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.cdt.core.CCorePreferenceConstants;
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
import org.eclipse.cdt.internal.ui.preferences.OverlayPreferenceStore.OverlayKey;
@@ -35,7 +34,7 @@ import org.eclipse.cdt.internal.ui.text.contentassist.ContentAssistPreference;
/**
* CodeAssistPreferencePage
*/
-public class CodeAssistPreferencePage extends AbstractMixedPreferencePage {
+public class CodeAssistPreferencePage extends AbstractPreferencePage {
/**
*
@@ -59,6 +58,7 @@ public class CodeAssistPreferencePage extends AbstractMixedPreferencePage {
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, ContentAssistPreference.AUTOACTIVATION_TRIGGERS_REPLACE_DOT_WITH_ARROW));
// overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.SHOW_DOCUMENTED_PROPOSALS));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.ORDER_PROPOSALS));
+ overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.SHOW_CAMEL_CASE_MATCHES));
// overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.ADD_INCLUDE));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.CURRENT_FILE_SEARCH_SCOPE));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, ContentAssistPreference.PROJECT_SEARCH_SCOPE));
@@ -69,18 +69,7 @@ public class CodeAssistPreferencePage extends AbstractMixedPreferencePage {
return keys;
}
-
- @Override
- protected OverlayPreferenceStore.OverlayKey[] createCorePrefsOverlayStoreKeys() {
- ArrayList<OverlayKey> overlayKeys = new ArrayList<OverlayKey>();
-
- overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, CCorePreferenceConstants.SHOW_CAMEL_CASE_MATCHES));
-
- OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys.size()];
- overlayKeys.toArray(keys);
- return keys;
- }
-
+
/*
* @see PreferencePage#createControl(Composite)
*/
@@ -97,9 +86,7 @@ public class CodeAssistPreferencePage extends AbstractMixedPreferencePage {
protected Control createContents(Composite parent) {
fOverlayStore.load();
fOverlayStore.start();
- corePrefsOverlayStore.load();
- corePrefsOverlayStore.start();
-
+
Composite contentAssistComposite = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
@@ -140,7 +127,7 @@ public class CodeAssistPreferencePage extends AbstractMixedPreferencePage {
addComboBox(sortingGroup, label, ContentAssistPreference.PROPOSALS_FILTER, NO_TEXT_LIMIT, 0);
label= PreferencesMessages.CEditorPreferencePage_ContentAssistPage_showCamelCaseMatches;
- addCorePrefsCheckBox(sortingGroup, label, CCorePreferenceConstants.SHOW_CAMEL_CASE_MATCHES, 0);
+ addCheckBox(sortingGroup, label, ContentAssistPreference.SHOW_CAMEL_CASE_MATCHES, 0);
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
// The following items are grouped for Auto Activation
@@ -189,7 +176,8 @@ public class CodeAssistPreferencePage extends AbstractMixedPreferencePage {
store.setDefault(ContentAssistPreference.PREFIX_COMPLETION, true);
store.setDefault(ContentAssistPreference.ORDER_PROPOSALS, false);
store.setDefault(ContentAssistPreference.PROPOSALS_FILTER, ProposalFilterPreferencesUtil.getProposalFilternamesAsString()); // $NON_NLS 1$
-
+ store.setDefault(ContentAssistPreference.SHOW_CAMEL_CASE_MATCHES, true);
+
}
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProposal.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProposal.java
index c16887fcab9..bc18bf54212 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProposal.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProposal.java
@@ -50,10 +50,11 @@ import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.ui.texteditor.link.EditorLinkedModeUI;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.text.ICCompletionProposal;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
+
import org.eclipse.cdt.internal.ui.text.CTextTools;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistPreference.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistPreference.java
index e669ef96d42..2a0f050da53 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistPreference.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistPreference.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
@@ -12,6 +12,13 @@
*******************************************************************************/
package org.eclipse.cdt.internal.ui.text.contentassist;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.PreferenceConverter;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.contentassist.ContentAssistant;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
@@ -19,14 +26,9 @@ import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.PreferenceConstants;
import org.eclipse.cdt.ui.text.IColorManager;
-import org.eclipse.cdt.internal.ui.text.CTextTools;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.ContentAssistant;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.cdt.internal.ui.text.CTextTools;
@@ -70,6 +72,9 @@ public class ContentAssistPreference {
public final static String PROJECT_SEARCH_SCOPE= "content_assist_project_search_scope"; //$NON-NLS-1$
/** Preference key for completion filtering */
public final static String PROPOSALS_FILTER= "content_assist_proposal_filter"; //$NON-NLS-1$
+
+ /** Key for boolean preference telling whether camel case/underscore matches are to be shown by content assist features or not*/
+ public static final String SHOW_CAMEL_CASE_MATCHES = "contentAssist.showCamelCaseMatches"; //$NON-NLS-1$
private static Color getColor(IPreferenceStore store, String key, IColorManager manager) {
RGB rgb= PreferenceConverter.getColor(store, key);
@@ -259,4 +264,53 @@ public class ContentAssistPreference {
changeCProcessor(assistant, store, p);
}
+
+ private static ContentAssistPreference instance = null;
+
+ private final IPropertyChangeListener propertyListener = new IPropertyChangeListener() {
+
+ public void propertyChange(PropertyChangeEvent event) {
+ String prop = event.getProperty();
+ if (prop.equals(ContentAssistPreference.SHOW_CAMEL_CASE_MATCHES)) {
+ updateOnPreferences();
+ }
+
+ }
+ };
+
+ private ContentAssistPreference() {
+ getPreferences().addPropertyChangeListener(
+ propertyListener);
+ updateOnPreferences();
+ }
+
+ public static synchronized ContentAssistPreference getInstance() {
+ if (instance == null) {
+ instance = new ContentAssistPreference();
+ }
+
+ return instance;
+ }
+
+ private static IPreferenceStore getPreferences() {
+ return CUIPlugin.getDefault().getPreferenceStore();
+ }
+
+ private synchronized void updateOnPreferences() {
+ boolean showCamelCaseMatches = getPreferences().getBoolean(ContentAssistPreference.SHOW_CAMEL_CASE_MATCHES);
+ ContentAssistMatcherFactory.getInstance().setShowCamelCaseMatches(showCamelCaseMatches);
+ }
+
+ private void shutdownInternal() {
+ getPreferences().removePropertyChangeListener(propertyListener);
+ }
+
+ /**
+ * @noreference This method is not intended to be referenced by clients.
+ */
+ public static synchronized void shutdown() {
+ if (instance != null) {
+ instance.shutdownInternal();
+ }
+ }
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java
index 118869e812e..969cabaeda9 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionProposalComputer.java
@@ -65,7 +65,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPUsingDeclaration;
import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.core.parser.util.CharArrayUtils;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.text.ICPartitions;
@@ -80,6 +79,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPImplicitFunction;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPImplicitMethod;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPImplicitTypedef;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.AccessContext;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/InclusionProposalComputer.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/InclusionProposalComputer.java
index 1340187ed55..da4560cbb20 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/InclusionProposalComputer.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/InclusionProposalComputer.java
@@ -42,13 +42,14 @@ import org.eclipse.cdt.core.model.IInclude;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.parser.IExtendedScannerInfo;
import org.eclipse.cdt.core.parser.IScannerInfo;
-import org.eclipse.cdt.core.parser.util.ContentAssistMatcherFactory;
import org.eclipse.cdt.core.parser.util.IContentAssistMatcher;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.text.ICPartitions;
import org.eclipse.cdt.ui.text.contentassist.ContentAssistInvocationContext;
import org.eclipse.cdt.ui.text.contentassist.ICompletionProposalComputer;
+import org.eclipse.cdt.internal.core.parser.util.ContentAssistMatcherFactory;
+
import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
/**
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 7c68d7fda2b..f8e2cdc9137 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
@@ -97,6 +97,7 @@ import org.eclipse.cdt.internal.ui.preferences.BuildConsolePreferencePage;
import org.eclipse.cdt.internal.ui.refactoring.CTextFileChangeFactory;
import org.eclipse.cdt.internal.ui.text.CTextTools;
import org.eclipse.cdt.internal.ui.text.c.hover.CEditorTextHoverDescriptor;
+import org.eclipse.cdt.internal.ui.text.contentassist.ContentAssistPreference;
import org.eclipse.cdt.internal.ui.text.doctools.DocCommentOwnerManager;
import org.eclipse.cdt.internal.ui.text.doctools.EditorReopener;
import org.eclipse.cdt.internal.ui.text.folding.CFoldingStructureProviderRegistry;
@@ -557,6 +558,8 @@ public class CUIPlugin extends AbstractUIPlugin {
// A workaround for black console bug 320723.
BuildConsolePreferencePage.initDefaults(getPreferenceStore());
+ //initialize ContentAssistMatcherPreference
+ ContentAssistPreference.getInstance();
// start make-ui plugin, such that it can check for project conversions.
Job job= new Job(Messages.CUIPlugin_jobStartMakeUI) {
@@ -623,6 +626,8 @@ public class CUIPlugin extends AbstractUIPlugin {
fDocumentProvider.shutdown();
fDocumentProvider= null;
}
+
+ ContentAssistPreference.shutdown();
// Do this last.
super.stop(context);

Back to the top