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