Fixed override/implement

This commit is contained in:
Valentin Kipyatkov
2014-10-28 16:20:29 +03:00
parent 5f180751cc
commit d394625771
3 changed files with 19 additions and 18 deletions
@@ -25,13 +25,9 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiWhiteSpace;
import com.intellij.psi.*;
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull;
@@ -89,9 +85,9 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
@NotNull final JetClassOrObject classOrObject,
@NotNull final List<DescriptorClassMember> selectedElements
) {
PsiElement firstGenerated = ApplicationManager.getApplication().runWriteAction(new Computable<PsiElement>() {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public PsiElement compute() {
public void run() {
JetClassBody body = classOrObject.getBody();
if (body == null) {
JetPsiFactory psiFactory = JetPsiFactory(classOrObject);
@@ -101,9 +97,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
PsiElement afterAnchor = findInsertAfterAnchor(editor, body);
if (afterAnchor == null) {
return null;
}
if (afterAnchor == null) return;
PsiElement firstGenerated = null;
@@ -122,14 +116,19 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
ShortenReferences.INSTANCE$.process(elementsToCompact);
return firstGenerated;
if (firstGenerated == null) return;
Project project = classOrObject.getProject();
SmartPsiElementPointer<PsiElement> pointer = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(firstGenerated);
PostprocessReformattingAspect.getInstance(project).doPostponedFormatting();
PsiElement element = pointer.getElement();
if (element != null) {
QuickfixPackage.moveCaretIntoGeneratedElement(editor, element);
}
}
});
if (firstGenerated != null) {
PostprocessReformattingAspect.getInstance(firstGenerated.getProject()).doPostponedFormatting();
QuickfixPackage.moveCaretIntoGeneratedElement(editor, firstGenerated);
}
}
@Nullable
@@ -22,9 +22,10 @@ class C : A() {
override fun toString(): String {
return super<A>.toString()
}
/*
Some another comment
*/
Some another comment
*/
fun someAnotherFunction() {
}
@@ -40,6 +40,7 @@ public class SmartCompletionHandlerTestGenerated extends AbstractSmartCompletion
@TestMetadata("AfterAs2.kt")
public void testAfterAs2() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/smart/AfterAs2.kt");
doTest(fileName);
}