Fixed name suggestions for types with abbreviations like "URL"
This commit is contained in:
+32
-3
@@ -219,15 +219,44 @@ public class JetNameSuggester {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean upperCaseLetterBefore = false;
|
||||||
for (int i = 0; i < s.length(); ++i) {
|
for (int i = 0; i < s.length(); ++i) {
|
||||||
|
char c = s.charAt(i);
|
||||||
|
boolean upperCaseLetter = Character.isUpperCase(c);
|
||||||
|
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
addName(result, StringUtil.decapitalize(s), validator);
|
addName(result, decapitalize(s), validator);
|
||||||
}
|
}
|
||||||
else if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') {
|
else {
|
||||||
addName(result, StringUtil.decapitalize(s.substring(i)), validator);
|
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) {
|
private static String deleteNonLetterFromString(String s) {
|
||||||
Pattern pattern = Pattern.compile("[^a-zA-Z]");
|
Pattern pattern = Pattern.compile("[^a-zA-Z]");
|
||||||
|
|||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
class URL
|
||||||
|
|
||||||
|
fun a() {
|
||||||
|
val x = URL()
|
||||||
|
<selection>x</selection>
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
url
|
||||||
|
x
|
||||||
|
*/
|
||||||
+4
@@ -82,6 +82,10 @@ public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase {
|
|||||||
doTest();
|
doTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testURL() {
|
||||||
|
doTest();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
|
|||||||
Reference in New Issue
Block a user