mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
code cleanup also for code generation on completion
This commit is contained in:
+13
-4
@@ -18,6 +18,7 @@ package com.intellij.codeInsight.completion;
|
||||
import com.intellij.codeInsight.generation.*;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupElementBuilder;
|
||||
import com.intellij.codeInspection.ex.GlobalInspectionContextBase;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.openapi.util.Iconable;
|
||||
import com.intellij.openapi.util.Key;
|
||||
@@ -30,10 +31,7 @@ import com.intellij.util.VisibilityUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
import static com.intellij.patterns.PlatformPatterns.psiElement;
|
||||
|
||||
@@ -137,6 +135,17 @@ public class JavaGenerateMemberCompletionContributor {
|
||||
List<PsiGenerationInfo<PsiMethod>> newInfos = GenerateMembersUtil
|
||||
.insertMembersAtOffset(context.getFile(), context.getStartOffset(), infos);
|
||||
if (!newInfos.isEmpty()) {
|
||||
final List<PsiElement> elements = new ArrayList<PsiElement>();
|
||||
for (GenerationInfo member : newInfos) {
|
||||
if (!(member instanceof TemplateGenerationInfo)) {
|
||||
final PsiMember psiMember = member.getPsiMember();
|
||||
if (psiMember != null) {
|
||||
elements.add(psiMember);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GlobalInspectionContextBase.cleanupElements(context.getProject(), null, elements.toArray(new PsiElement[elements.size()]));
|
||||
newInfos.get(0).positionCaret(context.getEditor(), true);
|
||||
}
|
||||
}
|
||||
|
||||
+17
@@ -27,6 +27,7 @@ import com.intellij.psi.PsiDocumentManager
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
|
||||
import com.intellij.psi.codeStyle.CommonCodeStyleSettings
|
||||
import com.siyeh.ig.style.UnqualifiedFieldAccessInspection
|
||||
|
||||
public class NormalCompletionTest extends LightFixtureCompletionTestCase {
|
||||
@Override
|
||||
@@ -1484,5 +1485,21 @@ class Bar {
|
||||
myFixture.assertPreferredCompletionItems(0, "xcreateZoo", "xcreateElephant");
|
||||
}
|
||||
|
||||
public void "test code cleanup during completion generation"() {
|
||||
myFixture.configureByText "a.java", "class Foo {int i; ge<caret>}"
|
||||
def inspection = new UnqualifiedFieldAccessInspection()
|
||||
try {
|
||||
myFixture.enableInspections(inspection)
|
||||
myFixture.complete(CompletionType.BASIC)
|
||||
myFixture.checkResult '''class Foo {int i;
|
||||
|
||||
public int getI() {
|
||||
return this.i;
|
||||
}
|
||||
}'''
|
||||
}
|
||||
finally {
|
||||
myFixture.disableInspections(inspection)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -438,7 +438,7 @@ public class GlobalInspectionContextBase extends UserDataHolderBase implements G
|
||||
};
|
||||
|
||||
Application application = ApplicationManager.getApplication();
|
||||
if (application.isWriteAccessAllowed()) {
|
||||
if (application.isWriteAccessAllowed() && !application.isUnitTestMode()) {
|
||||
application.invokeLater(cleanupRunnable);
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user