Rendering default value in parameter info if it is not constant, too.
This commit is contained in:
+7
-19
@@ -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) {
|
||||
|
||||
@@ -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(<caret>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
|
||||
*/
|
||||
Reference in New Issue
Block a user