Fixed name suggestions for types with abbreviations like "URL"

This commit is contained in:
Valentin Kipyatkov
2015-06-18 22:43:54 +03:00
parent 84ba634c3e
commit 53688d061a
3 changed files with 46 additions and 3 deletions
@@ -219,15 +219,44 @@ public class JetNameSuggester {
}
}
boolean upperCaseLetterBefore = false;
for (int i = 0; i < s.length(); ++i) {
char c = s.charAt(i);
boolean upperCaseLetter = Character.isUpperCase(c);
if (i == 0) {
addName(result, StringUtil.decapitalize(s), validator);
addName(result, decapitalize(s), validator);
}
else if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') {
addName(result, StringUtil.decapitalize(s.substring(i)), validator);
else {
if (upperCaseLetter && !upperCaseLetterBefore) {
addName(result, decapitalize(s.substring(i)), validator);
}
}
upperCaseLetterBefore = upperCaseLetter;
}
}
private static String decapitalize(String s) {
char c = s.charAt(0);
if (!Character.isUpperCase(c)) return s;
StringBuilder builder = new StringBuilder(s.length());
boolean decapitalize = true;
for (int i = 0; i < s.length(); i++) {
c = s.charAt(i);
if (decapitalize) {
if (Character.isUpperCase(c)) {
c = Character.toLowerCase(c);
}
else {
decapitalize = false;
}
}
builder.append(c);
}
return builder.toString();
}
private static String deleteNonLetterFromString(String s) {
Pattern pattern = Pattern.compile("[^a-zA-Z]");
+10
View File
@@ -0,0 +1,10 @@
class URL
fun a() {
val x = URL()
<selection>x</selection>
}
/*
url
x
*/
@@ -82,6 +82,10 @@ public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase {
doTest();
}
public void testURL() {
doTest();
}
@Override
protected void setUp() throws Exception {
super.setUp();