void (final int lineStartOffset) { while (!myStack.isEmpty()) { checkCancelled(); Block current = myStack.peek(); TextRange range = current.getTextRange(); if (range.getStartOffset() < lineStartOffset) { myStack.pop(); if (range.getEndOffset() > lineStartOffset) { pushAll(current); } } else { break; } } }