restored selection after quickfix

This commit is contained in:
Alexey Kudravtsev
2013-05-27 11:13:27 +04:00
parent 15926a2e78
commit 0f00f05948
3 changed files with 21 additions and 9 deletions
@@ -16,7 +16,9 @@
package com.intellij.codeInspection;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.ide.SelectInEditorManager;
import com.intellij.openapi.project.Project;
import com.intellij.pom.Navigatable;
import com.intellij.psi.*;
import com.intellij.psi.codeStyle.CodeStyleManager;
import com.intellij.psi.util.PsiTypesUtil;
@@ -62,7 +64,13 @@ public class ReplaceWithTernaryOperatorFix implements LocalQuickFix {
final PsiFile file = expression.getContainingFile();
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
replaceWthConditionalExpression(project, myText + "!=null", expression, suggestDefaultValue(expression));
PsiConditionalExpression conditionalExpression = replaceWthConditionalExpression(project, myText + "!=null", expression, suggestDefaultValue(expression));
PsiExpression elseExpression = conditionalExpression.getElseExpression();
if (elseExpression != null) {
((Navigatable)elseExpression).navigate(true);
SelectInEditorManager.getInstance(project).selectInEditor(file.getVirtualFile(), elseExpression.getTextRange().getStartOffset(), elseExpression.getTextRange().getEndOffset(), false, true);
}
}
@NotNull
@@ -5,6 +5,6 @@ import java.lang.Integer;
class A{
void test(){
Integer integer = null;
int i = integer != null ? integer.toString().length() : <selection>0</selection>;
int i = integer != null ? integer.toString().length() : <caret><selection>0</selection>;
}
}
@@ -31,10 +31,7 @@ import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider;
import com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.ActionCallback;
import com.intellij.openapi.util.AsyncResult;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.*;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDocumentManager;
@@ -53,7 +50,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
@NonNls public class TestEditorManagerImpl extends FileEditorManagerEx implements ApplicationComponent, ProjectComponent {
@NonNls
public class TestEditorManagerImpl extends FileEditorManagerEx implements ApplicationComponent, ProjectComponent {
private static final Logger LOG = Logger.getInstance("#com.intellij.idea.test.TestEditorManagerImpl");
private final Project myProject;
@@ -376,8 +374,14 @@ import java.util.Map;
@Override
@NotNull
public FileEditor[] getAllEditors(){
throw new UnsupportedOperationException();
public FileEditor[] getAllEditors() {
FileEditor[] result = new FileEditor[myVirtualFile2Editor.size()];
int i = 0;
for (Map.Entry<VirtualFile, Editor> entry : myVirtualFile2Editor.entrySet()) {
TextEditor textEditor = TextEditorProvider.getInstance().getTextEditor(entry.getValue());
result[i++] = textEditor;
}
return result;
}
@Override