diff --git a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt index b86462cd698..4d3bc2d7bb1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt @@ -233,6 +233,7 @@ abstract class KotlinParameterInfoWithCallHandlerBase() var namedMode = false @@ -245,11 +246,21 @@ abstract class KotlinParameterInfoWithCallHandlerBase 0) { append(", ") + if (markUsedUnusedParameterBorder) { + // mark the space after the comma as bold; bold text needs to be at least one character long + boldStartOffset = length - 1 + boldEndOffset = length + disabledBeforeHighlight = true + } } val highlightParameter = parameter.index == highlightParameterIndex @@ -283,7 +294,7 @@ abstract class KotlinParameterInfoWithCallHandlerBase[y: Boolean], [x: Int]), Disabled: false, Strikeout: false, Green: true */ \ No newline at end of file diff --git a/idea/testData/parameterInfo/functionCall/NamedParameter4.kt b/idea/testData/parameterInfo/functionCall/NamedParameter4.kt new file mode 100644 index 00000000000..3ce829a977f --- /dev/null +++ b/idea/testData/parameterInfo/functionCall/NamedParameter4.kt @@ -0,0 +1,10 @@ +open class A(x: Int) { + fun m(a: String = "a", b: String = "b", c: String = "c", d: String = "d") = 1 + + fun d(x: Int) { + m(b = "x", d = "x", ) + } +} +/* +Text: ([b: String = "b"], [d: String = "d"], [a: String = "a"], [c: String = "c"]), Disabled: false, Strikeout: false, Green: true +*/ \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/MockParameterInfoUIContext.java b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/MockParameterInfoUIContext.java index e83a74f8626..db3efecf392 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/MockParameterInfoUIContext.java +++ b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/MockParameterInfoUIContext.java @@ -27,22 +27,36 @@ public class MockParameterInfoUIContext implements ParameterInfoUIContext { public String setupUIComponentPresentation(String text, int highlightStartOffset, int highlightEndOffset, boolean isDisabled, boolean strikeout, boolean isDisabledBeforeHighlight, Color background) { - String highlightedText; + String taggedText; if (highlightStartOffset != -1 && highlightEndOffset != -1) { - highlightedText = text.substring(0, highlightStartOffset) - + "" - + text.substring(highlightStartOffset, highlightEndOffset) - + "" - + text.substring(highlightEndOffset); + StringBuilder sb = new StringBuilder(); + if (isDisabledBeforeHighlight) { + sb.append(""); + } + + sb.append(text, 0, highlightStartOffset); + + if (isDisabledBeforeHighlight) { + sb.append(""); + } + + sb.append(""); + sb.append(text, highlightStartOffset, highlightEndOffset); + sb.append(""); + + sb.append(text, highlightEndOffset, text.length()); + + taggedText = sb.toString(); } else { - highlightedText = text; + taggedText = text; } - String resultText = "Text: (" + highlightedText + "), " + + String resultText = "Text: (" + taggedText + "), " + "Disabled: " + isDisabled + ", " + "Strikeout: " + strikeout + ", " + "Green: " + KotlinParameterInfoWithCallHandlerBase.GREEN_BACKGROUND.equals(background); + result.add(resultText); // return value not used, just return something diff --git a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java index 74e73cf4176..52a309379a0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java @@ -226,6 +226,11 @@ public class ParameterInfoTestGenerated extends AbstractParameterInfoTest { runTest("idea/testData/parameterInfo/functionCall/NamedParameter3.kt"); } + @TestMetadata("NamedParameter4.kt") + public void testNamedParameter4() throws Exception { + runTest("idea/testData/parameterInfo/functionCall/NamedParameter4.kt"); + } + @TestMetadata("NoAnnotations.kt") public void testNoAnnotations() throws Exception { runTest("idea/testData/parameterInfo/functionCall/NoAnnotations.kt");