From 87b5356ef9883879a2d4e650d32045b7aaf200f0 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 27 Dec 2012 19:41:17 +0400 Subject: [PATCH] Rendering default value in parameter info if it is not constant, too. --- .../JetFunctionParameterInfoHandler.java | 26 +++++-------------- .../NamedAndDefaultParameter.kt | 4 +-- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/parameterInfo/JetFunctionParameterInfoHandler.java b/idea/src/org/jetbrains/jet/plugin/parameterInfo/JetFunctionParameterInfoHandler.java index 4205b4f3070..04f4fbb5bff 100644 --- a/idea/src/org/jetbrains/jet/plugin/parameterInfo/JetFunctionParameterInfoHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/parameterInfo/JetFunctionParameterInfoHandler.java @@ -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) { diff --git a/idea/testData/parameterInfo/functionParameterInfo/NamedAndDefaultParameter.kt b/idea/testData/parameterInfo/functionParameterInfo/NamedAndDefaultParameter.kt index 57afc37713a..dee6b3ab847 100644 --- a/idea/testData/parameterInfo/functionParameterInfo/NamedAndDefaultParameter.kt +++ b/idea/testData/parameterInfo/functionParameterInfo/NamedAndDefaultParameter.kt @@ -1,6 +1,6 @@ open class A(x: Int) { fun m(x: Int) = 1 - fun m(x: Int, y: Boolean = true, z: Long = 12345678901234, u: String = "abc\n", u0: String = "", uu: String = "$u", v: Char = '\u0000') = 2 + fun m(x: Int, y: Boolean = true, z: Long = 12345678901234, u: String = "abc\n", u0: String = "" + "123", uu: String = "$u", v: Char = '\u0000', vv: String = "asdfsdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf") = 2 fun d(x: Int) { m(y = false, x = 1) @@ -8,5 +8,5 @@ open class A(x: Int) { } /* Text: ([x: Int]), Disabled: false, Strikeout: false, Green: false -Text: ([y: Boolean = true], [x: Int], [z: Long = 1234567...], [u: String = "abc\n"], [u0: String = ""], [uu: String = ?], [v: Char = '\u0000']), Disabled: false, Strikeout: false, Green: true +Text: ([y: Boolean = true], [x: Int], [z: Long = 12345678901234], [u: String = "abc\n"], [u0: String = "" + "123"], [uu: String = "$u"], [v: Char = '\u0000'], [vv: String = "..."]), Disabled: false, Strikeout: false, Green: true */ \ No newline at end of file