completion stats should care of class qualified names (IDEA-65112)

This commit is contained in:
peter
2011-02-16 18:32:12 +01:00
parent 0c6e7ea235
commit 7414445e89
5 changed files with 23 additions and 6 deletions
@@ -23,13 +23,11 @@ import com.intellij.psi.*;
import com.intellij.psi.statistics.JavaStatisticsManager;
import com.intellij.psi.statistics.StatisticsInfo;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NonNls;
/**
* @author peter
*/
public class JavaCompletionStatistician extends CompletionStatistician{
@NonNls public static final String CLASS_NAME_COMPLETION_PREFIX = "classNameCompletion#";
public StatisticsInfo serialize(final LookupElement element, final CompletionLocation location) {
final Object o = element.getObject();
@@ -76,6 +74,10 @@ public class JavaCompletionStatistician extends CompletionStatistician{
if (!isClass && type == CompletionType.BASIC) return JavaStatisticsManager.createInfo(qualifierType, (PsiMember)o);
return StatisticsInfo.EMPTY;
}
if (isClass) {
return JavaStatisticsManager.createInfo(qualifierType, (PsiMember)o);
}
}
if (qualifierType != null) return StatisticsInfo.EMPTY;
@@ -0,0 +1,4 @@
class Foo {
Baaa<caret>x
}
@@ -182,4 +182,17 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase {
checkPreferredItems(0, "XcodeProjectTemplate", "XcodeConfigurable");
}
public void testFqnStats() {
myFixture.addClass("public interface Baaaaaaar {}");
myFixture.addClass("package zoo; public interface Baaaaaaar {}");
final LookupImpl lookup = invokeCompletion(getTestName(false) + ".java");
assertEquals("Baaaaaaar", ((JavaPsiClassReferenceElement) lookup.getItems().get(0)).getQualifiedName());
assertEquals("zoo.Baaaaaaar", ((JavaPsiClassReferenceElement) lookup.getItems().get(1)).getQualifiedName());
incUseCount(lookup, 1);
assertEquals("zoo.Baaaaaaar", ((JavaPsiClassReferenceElement) lookup.getItems().get(0)).getQualifiedName());
assertEquals("Baaaaaaar", ((JavaPsiClassReferenceElement) lookup.getItems().get(1)).getQualifiedName());
}
}
@@ -29,7 +29,7 @@ import java.io.IOException;
public interface JavaCodeInsightTestFixture extends CodeInsightTestFixture {
JavaPsiFacade getJavaFacade();
PsiClass addClass(@NotNull @NonNls final String classText) throws IOException;
PsiClass addClass(@NotNull @NonNls final String classText);
@NotNull
PsiClass findClass(@NotNull @NonNls String name);
@@ -27,8 +27,6 @@ import com.intellij.testFramework.fixtures.TempDirTestFixture;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
/**
* @author yole
*/
@@ -44,7 +42,7 @@ public class JavaCodeInsightTestFixtureImpl extends CodeInsightTestFixtureImpl i
}
@Override
public PsiClass addClass(@NotNull @NonNls final String classText) throws IOException {
public PsiClass addClass(@NotNull @NonNls final String classText) {
assertInitialized();
final PsiClass psiClass = addClass(getTempDirPath(), classText);
final VirtualFile file = psiClass.getContainingFile().getVirtualFile();