mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-81775 Track auto-complete "preferred" values for longer time/per prefix
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
class FooBar {
|
||||
int _foo1, _foo2, _boo1, _boo2, _goo1, _goo2;
|
||||
{
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
+36
@@ -14,6 +14,7 @@ import com.intellij.ide.ui.UISettings
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager
|
||||
import com.intellij.psi.statistics.StatisticsManager
|
||||
|
||||
public class NormalCompletionOrderingTest extends CompletionSortingTestCase {
|
||||
private static final String BASE_PATH = "/codeInsight/completion/normalSorting";
|
||||
@@ -397,4 +398,39 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase {
|
||||
assert lookup.currentItem.lookupString == 'JComponent'
|
||||
}
|
||||
|
||||
public void testStatisticsByPrefix() {
|
||||
Closure repeatCompletion = { String letter ->
|
||||
String var1 = "_${letter}oo1"
|
||||
String var2 = "_${letter}oo2"
|
||||
|
||||
myFixture.type("_$letter");
|
||||
myFixture.completeBasic();
|
||||
assertPreferredItems(0, var1, var2)
|
||||
myFixture.type('2\n;\n')
|
||||
|
||||
for (i in 0..<StatisticsManager.OBLIVION_THRESHOLD - 2) {
|
||||
myFixture.type('_');
|
||||
myFixture.completeBasic();
|
||||
assert myFixture.lookupElementStrings.indexOf(var2) < myFixture.lookupElementStrings.indexOf(var1)
|
||||
myFixture.type(letter)
|
||||
assertPreferredItems(0, var2, var1)
|
||||
myFixture.type('\n;\n')
|
||||
}
|
||||
}
|
||||
|
||||
configureByFile(getTestName(false) + ".java")
|
||||
repeatCompletion 'g'
|
||||
repeatCompletion 'f'
|
||||
repeatCompletion 'b'
|
||||
|
||||
myFixture.completeBasic();
|
||||
assertPreferredItems(0, 'return', '_boo2', '_foo2', '_boo1', '_foo1', '_goo1', '_goo2')
|
||||
myFixture.type('_');
|
||||
assertPreferredItems(0, '_boo2', '_foo2', '_boo1', '_foo1', '_goo1', '_goo2')
|
||||
myFixture.type('g')
|
||||
assertPreferredItems(0, '_goo2', '_goo1')
|
||||
myFixture.type('o')
|
||||
assertPreferredItems(0, '_goo2', '_goo1')
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user