Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorDoug Schaefer2005-03-28 20:55:04 +0000
committerDoug Schaefer2005-03-28 20:55:04 +0000
commitc47e2bcfcae1079ef40cd7e3c6b33cf4a7a19127 (patch)
tree6107a6fafc9bf7270d80b4fd33c15550369255fd /core
parent746bb4fda5490685edf33a06da973552ca2e5619 (diff)
downloadorg.eclipse.cdt-c47e2bcfcae1079ef40cd7e3c6b33cf4a7a19127.tar.gz
org.eclipse.cdt-c47e2bcfcae1079ef40cd7e3c6b33cf4a7a19127.tar.xz
org.eclipse.cdt-c47e2bcfcae1079ef40cd7e3c6b33cf4a7a19127.zip
Added completion for qualified names. Fixed up the images for fields.
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java2
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionContributor.java14
3 files changed, 24 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java
index 936250b398c..822e2b38987 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java
@@ -375,6 +375,8 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
throwBacktrack(first.getOffset(), l.getEndOffset()
- first.getOffset());
case IToken.tIDENTIFIER:
+ case IToken.tCOMPLETION:
+ case IToken.tEOC:
last = consume();
last = consumeTemplateArguments(last, argumentList);
if (last.getType() == IToken.tGT)
@@ -4533,6 +4535,12 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
*/
protected IASTName createName(IToken token) {
CPPASTName n = new CPPASTName(token.getCharImage());
+ switch (token.getType()) {
+ case IToken.tCOMPLETION:
+ case IToken.tEOC:
+ createCompletionNode(token).addName(n);
+ break;
+ }
n.setOffsetAndLength(token.getOffset(), token.getLength());
return n;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java
index c889ccbe761..525d8d0690c 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner2/BaseScanner.java
@@ -1517,6 +1517,8 @@ abstract class BaseScanner implements IScanner {
if (finished) {
if (contentAssistMode) {
+ if (lastToken != null)
+ lastToken.setNext(nextToken);
lastToken = nextToken;
nextToken = eocToken;
return lastToken;
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionContributor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionContributor.java
index 1f4982fb216..8847ddbbe52 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionContributor.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/DOMCompletionContributor.java
@@ -23,6 +23,8 @@ import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.IVariable;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
+import org.eclipse.cdt.core.dom.ast.cpp.ICPPField;
+import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.text.contentassist.ICompletionContributor;
@@ -146,6 +148,18 @@ public class DOMCompletionContributor implements ICompletionContributor {
imageDescriptor = CElementImageProvider.getUnionImageDescriptor();
} else if (binding instanceof IFunction) {
imageDescriptor = CElementImageProvider.getFunctionImageDescriptor();
+ } else if (binding instanceof ICPPField) {
+ switch (((ICPPField)binding).getVisibility()) {
+ case ICPPField.v_private:
+ imageDescriptor = CElementImageProvider.getFieldImageDescriptor(ASTAccessVisibility.PRIVATE);
+ break;
+ case ICPPField.v_protected:
+ imageDescriptor = CElementImageProvider.getFieldImageDescriptor(ASTAccessVisibility.PROTECTED);
+ break;
+ default:
+ imageDescriptor = CElementImageProvider.getFieldImageDescriptor(ASTAccessVisibility.PUBLIC);
+ break;
+ }
} else if (binding instanceof IVariable) {
imageDescriptor = CElementImageProvider.getVariableImageDescriptor();
}

Back to the top