the selected item shouldn't necessarily be a class when I'm typing a class name
authorpeter <peter@jetbrains.com>
Tue, 17 Jan 2012 17:16:45 +0000 (18:16 +0100)
committerpeter <peter@jetbrains.com>
Tue, 17 Jan 2012 17:16:45 +0000 (18:16 +0100)
java/java-impl/src/com/intellij/codeInsight/completion/JavaCharFilter.java

index 1c17d3eb3c4b30f8d2773875a8002a1df5c323fa..a27fc2f952403da80c26808ea3b90dc6048ca773 100644 (file)
@@ -52,16 +52,19 @@ public class JavaCharFilter extends CharFilter {
 
     PsiFile file = lookup.getPsiFile();
     if (file == null) return false;
-    
-    Object o = item.getObject();
-    if (o instanceof PsiClass && ((PsiClass)o).getName().length() > lookup.itemPattern(item).length()) {
-      for (PsiClass aClass : PsiShortNamesCache.getInstance(file.getProject()).getClassesByName(lookup.itemPattern(item), file.getResolveScope())) {
-        if (!isObfuscated(aClass)) {
-          return true;
-        }
+
+    final String prefix = lookup.itemPattern(item);
+    for (String s : item.getAllLookupStrings()) {
+      if (s.equalsIgnoreCase(prefix)) {
+        return false;
       }
     }
-    
+    for (PsiClass aClass : PsiShortNamesCache.getInstance(file.getProject()).getClassesByName(prefix, file.getResolveScope())) {
+      if (!isObfuscated(aClass)) {
+        return true;
+      }
+    }
+
     return false;
   }