int (int offset) { offset++; if (myCallExpression == null) return offset; Pair<String, List<Couple<Integer>>> info = PropertyFoldingBuilder.format(myCallExpression); List<Couple<Integer>> replacements = info.second; if (replacements == null) return offset; Iterator<Couple<Integer>> it = replacements.iterator(); int diff = 0; while (it.hasNext()) { Couple<Integer> start = it.next(); Couple<Integer> end = it.next(); if (offset <= start.first) return offset - start.first + start.second; if (offset < end.first) return end.second - 1; diff = end.second - end.first; } return offset + diff; }