Rendering default value in parameter info if it is not constant, too.

This commit is contained in:
Evgeny Gerashchenko
2012-12-27 19:41:17 +04:00
parent 4eac6f0d27
commit 87b5356ef9
2 changed files with 9 additions and 21 deletions
@@ -163,35 +163,23 @@ public class JetFunctionParameterInfoHandler implements
private static String getDefaultExpressionString(@Nullable PsiElement parameterDeclaration) {
if (parameterDeclaration instanceof JetParameter) {
JetExpression defaultValue = ((JetParameter) parameterDeclaration).getDefaultValue();
if (defaultValue != null && isConstantExpression(defaultValue)) {
if (defaultValue != null) {
String defaultExpression = defaultValue.getText();
if (defaultExpression.length() > 10) {
if (defaultExpression.length() <= 32) {
return defaultExpression;
}
if (defaultValue instanceof JetConstantExpression || defaultValue instanceof JetStringTemplateExpression) {
if (defaultExpression.startsWith("\"")) {
return "\"...\"";
}
else if (defaultExpression.startsWith("\'")) {
return "\'...\'";
}
else {
return defaultExpression.substring(0, 7) + "...";
}
}
return defaultExpression;
}
}
return "?";
}
private static boolean isConstantExpression(@NotNull JetExpression expression) {
if (expression instanceof JetStringTemplateExpression) {
for (JetStringTemplateEntry templateEntry : ((JetStringTemplateExpression) expression).getEntries()) {
if (templateEntry instanceof JetStringTemplateEntryWithExpression) {
return false;
}
}
return true;
}
return expression instanceof JetConstantExpression;
return "...";
}
private static JetType getActualParameterType(ValueParameterDescriptor descriptor) {