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:
parent
363f066567
commit
67c1fbfc3f
2 changed files with 31 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue