KT-22815: Use bold for root identifier, and not for keywords
This commit is contained in:
@@ -24,7 +24,7 @@ import java.util.*
|
||||
interface ClassifierNamePolicy {
|
||||
object SHORT : ClassifierNamePolicy {
|
||||
override fun renderClassifier(classifier: ClassifierDescriptor, renderer: DescriptorRenderer): String {
|
||||
if (classifier is TypeParameterDescriptor) return renderer.renderName(classifier.name)
|
||||
if (classifier is TypeParameterDescriptor) return renderer.renderName(classifier.name, false)
|
||||
|
||||
val qualifiedNameElements = ArrayList<Name>()
|
||||
|
||||
@@ -42,7 +42,7 @@ interface ClassifierNamePolicy {
|
||||
|
||||
object FULLY_QUALIFIED : ClassifierNamePolicy {
|
||||
override fun renderClassifier(classifier: ClassifierDescriptor, renderer: DescriptorRenderer): String {
|
||||
if (classifier is TypeParameterDescriptor) return renderer.renderName(classifier.name)
|
||||
if (classifier is TypeParameterDescriptor) return renderer.renderName(classifier.name, false)
|
||||
|
||||
return renderer.renderFqName(DescriptorUtils.getFqName(classifier))
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ abstract class DescriptorRenderer {
|
||||
fun renderFunctionParameters(functionDescriptor: FunctionDescriptor): String
|
||||
= renderValueParameters(functionDescriptor.valueParameters, functionDescriptor.hasSynthesizedParameterNames())
|
||||
|
||||
abstract fun renderName(name: Name): String
|
||||
abstract fun renderName(name: Name, rootRenderedElement: Boolean): String
|
||||
|
||||
abstract fun renderFqName(fqName: FqNameUnsafe): String
|
||||
|
||||
@@ -198,6 +198,8 @@ interface DescriptorRendererOptions {
|
||||
val includeAnnotationArguments: Boolean get() = annotationArgumentsRenderingPolicy.includeAnnotationArguments
|
||||
val includeEmptyAnnotationArguments: Boolean get() = annotationArgumentsRenderingPolicy.includeEmptyAnnotationArguments
|
||||
|
||||
var boldForNamesInHtml: Boolean
|
||||
|
||||
var includePropertyConstant: Boolean
|
||||
var parameterNameRenderingPolicy: ParameterNameRenderingPolicy
|
||||
var withoutTypeParameters: Boolean
|
||||
|
||||
@@ -48,7 +48,7 @@ internal class DescriptorRendererImpl(
|
||||
private fun renderKeyword(keyword: String): String {
|
||||
when (textFormat) {
|
||||
RenderingFormat.PLAIN -> return keyword
|
||||
RenderingFormat.HTML -> return "<b>$keyword</b>"
|
||||
RenderingFormat.HTML -> return if (boldForNamesInHtml) keyword else "<b>$keyword</b>"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,12 +79,16 @@ internal class DescriptorRendererImpl(
|
||||
}
|
||||
|
||||
/* NAMES RENDERING */
|
||||
override fun renderName(name: Name): String {
|
||||
return escape(name.render())
|
||||
override fun renderName(name: Name, rootRenderedElement: Boolean): String {
|
||||
val escaped = escape(name.render())
|
||||
if (boldForNamesInHtml && textFormat == RenderingFormat.HTML && rootRenderedElement) {
|
||||
return "<b>$escaped</b>"
|
||||
}
|
||||
return escaped
|
||||
}
|
||||
|
||||
private fun renderName(descriptor: DeclarationDescriptor, builder: StringBuilder) {
|
||||
builder.append(renderName(descriptor.name))
|
||||
private fun renderName(descriptor: DeclarationDescriptor, builder: StringBuilder, rootRenderedElement: Boolean) {
|
||||
builder.append(renderName(descriptor.name, rootRenderedElement))
|
||||
}
|
||||
|
||||
private fun renderCompanionObjectName(descriptor: DeclarationDescriptor, builder: StringBuilder) {
|
||||
@@ -96,12 +100,12 @@ internal class DescriptorRendererImpl(
|
||||
val containingDeclaration = descriptor.containingDeclaration
|
||||
if (containingDeclaration != null) {
|
||||
builder.append("of ")
|
||||
builder.append(renderName(containingDeclaration.name))
|
||||
builder.append(renderName(containingDeclaration.name, false))
|
||||
}
|
||||
}
|
||||
if (verbose || descriptor.name != SpecialNames.DEFAULT_NAME_FOR_COMPANION_OBJECT) {
|
||||
if (!startFromName) renderSpaceIfNeeded(builder)
|
||||
builder.append(renderName(descriptor.name))
|
||||
builder.append(renderName(descriptor.name, true))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -267,7 +271,7 @@ internal class DescriptorRendererImpl(
|
||||
possiblyInnerType.outerType?.let {
|
||||
renderPossiblyInnerType(it)
|
||||
append('.')
|
||||
append(renderName(possiblyInnerType.classifierDescriptor.name))
|
||||
append(renderName(possiblyInnerType.classifierDescriptor.name, false))
|
||||
} ?: append(renderTypeConstructor(possiblyInnerType.classifierDescriptor.typeConstructor))
|
||||
|
||||
append(renderTypeArguments(possiblyInnerType.arguments))
|
||||
@@ -351,7 +355,7 @@ internal class DescriptorRendererImpl(
|
||||
|
||||
val name = if (parameterNamesInFunctionalTypes) typeProjection.type.extractParameterNameFromFunctionTypeArgument() else null
|
||||
if (name != null) {
|
||||
append(renderName(name))
|
||||
append(renderName(name, false))
|
||||
append(": ")
|
||||
}
|
||||
|
||||
@@ -560,7 +564,7 @@ internal class DescriptorRendererImpl(
|
||||
|
||||
builder.renderAnnotations(typeParameter)
|
||||
|
||||
renderName(typeParameter, builder)
|
||||
renderName(typeParameter, builder, topLevel)
|
||||
val upperBoundsCount = typeParameter.upperBounds.size
|
||||
if ((upperBoundsCount > 1 && !topLevel) || upperBoundsCount == 1) {
|
||||
val upperBound = typeParameter.upperBounds.iterator().next()
|
||||
@@ -655,7 +659,7 @@ internal class DescriptorRendererImpl(
|
||||
renderReceiver(function, builder)
|
||||
}
|
||||
|
||||
renderName(function, builder)
|
||||
renderName(function, builder, true)
|
||||
|
||||
renderValueParameters(function.valueParameters, function.hasSynthesizedParameterNames(), builder)
|
||||
|
||||
@@ -703,7 +707,7 @@ internal class DescriptorRendererImpl(
|
||||
if (renderConstructorKeyword) {
|
||||
builder.append(" ")
|
||||
}
|
||||
renderName(classDescriptor, builder)
|
||||
renderName(classDescriptor, builder, true)
|
||||
renderTypeParameters(constructor.typeParameters, builder, false)
|
||||
}
|
||||
|
||||
@@ -722,7 +726,7 @@ internal class DescriptorRendererImpl(
|
||||
for (typeParameter in typeParameters) {
|
||||
typeParameter.upperBounds
|
||||
.drop(1) // first parameter is rendered by renderTypeParameter
|
||||
.mapTo(upperBoundStrings) { renderName(typeParameter.name) + " : " + renderType(it) }
|
||||
.mapTo(upperBoundStrings) { renderName(typeParameter.name, false) + " : " + renderType(it) }
|
||||
}
|
||||
|
||||
if (!upperBoundStrings.isEmpty()) {
|
||||
@@ -797,7 +801,7 @@ internal class DescriptorRendererImpl(
|
||||
}
|
||||
|
||||
if (includeName) {
|
||||
renderName(variable, builder)
|
||||
renderName(variable, builder, topLevel)
|
||||
builder.append(": ")
|
||||
}
|
||||
|
||||
@@ -827,7 +831,7 @@ internal class DescriptorRendererImpl(
|
||||
renderReceiver(property, builder)
|
||||
}
|
||||
|
||||
renderName(property, builder)
|
||||
renderName(property, builder, true)
|
||||
builder.append(": ").append(renderType(property.type))
|
||||
|
||||
renderReceiverAfterName(property, builder)
|
||||
@@ -850,7 +854,7 @@ internal class DescriptorRendererImpl(
|
||||
renderVisibility(typeAlias.visibility, builder)
|
||||
renderMemberModifiers(typeAlias, builder)
|
||||
builder.append(renderKeyword("typealias")).append(" ")
|
||||
renderName(typeAlias, builder)
|
||||
renderName(typeAlias, builder, true)
|
||||
|
||||
renderTypeParameters(typeAlias.declaredTypeParameters, builder, false)
|
||||
renderCapturedTypeParametersIfRequired(typeAlias, builder)
|
||||
@@ -891,7 +895,7 @@ internal class DescriptorRendererImpl(
|
||||
|
||||
if (!isCompanionObject(klass)) {
|
||||
if (!startFromName) renderSpaceIfNeeded(builder)
|
||||
renderName(klass, builder)
|
||||
renderName(klass, builder, true)
|
||||
}
|
||||
else {
|
||||
renderCompanionObjectName(klass, builder)
|
||||
@@ -941,7 +945,7 @@ internal class DescriptorRendererImpl(
|
||||
renderPackageHeader(packageView.fqName, "package", builder)
|
||||
if (debugMode) {
|
||||
builder.append(" in context of ")
|
||||
renderName(packageView.module, builder)
|
||||
renderName(packageView.module, builder, false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -949,7 +953,7 @@ internal class DescriptorRendererImpl(
|
||||
renderPackageHeader(fragment.fqName, "package-fragment", builder)
|
||||
if (debugMode) {
|
||||
builder.append(" in ")
|
||||
renderName(fragment.containingDeclaration, builder)
|
||||
renderName(fragment.containingDeclaration, builder, false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1028,7 +1032,7 @@ internal class DescriptorRendererImpl(
|
||||
}
|
||||
|
||||
override fun visitModuleDeclaration(descriptor: ModuleDescriptor, builder: StringBuilder) {
|
||||
renderName(descriptor, builder)
|
||||
renderName(descriptor, builder, true)
|
||||
}
|
||||
|
||||
override fun visitScriptDescriptor(scriptDescriptor: ScriptDescriptor, builder: StringBuilder) {
|
||||
|
||||
@@ -119,4 +119,6 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
|
||||
override var renderFunctionContracts: Boolean by property(false)
|
||||
|
||||
override var presentableUnresolvedTypes: Boolean by property(false)
|
||||
|
||||
override var boldForNamesInHtml: Boolean by property(false)
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ internal object ReflectionObjectRenderer {
|
||||
return buildString {
|
||||
append(if (descriptor.isVar) "var " else "val ")
|
||||
appendReceivers(descriptor)
|
||||
append(renderer.renderName(descriptor.name))
|
||||
append(renderer.renderName(descriptor.name, true))
|
||||
|
||||
append(": ")
|
||||
append(renderType(descriptor.type))
|
||||
@@ -68,7 +68,7 @@ internal object ReflectionObjectRenderer {
|
||||
return buildString {
|
||||
append("fun ")
|
||||
appendReceivers(descriptor)
|
||||
append(renderer.renderName(descriptor.name))
|
||||
append(renderer.renderName(descriptor.name, true))
|
||||
|
||||
descriptor.valueParameters.joinTo(this, separator = ", ", prefix = "(", postfix = ")") {
|
||||
renderType(it.type) // TODO: vararg
|
||||
|
||||
@@ -172,6 +172,7 @@ class KotlinQuickDocumentationProvider : AbstractDocumentationProvider() {
|
||||
renderCompanionObjectName = true
|
||||
withDefinedIn = false
|
||||
eachAnnotationOnNewLine = true
|
||||
boldForNamesInHtml = true
|
||||
}
|
||||
|
||||
private fun renderEnumSpecialFunction(element: KtClass, functionDescriptor: FunctionDescriptor, quickNavigation: Boolean): String {
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ class SpecifyExplicitLambdaSignatureIntention : SelfTargetingOffsetIndependentIn
|
||||
}
|
||||
|
||||
private fun ValueParameterDescriptor.render(psiName: String?): String = IdeDescriptorRenderers.SOURCE_CODE.let {
|
||||
"${psiName ?: it.renderName(name)}: ${it.renderType(type)}"
|
||||
"${psiName ?: it.renderName(name, true)}: ${it.renderType(type)}"
|
||||
}
|
||||
|
||||
override fun applyTo(element: KtLambdaExpression, editor: Editor?) {
|
||||
|
||||
@@ -56,7 +56,7 @@ class ImportAwareClassifierNamePolicy(
|
||||
}
|
||||
|
||||
private fun shortNameWithCompanionNameSkip(classifier: ClassifierDescriptor, renderer: DescriptorRenderer): String {
|
||||
if (classifier is TypeParameterDescriptor) return renderer.renderName(classifier.name)
|
||||
if (classifier is TypeParameterDescriptor) return renderer.renderName(classifier.name, false)
|
||||
|
||||
val qualifiedNameParts = classifier.parentsWithSelf
|
||||
.takeWhile { it is ClassifierDescriptor }
|
||||
|
||||
Reference in New Issue
Block a user