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.*
|
||||||
import org.jetbrains.kotlin.types.ErrorUtils.UninferredParameterTypeConstructor
|
import org.jetbrains.kotlin.types.ErrorUtils.UninferredParameterTypeConstructor
|
||||||
import org.jetbrains.kotlin.types.TypeUtils.CANT_INFER_FUNCTION_PARAM_TYPE
|
import org.jetbrains.kotlin.types.TypeUtils.CANT_INFER_FUNCTION_PARAM_TYPE
|
||||||
|
import java.lang.UnsupportedOperationException
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
internal class DescriptorRendererImpl(
|
internal class DescriptorRendererImpl(
|
||||||
@@ -128,9 +129,7 @@ internal class DescriptorRendererImpl(
|
|||||||
// TODO nullability is lost for abbreviated type?
|
// TODO nullability is lost for abbreviated type?
|
||||||
renderNormalizedTypeAsIs(abbreviated.abbreviation)
|
renderNormalizedTypeAsIs(abbreviated.abbreviation)
|
||||||
if (renderUnabbreviatedType) {
|
if (renderUnabbreviatedType) {
|
||||||
append(" /* = ")
|
renderAbbreviatedTypeExpansion(abbreviated)
|
||||||
renderNormalizedTypeAsIs(abbreviated.expandedType)
|
|
||||||
append(" */")
|
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -138,6 +137,18 @@ internal class DescriptorRendererImpl(
|
|||||||
renderNormalizedTypeAsIs(type)
|
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) {
|
private fun StringBuilder.renderNormalizedTypeAsIs(type: KotlinType) {
|
||||||
if (type is WrappedType && debugMode && !type.isComputed()) {
|
if (type is WrappedType && debugMode && !type.isComputed()) {
|
||||||
append("<Not computed yet>")
|
append("<Not computed yet>")
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ object IdeDescriptorRenderers {
|
|||||||
overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OVERRIDE
|
overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OVERRIDE
|
||||||
unitReturnType = false
|
unitReturnType = false
|
||||||
modifiers = DescriptorRendererModifier.ALL
|
modifiers = DescriptorRendererModifier.ALL
|
||||||
|
renderUnabbreviatedType = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmField val SOURCE_CODE: DescriptorRenderer = BASE.withOptions {
|
@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 getParametersForLookup(item: LookupElement, context: ParameterInfoContext) = emptyArray<Any>()
|
||||||
override fun getParametersForDocumentation(item: FunctionDescriptor, 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 {
|
private fun renderParameter(parameter: ValueParameterDescriptor, includeName: Boolean, named: Boolean, project: Project): String {
|
||||||
return buildString {
|
return buildString {
|
||||||
if (named) append("[")
|
if (named) append("[")
|
||||||
@@ -246,7 +250,7 @@ abstract class KotlinParameterInfoWithCallHandlerBase<TArgumentList : KtElement,
|
|||||||
append(": ")
|
append(": ")
|
||||||
}
|
}
|
||||||
|
|
||||||
append(DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(parameterTypeToRender(parameter)))
|
append(RENDERER.renderType(parameterTypeToRender(parameter)))
|
||||||
|
|
||||||
if (parameter.hasDefaultValue()) {
|
if (parameter.hasDefaultValue()) {
|
||||||
append(" = ")
|
append(" = ")
|
||||||
|
|||||||
Reference in New Issue
Block a user