Fixed override/implement
This commit is contained in:
+15
-16
@@ -25,13 +25,9 @@ import com.intellij.openapi.diagnostic.Logger;
|
|||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.ui.DialogWrapper;
|
import com.intellij.openapi.ui.DialogWrapper;
|
||||||
import com.intellij.openapi.util.Computable;
|
|
||||||
import com.intellij.openapi.util.Condition;
|
import com.intellij.openapi.util.Condition;
|
||||||
import com.intellij.openapi.util.text.StringUtil;
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
import com.intellij.psi.PsiDocumentManager;
|
import com.intellij.psi.*;
|
||||||
import com.intellij.psi.PsiElement;
|
|
||||||
import com.intellij.psi.PsiFile;
|
|
||||||
import com.intellij.psi.PsiWhiteSpace;
|
|
||||||
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
|
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
|
||||||
import com.intellij.psi.util.PsiTreeUtil;
|
import com.intellij.psi.util.PsiTreeUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -89,9 +85,9 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
|
|||||||
@NotNull final JetClassOrObject classOrObject,
|
@NotNull final JetClassOrObject classOrObject,
|
||||||
@NotNull final List<DescriptorClassMember> selectedElements
|
@NotNull final List<DescriptorClassMember> selectedElements
|
||||||
) {
|
) {
|
||||||
PsiElement firstGenerated = ApplicationManager.getApplication().runWriteAction(new Computable<PsiElement>() {
|
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public PsiElement compute() {
|
public void run() {
|
||||||
JetClassBody body = classOrObject.getBody();
|
JetClassBody body = classOrObject.getBody();
|
||||||
if (body == null) {
|
if (body == null) {
|
||||||
JetPsiFactory psiFactory = JetPsiFactory(classOrObject);
|
JetPsiFactory psiFactory = JetPsiFactory(classOrObject);
|
||||||
@@ -101,9 +97,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
|
|||||||
|
|
||||||
PsiElement afterAnchor = findInsertAfterAnchor(editor, body);
|
PsiElement afterAnchor = findInsertAfterAnchor(editor, body);
|
||||||
|
|
||||||
if (afterAnchor == null) {
|
if (afterAnchor == null) return;
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
PsiElement firstGenerated = null;
|
PsiElement firstGenerated = null;
|
||||||
|
|
||||||
@@ -122,14 +116,19 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
|
|||||||
|
|
||||||
ShortenReferences.INSTANCE$.process(elementsToCompact);
|
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
|
@Nullable
|
||||||
|
|||||||
@@ -22,9 +22,10 @@ class C : A() {
|
|||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
return super<A>.toString()
|
return super<A>.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Some another comment
|
Some another comment
|
||||||
*/
|
*/
|
||||||
fun someAnotherFunction() {
|
fun someAnotherFunction() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -40,6 +40,7 @@ public class SmartCompletionHandlerTestGenerated extends AbstractSmartCompletion
|
|||||||
|
|
||||||
@TestMetadata("AfterAs2.kt")
|
@TestMetadata("AfterAs2.kt")
|
||||||
public void testAfterAs2() throws Exception {
|
public void testAfterAs2() throws Exception {
|
||||||
|
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/smart/AfterAs2.kt");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/smart/AfterAs2.kt");
|
||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user