}
private void startRenaming(Editor editor, RangeMarker[] exprMarkers, int offset, String stmt,
@Nullable RangeMarker originalStatementRange) {
Document document = editor.getDocument();
RangeMarker insertPoint = document.createRangeMarker(offset, offset);
for (RangeMarker exprMarker : exprMarkers) {
// replace expression with const
document.replaceString(exprMarker.getStartOffset(), exprMarker.getEndOffset(), '$' + VARIABLE + '$');
}
document.replaceString(insertPoint.getStartOffset(), insertPoint.getEndOffset(), stmt);
TextRange range;
if (originalStatementRange != null) {
range = TextRange.create(originalStatementRange);
} else {
range = new TextRange(insertPoint.getStartOffset(), insertPoint.getEndOffset() + stmt.length());
}
for (RangeMarker exprMarker : exprMarkers) {
range = range.union(new TextRange(exprMarker.getStartOffset(), exprMarker.getEndOffset()));
}