Reduced number of constant renderers in DescriptorRenderer
This commit is contained in:
@@ -110,7 +110,7 @@ public class IdeErrorMessages {
|
||||
MAP.put(MANY_IMPL_MEMBER_NOT_IMPLEMENTED, "<html>{0} must override {1}<br />because it inherits many implementations of it</html>",
|
||||
RENDER_CLASS_OR_OBJECT, DescriptorRenderer.HTML);
|
||||
MAP.put(CONFLICTING_OVERLOADS, "<html>''{0}''<br />is already defined in {1}</html>",
|
||||
DescriptorRenderer.HTML_COMPACT_WITH_MODIFIERS, STRING);
|
||||
IdeRenderers.HTML_COMPACT_WITH_MODIFIERS, STRING);
|
||||
|
||||
MAP.put(RESULT_TYPE_MISMATCH, "<html>Function return type mismatch." +
|
||||
"<table><tr><td>Expected:</td><td>{1}</td></tr>" +
|
||||
|
||||
@@ -70,14 +70,18 @@ public object IdeRenderers {
|
||||
DescriptorRenderer.HTML.renderType(returnType)
|
||||
}
|
||||
|
||||
public val HTML_CONFLICTING_JVM_DECLARATIONS_DATA: Renderer<ConflictingJvmDeclarationsData> = Renderer<ConflictingJvmDeclarationsData> {
|
||||
public val HTML_COMPACT_WITH_MODIFIERS: DescriptorRenderer = DescriptorRenderer.HTML.withOptions {
|
||||
withDefinedIn = false
|
||||
}
|
||||
|
||||
public val HTML_CONFLICTING_JVM_DECLARATIONS_DATA: Renderer<ConflictingJvmDeclarationsData> = Renderer {
|
||||
data: ConflictingJvmDeclarationsData ->
|
||||
|
||||
val conflicts = data.signatureOrigins
|
||||
.map { it.descriptor }
|
||||
.filterNotNull()
|
||||
.sortBy(MemberComparator.INSTANCE)
|
||||
.joinToString("") { "<li>" + DescriptorRenderer.HTML_COMPACT_WITH_MODIFIERS.render(it) + "</li>\n" }
|
||||
.joinToString("") { "<li>" + HTML_COMPACT_WITH_MODIFIERS.render(it) + "</li>\n" }
|
||||
|
||||
"The following declarations have the same JVM signature (<code>${data.signature.name}${data.signature.desc}</code>):<br/>\n<ul>\n$conflicts</ul>"
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.NameShortness
|
||||
import org.jetbrains.kotlin.renderer.RenderingFormat
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.hasTypeMismatchErrorOnParameter
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.hasUnmappedArguments
|
||||
@@ -36,8 +38,15 @@ public fun renderError(o: Any): String = RED_TEMPLATE.format(o)
|
||||
|
||||
public fun renderStrong(o: Any, error: Boolean): String = (if (error) RED_TEMPLATE else STRONG_TEMPLATE).format(o)
|
||||
|
||||
private val HTML_FOR_UNINFERRED_TYPE_PARAMS: DescriptorRenderer = DescriptorRenderer.withOptions {
|
||||
uninferredTypeParameterAsName = true
|
||||
modifiers = emptySet()
|
||||
nameShortness = NameShortness.SHORT
|
||||
textFormat = RenderingFormat.HTML
|
||||
}
|
||||
|
||||
fun <D : CallableDescriptor> renderResolvedCall(resolvedCall: ResolvedCall<D>): String {
|
||||
val htmlRenderer = DescriptorRenderer.HTML_FOR_UNINFERRED_TYPE_PARAMS
|
||||
val htmlRenderer = HTML_FOR_UNINFERRED_TYPE_PARAMS
|
||||
val stringBuilder = StringBuilder("")
|
||||
val indent = " "
|
||||
|
||||
|
||||
@@ -83,13 +83,12 @@ public class KotlinQuickDocumentationProvider : AbstractDocumentationProvider()
|
||||
companion object {
|
||||
private val LOG = Logger.getInstance(javaClass<KotlinQuickDocumentationProvider>())
|
||||
|
||||
val quickDocNameFormat = DescriptorRenderer.withOptions {
|
||||
withDefinedIn = true
|
||||
private val DESCRIPTOR_RENDERER = DescriptorRenderer.HTML.withOptions {
|
||||
nameShortness = NameShortness.SHORT
|
||||
renderCompanionObjectName = true
|
||||
textFormat = RenderingFormat.HTML
|
||||
}
|
||||
|
||||
private val MIX_KOTLIN_TO_JAVA_RENDERER = DESCRIPTOR_RENDERER.withOptions { withDefinedIn = false }
|
||||
|
||||
private fun getText(element: PsiElement, originalElement: PsiElement?, quickNavigation: Boolean): String? {
|
||||
if (element is JetDeclaration) {
|
||||
@@ -126,7 +125,7 @@ public class KotlinQuickDocumentationProvider : AbstractDocumentationProvider()
|
||||
return "No documentation available"
|
||||
}
|
||||
|
||||
var renderedDecl = quickDocNameFormat.render(declarationDescriptor)
|
||||
var renderedDecl = DESCRIPTOR_RENDERER.render(declarationDescriptor)
|
||||
if (!quickNavigation) {
|
||||
renderedDecl = "<pre>" + renderedDecl + "</pre>"
|
||||
}
|
||||
@@ -141,7 +140,7 @@ public class KotlinQuickDocumentationProvider : AbstractDocumentationProvider()
|
||||
private fun mixKotlinToJava(declarationDescriptor: DeclarationDescriptor, element: PsiElement, originalElement: PsiElement?): String? {
|
||||
val originalInfo = JavaDocumentationProvider().getQuickNavigateInfo(element, originalElement)
|
||||
if (originalInfo != null) {
|
||||
val renderedDecl = DescriptorRenderer.HTML_NAMES_WITH_SHORT_TYPES.render(declarationDescriptor)
|
||||
val renderedDecl = MIX_KOTLIN_TO_JAVA_RENDERER.render(declarationDescriptor)
|
||||
return renderedDecl + "<br/>Java declaration:<br/>" + originalInfo
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user