IDEA-87104 Code completion should remember and prefer chosen variants

This commit is contained in:
peter
2012-06-07 15:47:16 +02:00
parent db8aadc5e3
commit afee1a2277
6 changed files with 54 additions and 23 deletions
@@ -0,0 +1,9 @@
import javax.swing.*;
public class MyFirstTestClassFoo {
void foo(JComponent c) {
c.getCom<caret>x
}
}
@@ -0,0 +1,9 @@
import javax.swing.*;
public class MyFirstTestClassFoo {
void foo(JLabel l) {
l.getCompo<caret>x
}
}
@@ -13,6 +13,7 @@ import com.intellij.codeInsight.lookup.impl.LookupImpl
import com.intellij.ide.ui.UISettings
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiMethod
import com.intellij.openapi.fileEditor.FileDocumentManager
public class NormalCompletionOrderingTest extends CompletionSortingTestCase {
private static final String BASE_PATH = "/codeInsight/completion/normalSorting";
@@ -148,6 +149,32 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase {
assertPreferredItems(0, "FooBee", "FooBar");
}
public void testSameStatsForDifferentQualifiers() throws Throwable {
invokeCompletion("SameStatsForDifferentQualifiersJLabel.java");
assertPreferredItems(0, "getComponent");
incUseCount(getLookup(), myFixture.lookupElementStrings.indexOf('getComponents'));
FileDocumentManager.instance.saveAllDocuments()
invokeCompletion("SameStatsForDifferentQualifiersJLabel.java");
assertPreferredItems(1, "getComponent", "getComponents");
invokeCompletion("SameStatsForDifferentQualifiersJComponent.java");
assertPreferredItems(1, "getComponent", "getComponents");
}
public void testSameStatsForDifferentQualifiers2() throws Throwable {
invokeCompletion("SameStatsForDifferentQualifiersJComponent.java");
assertPreferredItems(0, "getComponent");
incUseCount(getLookup(), myFixture.lookupElementStrings.indexOf('getComponents'));
FileDocumentManager.instance.saveAllDocuments()
invokeCompletion("SameStatsForDifferentQualifiersJComponent.java");
assertPreferredItems(1, "getComponent", "getComponents");
invokeCompletion("SameStatsForDifferentQualifiersJLabel.java");
assertPreferredItems(1, "getComponent", "getComponents");
}
public void testDispreferFinalize() throws Throwable {
checkPreferredItems(0, "final", "finalize");
}