private SourceFileInfo findFunction(CsmProject csmProject, String name, int lineNumber) { CsmFunction function = getFunction(csmProject, name); if (function == null) { return null; } String sourceFile = function.getContainingFile().getAbsolutePath().toString(); int startOffset = function.getStartOffset(); if (lineNumber > 0) { return new SourceFileInfo(sourceFile, lineNumber, 0); } return new SourceFileInfo(sourceFile, startOffset); //) + offset); }
assert decl != null; this.document = document; this.pos = getPosition(document, decl.getStartOffset()); if (baseTemplates.isEmpty() && templateSpecializations.isEmpty()) {
CsmFile containingFile = item.getContainingFile(); CsmCompoundStatement body = ((CsmFunctionDefinition)item).getBody(); if (item.getStartOffset() == body.getStartOffset()) { final int methodStartOffset = item.getStartOffset(); if (CsmKindUtilities.isConstructor(item)) { CsmConstructor con = (CsmConstructor) item;
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; }