From c244baf08740fae53146e952d1b795c22f58bab4 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 26 Aug 2016 16:24:07 +0300 Subject: [PATCH] Misc: Improve IDE rendering of type aliases --- .../kotlin/renderer/DescriptorRendererImpl.kt | 17 ++++++++++++++--- .../kotlin/idea/util/IdeDescriptorRenderers.kt | 1 + .../KotlinFunctionParameterInfoHandler.kt | 6 +++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt index 638c3f4b624..875a497d11e 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt @@ -36,6 +36,7 @@ import org.jetbrains.kotlin.serialization.deserialization.NotFoundClasses import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.ErrorUtils.UninferredParameterTypeConstructor import org.jetbrains.kotlin.types.TypeUtils.CANT_INFER_FUNCTION_PARAM_TYPE +import java.lang.UnsupportedOperationException import java.util.* internal class DescriptorRendererImpl( @@ -128,9 +129,7 @@ internal class DescriptorRendererImpl( // TODO nullability is lost for abbreviated type? renderNormalizedTypeAsIs(abbreviated.abbreviation) if (renderUnabbreviatedType) { - append(" /* = ") - renderNormalizedTypeAsIs(abbreviated.expandedType) - append(" */") + renderAbbreviatedTypeExpansion(abbreviated) } return } @@ -138,6 +137,18 @@ internal class DescriptorRendererImpl( renderNormalizedTypeAsIs(type) } + private fun StringBuilder.renderAbbreviatedTypeExpansion(abbreviated: AbbreviatedType) { + if (textFormat == RenderingFormat.HTML) { + append("") + } + append(" /* = ") + renderNormalizedTypeAsIs(abbreviated.expandedType) + append(" */") + if (textFormat == RenderingFormat.HTML) { + append("") + } + } + private fun StringBuilder.renderNormalizedTypeAsIs(type: KotlinType) { if (type is WrappedType && debugMode && !type.isComputed()) { append("") diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt index 1f2eb76c97f..75cc9e53618 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt @@ -51,6 +51,7 @@ object IdeDescriptorRenderers { overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OVERRIDE unitReturnType = false modifiers = DescriptorRendererModifier.ALL + renderUnabbreviatedType = false } @JvmField val SOURCE_CODE: DescriptorRenderer = BASE.withOptions { diff --git a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt index a22b1a4a09d..c66722ffd46 100644 --- a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt @@ -233,6 +233,10 @@ abstract class KotlinParameterInfoWithCallHandlerBase() override fun getParametersForDocumentation(item: FunctionDescriptor, context: ParameterInfoContext) = emptyArray() + private val RENDERER = DescriptorRenderer.SHORT_NAMES_IN_TYPES.withOptions { + renderUnabbreviatedType = false + } + private fun renderParameter(parameter: ValueParameterDescriptor, includeName: Boolean, named: Boolean, project: Project): String { return buildString { if (named) append("[") @@ -246,7 +250,7 @@ abstract class KotlinParameterInfoWithCallHandlerBase