Fixed name suggester for getter/setter names. Added names suggested by call before "sure" call. +Test

This commit is contained in:
Alexander.Podkhalyuzin
2012-04-04 14:34:04 +04:00
parent e6fd0c053f
commit b8e1e1dd75
3 changed files with 28 additions and 3 deletions
@@ -152,8 +152,8 @@ public class JetNameSuggester {
private static void addCamelNames(ArrayList<String> result, String name, JetNameValidator validator) {
if (name == "") return;
String s = deleteNonLetterFromString(name);
if (s.startsWith("get") || s.startsWith("set")) s = s.substring(0, 3);
else if (s.startsWith("is")) s = s.substring(0, 2);
if (s.startsWith("get") || s.startsWith("set")) s = s.substring(3);
else if (s.startsWith("is")) s = s.substring(2);
for (int i = 0; i < s.length(); ++i) {
if (i == 0) {
addName(result, StringUtil.decapitalize(s), validator);
@@ -172,7 +172,17 @@ public class JetNameSuggester {
private static void addNamesForExpression(ArrayList<String> result, JetExpression expression, JetNameValidator validator) {
if (expression instanceof JetQualifiedExpression) {
JetQualifiedExpression qualifiedExpression = (JetQualifiedExpression) expression;
addNamesForExpression(result, qualifiedExpression.getSelectorExpression(), validator);
JetExpression selectorExpression = qualifiedExpression.getSelectorExpression();
addNamesForExpression(result, selectorExpression, validator);
if (selectorExpression != null && selectorExpression instanceof JetCallExpression) {
JetExpression calleeExpression = ((JetCallExpression)selectorExpression).getCalleeExpression();
if (calleeExpression != null && calleeExpression instanceof JetSimpleNameExpression) {
String name = ((JetSimpleNameExpression)calleeExpression).getReferencedName();
if (name != null && name.equals("sure")) {
addNamesForExpression(result, qualifiedExpression.getReceiverExpression(), validator);
}
}
}
} else if (expression instanceof JetSimpleNameExpression) {
JetSimpleNameExpression reference = (JetSimpleNameExpression) expression;
String referenceName = reference.getReferencedName();
@@ -0,0 +1,11 @@
fun getFooGoo(): String? = "text"
fun a() {
<selection>getFooGoo().sure()</selection>
}
/*
fooGoo
goo
s
sure
*/
@@ -35,6 +35,10 @@ import java.util.Arrays;
* Date: 07.02.12
*/
public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase {
public void testGetterSure() {
doTest();
}
public void testNameArrayOfClasses() {
doTest();
}