@Override public int getEndOffset() { return owner.getEndOffset(); }
@Override public int getEndOffset() { return delegate.get(delegate.size()-1).getEndOffset(); }
@Override public int compare(CsmOffsetable o1, CsmOffsetable o2) { int diff = o1.getStartOffset() - o2.getStartOffset(); if (diff == 0) { return o1.getEndOffset() - o2.getEndOffset(); } else { return diff; } } }
public static boolean isAfterObject(CsmObject obj, int offset) { if (!CsmKindUtilities.isOffsetable(obj)) { return false; } CsmOffsetable offs = (CsmOffsetable)obj; if (offset > offs.getEndOffset()) { return true; } else { return false; } }
public OffsetableErrorInfo(CsmOffsetable offsetable, CsmErrorInfo.Severity severity) { start = offsetable.getStartOffset(); end = offsetable.getEndOffset(); this.severity = severity; }
private static boolean contains(CsmOffsetable bigger, CsmOffsetable smaller) { if (bigger != null && smaller != null) { if (bigger.getStartOffset() <= smaller.getStartOffset() && smaller.getEndOffset() <= bigger.getEndOffset()) { return true; } } return false; }
@Override public int compare(CsmOffsetable o1, CsmOffsetable o2) { int diff = o1.getStartOffset() - o2.getStartOffset(); if (diff == 0) { return o1.getEndOffset() - o2.getEndOffset(); } else { return diff; } } }
@Override public int getEndOffset() { CsmObject obj = list.get(level); if (CsmKindUtilities.isOffsetable(obj)) { return ((CsmOffsetable)obj).getEndOffset(); } return 0; }
private static boolean isInDeadBlock(int startOffset, Collection<CsmOffsetable> deadBlocks) { for (CsmOffsetable csmOffsetable : deadBlocks) { if (csmOffsetable.getStartOffset() > startOffset) { return false; } if (csmOffsetable.getEndOffset() > startOffset) { return true; } } return false; }
private static boolean isIn(Collection<? extends CsmOffsetable> collection, int offset) { for (CsmOffsetable element : collection) { if (element.getStartOffset() <= offset && element.getEndOffset() >= offset){ return true; } } return false; }
private static boolean isInObject(CsmObject obj, int offset) { if (!CsmKindUtilities.isOffsetable(obj)) { return false; } CsmOffsetable offs = (CsmOffsetable)obj; if ((offs.getStartOffset() <= offset) && (offset <= offs.getEndOffset())) { return true; } return false; }
private static boolean isInObject(CsmObject obj, int offset) { if (!CsmKindUtilities.isOffsetable(obj)) { return false; } CsmOffsetable offs = (CsmOffsetable)obj; if ((offs.getStartOffset() <= offset) && (offset <= offs.getEndOffset())) { return true; } else { return false; } }
private static boolean isInObject(CsmObject obj, int offset) { if (!CsmKindUtilities.isOffsetable(obj)) { return false; } CsmOffsetable offs = (CsmOffsetable)obj; if ((offs.getStartOffset() <= offset) && (offset <= offs.getEndOffset())) { return true; } return false; } }
protected OffsetableBase(CsmOffsetable pos) { this(pos.getContainingFile(), pos.getStartOffset(), pos.getEndOffset()); }
protected OffsetableKey(CsmOffsetable obj, CharSequence name) { this((FileImpl) obj.getContainingFile(), obj.getStartOffset(), obj.getEndOffset(), name); }
public static boolean isInObject(CsmObject outerObj, CsmObject innerObj) { if (!CsmKindUtilities.isOffsetable(outerObj) || !CsmKindUtilities.isOffsetable(innerObj)) { return false; } CsmOffsetable outer = (CsmOffsetable)outerObj; CsmOffsetable inner = (CsmOffsetable)innerObj; return outer.getContainingFile().equals(inner.getContainingFile()) && outer.getStartOffset() <= inner.getStartOffset() && inner.getEndOffset() <= outer.getEndOffset(); }
private ErrorDirectiveImpl(CsmFile file, CharSequence text, CsmOffsetable offs, APTPreprocHandler.State ppState) { super(file, offs != null ? offs.getStartOffset() : 0, offs != null ? offs.getEndOffset() : 0); this.msg = DefaultCache.getManager().getString(text); this.ppState = ppState; }
private static CsmObject findInnerFileObject(CsmOffsetable csmOffsetable) { final CsmFile containingFile = csmOffsetable.getContainingFile(); if (containingFile != null) { int offset = csmOffsetable.getStartOffset(); if (offset > 0) { // trying to find previous enclosing element => start with previous offset CsmObject obj = findInnerFileObject(containingFile, offset-1); if (obj != null) { // previous element can be just previous declaration on file level => it is not enclosing if (CsmKindUtilities.isOffsetable(obj) && (((CsmOffsetable)obj).getEndOffset() < offset)) { return containingFile; } return obj; } } } return containingFile; }
private CsmType findExpressionType(final CsmOffsetable expression) { if (expression != null && !antiLoop.contains(expression)) { CsmCompletionTokenProcessor tp; if (CsmKindUtilities.isExpression(expression)) { tp = processTokensInExpression((CsmExpression) expression); } else { long docVersion = DocumentUtilities.getDocumentVersion(getBaseDocument()); tp = processTokensInFile(expression.getContainingFile(), expression.getStartOffset(), expression.getEndOffset(), getBaseDocument(), docVersion); } if (!checkErrorTokenState(tp)) { antiLoop.add(expression); CsmCompletionExpression exp = tp.getResultExp(); return resolveType(exp); } } return null; }
public static PositionBounds createPositionBounds(CsmOffsetable csmObj) { if (csmObj == null) { return null; } CloneableEditorSupport ces = findCloneableEditorSupport(csmObj.getContainingFile()); if (ces != null) { PositionRef beg = ces.createPositionRef(csmObj.getStartOffset(), Position.Bias.Forward); PositionRef end = ces.createPositionRef(csmObj.getEndOffset(), Position.Bias.Backward); return new PositionBounds(beg, end); } return null; }