Better presentation

This commit is contained in:
Valentin Kipyatkov
2015-08-27 22:45:09 +03:00
parent 2de5229098
commit 7ef9a9d6d4
6 changed files with 19 additions and 9 deletions
@@ -129,7 +129,17 @@ class LookupElementFactory(
val lambdaPresentation = lambdaPresentation(if (explicitLambdaParameters) parameterType else null)
// render only the last parameter because all other should be optional and will be omitted
val parameterPresentation = DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderValueParameters(listOf(descriptor.valueParameters.last()), descriptor.hasSynthesizedParameterNames())
var parametersRenderer = DescriptorRenderer.SHORT_NAMES_IN_TYPES
if (descriptor.valueParameters.size() > 1) {
parametersRenderer = parametersRenderer.withOptions {
valueParametersHandler = object: DescriptorRenderer.ValueParametersHandler by DescriptorRenderer.ValueParametersHandler.DEFAULT {
override fun appendBeforeValueParameter(parameter: ValueParameterDescriptor, parameterIndex: Int, parameterCount: Int, builder: StringBuilder) {
builder.append("..., ")
}
}
}
}
val parametersPresentation = parametersRenderer.renderValueParameters(listOf(descriptor.valueParameters.last()), descriptor.hasSynthesizedParameterNames())
lookupElement = object : LookupElementDecorator<LookupElement>(lookupElement) {
override fun renderElement(presentation: LookupElementPresentation) {
@@ -137,7 +147,7 @@ class LookupElementFactory(
presentation.clearTail()
presentation.appendTailText(" $lambdaPresentation ", false)
presentation.appendTailText(parameterPresentation, true)
presentation.appendTailText(parametersPresentation, true)
basicFactory.appendContainerAndReceiverInformation(descriptor) { presentation.appendTailText(it, true) }
}
@@ -10,13 +10,13 @@ fun test(param: () -> Unit) {
}
// EXIST: { itemText: "xfoo1", tailText: "(option1: String = ..., option2: Int = ..., p: () -> Unit) (<root>)", typeText:"Unit" }
// EXIST: { itemText: "xfoo1", tailText: " {...} (p: () -> Unit) (<root>)", typeText:"Unit" }
// EXIST: { itemText: "xfoo1", tailText: " {...} (..., p: () -> Unit) (<root>)", typeText:"Unit" }
// EXIST: { itemText: "xfoo2", tailText: "(option1: String = ..., option2: Int = ..., p: (Int) -> Boolean) (<root>)", typeText:"Unit" }
// EXIST: { itemText: "xfoo2", tailText: " {...} (p: (Int) -> Boolean) (<root>)", typeText:"Unit" }
// EXIST: { itemText: "xfoo2", tailText: " {...} (..., p: (Int) -> Boolean) (<root>)", typeText:"Unit" }
// EXIST: { itemText: "xfoo3", tailText: "(option1: String = ..., option2: Int = ..., p: (String, Char) -> Unit) (<root>)", typeText:"Unit" }
// EXIST: { itemText: "xfoo3", tailText: " { String, Char -> ... } (p: (String, Char) -> Unit) (<root>)", typeText:"Unit" }
// EXIST: { itemText: "xfoo3", tailText: " { String, Char -> ... } (..., p: (String, Char) -> Unit) (<root>)", typeText:"Unit" }
// EXIST: { itemText: "xfooBad1", tailText: "(option: String = ..., notOption: Int, p: (String, Char) -> Unit) (<root>)", typeText:"Unit" }
@@ -5,5 +5,5 @@ fun test(param: () -> Unit) {
}
// ELEMENT: xfoo
// TAIL_TEXT: " {...} (p: () -> Unit) (<root>)"
// TAIL_TEXT: " {...} (..., p: () -> Unit) (<root>)"
@@ -5,5 +5,5 @@ fun test(param: () -> Unit) {
}
// ELEMENT: xfoo
// TAIL_TEXT: " {...} (p: () -> Unit) (<root>)"
// TAIL_TEXT: " {...} (..., p: () -> Unit) (<root>)"
@@ -5,5 +5,5 @@ fun test(param: () -> Unit) {
}
// ELEMENT: xfoo
// TAIL_TEXT: " { String, Int -> ... } (p: (String, Int) -> Unit) (<root>)"
// TAIL_TEXT: " { String, Int -> ... } (..., p: (String, Int) -> Unit) (<root>)"
@@ -5,5 +5,5 @@ fun test(param: () -> Unit) {
}
// ELEMENT: xfoo
// TAIL_TEXT: " { String, Int -> ... } (p: (String, Int) -> Unit) (<root>)"
// TAIL_TEXT: " { String, Int -> ... } (..., p: (String, Int) -> Unit) (<root>)"