From c47e2bcfcae1079ef40cd7e3c6b33cf4a7a19127 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Mon, 28 Mar 2005 20:55:04 +0000 Subject: Added completion for qualified names. Fixed up the images for fields. --- .../internal/core/dom/parser/cpp/GNUCPPSourceParser.java | 8 ++++++++ .../cdt/internal/core/parser/scanner2/BaseScanner.java | 2 ++ .../ui/text/contentassist/DOMCompletionContributor.java | 14 ++++++++++++++ 3 files changed, 24 insertions(+) (limited to 'core') 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(); } -- cgit v1.2.3