Misc: Improve IDE rendering of type aliases
This commit is contained in:
@@ -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("<font color=\"808080\"><i>")
|
||||
}
|
||||
append(" /* = ")
|
||||
renderNormalizedTypeAsIs(abbreviated.expandedType)
|
||||
append(" */")
|
||||
if (textFormat == RenderingFormat.HTML) {
|
||||
append("</i></font>")
|
||||
}
|
||||
}
|
||||
|
||||
private fun StringBuilder.renderNormalizedTypeAsIs(type: KotlinType) {
|
||||
if (type is WrappedType && debugMode && !type.isComputed()) {
|
||||
append("<Not computed yet>")
|
||||
|
||||
@@ -51,6 +51,7 @@ object IdeDescriptorRenderers {
|
||||
overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OVERRIDE
|
||||
unitReturnType = false
|
||||
modifiers = DescriptorRendererModifier.ALL
|
||||
renderUnabbreviatedType = false
|
||||
}
|
||||
|
||||
@JvmField val SOURCE_CODE: DescriptorRenderer = BASE.withOptions {
|
||||
|
||||
+5
-1
@@ -233,6 +233,10 @@ abstract class KotlinParameterInfoWithCallHandlerBase<TArgumentList : KtElement,
|
||||
override fun getParametersForLookup(item: LookupElement, context: ParameterInfoContext) = emptyArray<Any>()
|
||||
override fun getParametersForDocumentation(item: FunctionDescriptor, context: ParameterInfoContext) = emptyArray<Any>()
|
||||
|
||||
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<TArgumentList : KtElement,
|
||||
append(": ")
|
||||
}
|
||||
|
||||
append(DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(parameterTypeToRender(parameter)))
|
||||
append(RENDERER.renderType(parameterTypeToRender(parameter)))
|
||||
|
||||
if (parameter.hasDefaultValue()) {
|
||||
append(" = ")
|
||||
|
||||
Reference in New Issue
Block a user