@Override public CsmCompoundStatement getBody() { if (CsmKindUtilities.isFunctionDefinition(declaration)) { return ((CsmFunctionDefinition)declaration).getBody(); } return null; }
public static boolean isInFunctionBody(CsmContext context, int offset) { CsmFunctionDefinition funDef = getFunctionDefinition(context); return (funDef == null) ? false : CsmOffsetUtilities.isInObject(funDef.getBody(), offset); }
@Override public Collection<CsmReference> getLabels(CsmFunctionDefinition referencedFunction, CharSequence label, Set<LabelKind> kinds) { Context res = new Context(referencedFunction, label, kinds); if(referencedFunction != null) { processInnerStatements(referencedFunction.getBody(), res); } return res.collection; }
private static void handleFunctionDefinition(final CsmFunctionDefinition fun, final StatisticsParameters params, final XRefResultSet<XRefEntry> bag, final PrintWriter printOut, final OutputWriter printErr) { final CsmScope scope = fun.getBody(); if (scope != null) { final XRefResultSet.ContextScope funScope = classifyFunctionScope(fun, printOut);
private boolean isInDeclaration(CsmFunction func, CsmFile csmFile, int offset) { CsmFunctionDefinition def; CsmFunction decl; if (CsmKindUtilities.isFunctionDefinition(func)) { def = (CsmFunctionDefinition) func; decl = def.getDeclaration(); } else { decl = func; def = func.getDefinition(); } if (def != null) { if (csmFile.equals(def.getContainingFile()) && (def.getStartOffset() <= offset && offset <= def.getBody().getStartOffset())) { return true; } } if (decl != null) { // just declaration if (csmFile.equals(decl.getContainingFile()) && (decl.getStartOffset() <= offset && offset <= decl.getEndOffset())) { return true; } } return false; }
String coloredItemText = createDisplayName(item, cls, NbBundle.getMessage(CsmImplementsMethodCompletionItem.class, "extract.txt")); //NOI18N CsmFile containingFile = item.getContainingFile(); CsmCompoundStatement body = ((CsmFunctionDefinition)item).getBody(); if (item.getStartOffset() == body.getStartOffset()) {
if (CsmOffsetUtilities.isBeforeObject(funDef.getBody(), offset)) { if (CsmKindUtilities.isCastOperator(fun)) { if (CsmOffsetUtilities.isBeforeObject(funDef.getReturnType(), offset)) {
private StatementResult findExpressionStatement(Collection<? extends CsmOffsetableDeclaration> decls, int selectionStart, int selectionEnd, Document doc, final AtomicBoolean canceled) { for(CsmOffsetableDeclaration decl : decls) { if (canceled.get()) { return null; } if (decl.getStartOffset() < selectionStart && selectionEnd < decl.getEndOffset()) { if (CsmKindUtilities.isFunctionDefinition(decl)) { CsmFunctionDefinition def = (CsmFunctionDefinition) decl; return findExpressionStatementInBody(def.getBody(), selectionStart, selectionEnd, doc, canceled); } else if (CsmKindUtilities.isNamespaceDefinition(decl)) { CsmNamespaceDefinition def = (CsmNamespaceDefinition) decl; return findExpressionStatement(def.getDeclarations(), selectionStart, selectionEnd, doc, canceled); } else if (CsmKindUtilities.isClass(decl)) { CsmClass cls = (CsmClass) decl; return findExpressionStatement(cls.getMembers(), selectionStart, selectionEnd, doc, canceled); } } } return null; }
CsmCompoundStatement body = ((CsmFunctionDefinition)parent).getBody(); if (body != null) { list.add(body);
private static boolean findInner(CsmClass clazz, int offset, CsmContext context) { CsmContextUtilities.updateContext(clazz, offset, context); CsmMember member = CsmOffsetUtilities.findObject(clazz.getMembers(), context, offset); if (!CsmOffsetUtilities.sameOffsets(clazz, member)) { if (CsmKindUtilities.isClass(member)) { findInner((CsmClass)member, offset, context); } else if (CsmKindUtilities.isFunctionDefinition(member)) { CsmContextUtilities.updateContext(member, offset, context); CsmCompoundStatement body = ((CsmFunctionDefinition)member).getBody(); if (!CsmOffsetUtilities.sameOffsets(member, body)) { findInnerObject(body, offset, context); } } } return true; }
endLineOffset = 0; } else if (CsmKindUtilities.isFunctionDefinition((CsmObject)obj)) { endOffset = ((CsmFunctionDefinition)obj).getBody().getStartOffset()-1; } else if (CsmKindUtilities.isClass((CsmObject)obj)) { endOffset = ((CsmClass)obj).getLeftBracketOffset()-1;
CsmCompoundStatement body = funDef.getBody(); if ((!CsmOffsetUtilities.sameOffsets(funDef, body) || body.getStartOffset() != body.getEndOffset()) && CsmOffsetUtilities.isInObject(body, offset)) { CsmContextUtilities.updateContext(fun, offset, context);
CsmCompoundStatement body = funDef.getBody(); if ((!CsmOffsetUtilities.sameOffsets(funDef, body) || body.getStartOffset() != body.getEndOffset()) && CsmOffsetUtilities.isInObject(body, offset)) { last = null;