java completion: don't consider underscore lowercase (IDEA-210869)

This commit is contained in:
peter
2019-04-15 17:44:06 +02:00
parent 70c7945e12
commit 437874516c
4 changed files with 16 additions and 2 deletions

View File

@@ -17,7 +17,6 @@ package com.intellij.codeInsight.completion;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl;
@@ -70,7 +69,9 @@ class LimitedAccessibleClassPreprocessor implements Processor<PsiClass> {
if (PsiReferenceExpressionImpl.seemsScrambled(psiClass)) {
return true;
}
if (!StringUtil.isCapitalized(psiClass.getName()) && !Registry.is("ide.completion.show.lower.case.classes")) {
String name = psiClass.getName();
if (name != null && name.length() > 0 && Character.isLowerCase(name.charAt(0)) &&
!Registry.is("ide.completion.show.lower.case.classes")) {
return true;
}
}

View File

@@ -0,0 +1,5 @@
import foo._SomeClass;
class C {
_SomeClass<caret>
}

View File

@@ -291,6 +291,11 @@ public class ClassNameCompletionTest extends LightFixtureCompletionTestCase {
public void testNestedAnonymousTab() { doJavaTest('\t');}
public void testClassStartsWithUnderscore() {
myFixture.addClass("package foo; public class _SomeClass {}");
doJavaTest('\n');
}
private void doJavaTest(char toType) {
final String path = "/nameCompletion/java";
myFixture.configureByFile(path + "/" + getTestName(false) + "-source.java");