restore caret position and dispose rangemarker after rename performed

This commit is contained in:
Anna Kozlova
2012-06-04 20:06:55 +04:00
parent 11d77c0642
commit c2eec74181
@@ -206,10 +206,6 @@ public class MemberInplaceRenamer extends VariableInplaceRenamer {
}
finally {
FinishMarkAction.finish(myProject, myEditor, markAction);
if (myBeforeRevert != null) {
myEditor.getCaretModel().moveToOffset(myBeforeRevert.getEndOffset());
myBeforeRevert.dispose();
}
}
}
}
@@ -219,7 +215,17 @@ public class MemberInplaceRenamer extends VariableInplaceRenamer {
final RenameProcessor
renameProcessor = new RenameProcessor(myProject, element, newName,
elementProcessor.isToSearchInComments(element),
elementProcessor.isToSearchForTextOccurrences(element));
elementProcessor.isToSearchForTextOccurrences(element)){
@Override
public void doRun() {
try {
super.doRun();
}
finally {
restoreCaretOffsetAfterRename();
}
}
};
for (AutomaticRenamerFactory factory : Extensions.getExtensions(AutomaticRenamerFactory.EP_NAME)) {
if (factory.getOptionName() != null && factory.isApplicable(element)) {
renameProcessor.addRenamerFactory(factory);
@@ -228,6 +234,13 @@ public class MemberInplaceRenamer extends VariableInplaceRenamer {
renameProcessor.run();
}
protected void restoreCaretOffsetAfterRename() {
if (myBeforeRevert != null) {
myEditor.getCaretModel().moveToOffset(myBeforeRevert.getEndOffset());
myBeforeRevert.dispose();
}
}
@Override
protected void collectAdditionalElementsToRename(List<Pair<PsiElement, TextRange>> stringUsages) {
//do not highlight non-code usages in file