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

Added content assist for expressions in return statements. Also added the icon for namespaces.

This commit is contained in:
Doug Schaefer 2005-04-01 21:01:46 +00:00
parent 363f066567
commit 67c1fbfc3f
2 changed files with 31 additions and 3 deletions

View file

@ -1676,11 +1676,36 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser {
int startOffset;
startOffset = consume(IToken.t_return).getOffset();
IASTExpression result = null;
if (LT(1) != IToken.tSEMI) {
result = expression();
// See if there is a return expression
switch (LT(1)) {
case IToken.tEOC:
// We're trying to start one
IASTName name = createName(LA(1));
IASTIdExpression idExpr = createIdExpression();
idExpr.setName(name);
name.setParent(idExpr);
name.setPropertyInParent(IASTIdExpression.ID_NAME);
result = idExpr;
break;
case IToken.tSEMI:
// None
break;
default:
// Yes
result = expression();
break;
}
int lastOffset = 0;
switch (LT(1)) {
case IToken.tSEMI:
case IToken.tEOC:
lastOffset = consume().getEndOffset();
break;
default:
throwBacktrack(LA(1));
}
int lastOffset = consume(IToken.tSEMI).getEndOffset();
IASTReturnStatement return_statement = createReturnStatement();
((ASTNode) return_statement).setOffsetAndLength(startOffset, lastOffset

View file

@ -27,6 +27,7 @@ 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.dom.ast.cpp.ICPPNamespace;
import org.eclipse.cdt.core.model.IWorkingCopy;
import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
@ -229,6 +230,8 @@ public class DOMCompletionContributor implements ICompletionContributor {
}
} else if (binding instanceof IVariable) {
imageDescriptor = CElementImageProvider.getVariableImageDescriptor();
} else if (binding instanceof ICPPNamespace) {
imageDescriptor = CElementImageProvider.getNamespaceImageDescriptor();
}
} catch (DOMException e) {
}