DescriptorRenderer: moved enums out

This commit is contained in:
Valentin Kipyatkov
2015-06-05 18:15:26 +03:00
parent fcf613cf03
commit 4263c47f4d
17 changed files with 112 additions and 134 deletions
@@ -48,32 +48,6 @@ public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
public fun renderFqName(fqName: FqNameBase): String
public enum class TextFormat {
PLAIN,
HTML
}
public enum class OverrideRenderingPolicy {
RENDER_OVERRIDE,
RENDER_OPEN,
RENDER_OPEN_OVERRIDE
}
public enum class ParameterNameRenderingPolicy {
ALL,
ONLY_NON_SYNTHESIZED,
NONE
}
public enum class Modifier {
VISIBILITY,
MODALITY,
OVERRIDE,
ANNOTATIONS,
INNER,
MEMBER_KIND
}
public interface ValueParametersHandler {
public fun appendBeforeValueParameters(function: FunctionDescriptor, builder: StringBuilder)
public fun appendAfterValueParameters(function: FunctionDescriptor, builder: StringBuilder)
@@ -161,25 +135,25 @@ public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
public val HTML_COMPACT_WITH_MODIFIERS: DescriptorRenderer = withOptions {
withDefinedIn = false
textFormat = TextFormat.HTML
textFormat = RenderingFormat.HTML
}
public val HTML_NAMES_WITH_SHORT_TYPES: DescriptorRenderer = withOptions {
withDefinedIn = false
nameShortness = NameShortness.SHORT
renderCompanionObjectName = true
textFormat = TextFormat.HTML
textFormat = RenderingFormat.HTML
}
public val HTML: DescriptorRenderer = withOptions {
textFormat = TextFormat.HTML
textFormat = RenderingFormat.HTML
}
public val HTML_FOR_UNINFERRED_TYPE_PARAMS: DescriptorRenderer = withOptions {
uninferredTypeParameterAsName = true
modifiers = emptySet()
nameShortness = NameShortness.SHORT
textFormat = TextFormat.HTML
textFormat = RenderingFormat.HTML
}
public val DEPRECATION: DescriptorRenderer = withOptions {
@@ -215,7 +189,7 @@ public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
public interface DescriptorRendererOptions {
public var nameShortness: NameShortness
public var withDefinedIn: Boolean
public var modifiers: Set<DescriptorRenderer.Modifier>
public var modifiers: Set<DescriptorRendererModifier>
public var startFromName: Boolean
public var debugMode: Boolean
public var classWithPrimaryConstructor: Boolean
@@ -225,13 +199,13 @@ public interface DescriptorRendererOptions {
public var showInternalKeyword: Boolean
public var prettyFunctionTypes: Boolean
public var uninferredTypeParameterAsName: Boolean
public var overrideRenderingPolicy: DescriptorRenderer.OverrideRenderingPolicy
public var overrideRenderingPolicy: OverrideRenderingPolicy
public var valueParametersHandler: DescriptorRenderer.ValueParametersHandler
public var textFormat: DescriptorRenderer.TextFormat
public var textFormat: RenderingFormat
public var excludedAnnotationClasses: Set<FqName>
public var excludedTypeAnnotationClasses: Set<FqName>
public var includePropertyConstant: Boolean
public var parameterNameRenderingPolicy: DescriptorRenderer.ParameterNameRenderingPolicy
public var parameterNameRenderingPolicy: ParameterNameRenderingPolicy
public var withoutTypeParameters: Boolean
public var receiverAfterName: Boolean
public var renderCompanionObjectName: Boolean
@@ -242,3 +216,35 @@ public interface DescriptorRendererOptions {
public var secondaryConstructorsAsPrimary: Boolean
public var renderAccessors: Boolean
}
public enum class RenderingFormat {
PLAIN,
HTML
}
public enum class NameShortness {
SHORT,
FULLY_QUALIFIED,
SOURCE_CODE_QUALIFIED // for local declarations qualified up to function scope
}
public enum class OverrideRenderingPolicy {
RENDER_OVERRIDE,
RENDER_OPEN,
RENDER_OPEN_OVERRIDE
}
public enum class ParameterNameRenderingPolicy {
ALL,
ONLY_NON_SYNTHESIZED,
NONE
}
public enum class DescriptorRendererModifier {
VISIBILITY,
MODALITY,
OVERRIDE,
ANNOTATIONS,
INNER,
MEMBER_KIND
}
@@ -49,22 +49,22 @@ internal class DescriptorRendererImpl(
/* FORMATTING */
private fun renderKeyword(keyword: String): String {
when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> return keyword
DescriptorRenderer.TextFormat.HTML -> return "<b>" + keyword + "</b>"
RenderingFormat.PLAIN -> return keyword
RenderingFormat.HTML -> return "<b>" + keyword + "</b>"
}
}
private fun renderError(keyword: String): String {
when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> return keyword
DescriptorRenderer.TextFormat.HTML -> return "<font color=red><b>" + keyword + "</b></font>"
RenderingFormat.PLAIN -> return keyword
RenderingFormat.HTML -> return "<font color=red><b>" + keyword + "</b></font>"
}
}
private fun escape(string: String): String {
when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> return string
DescriptorRenderer.TextFormat.HTML -> return string.replace("<", "&lt;").replace(">", "&gt;")
RenderingFormat.PLAIN -> return string
RenderingFormat.HTML -> return string.replace("<", "&lt;").replace(">", "&gt;")
}
}
@@ -73,15 +73,15 @@ internal class DescriptorRendererImpl(
private fun arrow(): String {
return when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> escape("->")
DescriptorRenderer.TextFormat.HTML -> "&rarr;"
RenderingFormat.PLAIN -> escape("->")
RenderingFormat.HTML -> "&rarr;"
}
}
private fun renderMessage(message: String): String {
return when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> message
DescriptorRenderer.TextFormat.HTML -> "<i>$message</i>"
RenderingFormat.PLAIN -> message
RenderingFormat.HTML -> "<i>$message</i>"
}
}
@@ -321,7 +321,7 @@ internal class DescriptorRendererImpl(
}
private fun renderAnnotations(annotated: Annotated, builder: StringBuilder, needBrackets: Boolean = false) {
if (DescriptorRenderer.Modifier.ANNOTATIONS !in modifiers) return
if (DescriptorRendererModifier.ANNOTATIONS !in modifiers) return
val excluded = if (annotated is JetType) excludedTypeAnnotationClasses else excludedAnnotationClasses
@@ -380,7 +380,7 @@ internal class DescriptorRendererImpl(
private fun renderVisibility(visibility: Visibility, builder: StringBuilder) {
var visibility = visibility
if (DescriptorRenderer.Modifier.VISIBILITY !in modifiers) return
if (DescriptorRendererModifier.VISIBILITY !in modifiers) return
if (normalizedVisibilities) {
visibility = visibility.normalize()
}
@@ -389,13 +389,13 @@ internal class DescriptorRendererImpl(
}
private fun renderModality(modality: Modality, builder: StringBuilder) {
if (DescriptorRenderer.Modifier.MODALITY !in modifiers) return
if (DescriptorRendererModifier.MODALITY !in modifiers) return
val keyword = modality.name().toLowerCase()
builder.append(renderKeyword(keyword)).append(" ")
}
private fun renderInner(isInner: Boolean, builder: StringBuilder) {
if (DescriptorRenderer.Modifier.INNER !in modifiers) return
if (DescriptorRendererModifier.INNER !in modifiers) return
if (isInner) {
builder.append(renderKeyword("inner")).append(" ")
}
@@ -403,7 +403,7 @@ internal class DescriptorRendererImpl(
private fun renderModalityForCallable(callable: CallableMemberDescriptor, builder: StringBuilder) {
if (!DescriptorUtils.isTopLevelDeclaration(callable) || callable.getModality() != Modality.FINAL) {
if (overridesSomething(callable) && overrideRenderingPolicy == DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE && callable.getModality() == Modality.OPEN) {
if (overridesSomething(callable) && overrideRenderingPolicy == OverrideRenderingPolicy.RENDER_OVERRIDE && callable.getModality() == Modality.OPEN) {
return
}
renderModality(callable.getModality(), builder)
@@ -411,9 +411,9 @@ internal class DescriptorRendererImpl(
}
private fun renderOverride(callableMember: CallableMemberDescriptor, builder: StringBuilder) {
if (DescriptorRenderer.Modifier.OVERRIDE !in modifiers) return
if (DescriptorRendererModifier.OVERRIDE !in modifiers) return
if (overridesSomething(callableMember)) {
if (overrideRenderingPolicy != DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN) {
if (overrideRenderingPolicy != OverrideRenderingPolicy.RENDER_OPEN) {
builder.append("override ")
if (verbose) {
builder.append("/*").append(callableMember.getOverriddenDescriptors().size()).append("*/ ")
@@ -423,7 +423,7 @@ internal class DescriptorRendererImpl(
}
private fun renderMemberKind(callableMember: CallableMemberDescriptor, builder: StringBuilder) {
if (DescriptorRenderer.Modifier.MEMBER_KIND !in modifiers) return
if (DescriptorRendererModifier.MEMBER_KIND !in modifiers) return
if (verbose && callableMember.getKind() != CallableMemberDescriptor.Kind.DECLARATION) {
builder.append("/*").append(callableMember.getKind().name().toLowerCase()).append("*/ ")
}
@@ -617,9 +617,9 @@ internal class DescriptorRendererImpl(
private fun shouldRenderParameterNames(function: FunctionDescriptor): Boolean {
when (parameterNameRenderingPolicy) {
DescriptorRenderer.ParameterNameRenderingPolicy.ALL -> return true
DescriptorRenderer.ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED -> return !function.hasSynthesizedParameterNames()
DescriptorRenderer.ParameterNameRenderingPolicy.NONE -> return false
ParameterNameRenderingPolicy.ALL -> return true
ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED -> return !function.hasSynthesizedParameterNames()
ParameterNameRenderingPolicy.NONE -> return false
}
}
@@ -61,7 +61,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
override var nameShortness by property(NameShortness.SOURCE_CODE_QUALIFIED)
override var withDefinedIn by property(true)
override var modifiers: Set<DescriptorRenderer.Modifier> by property(EnumSet.allOf(javaClass<DescriptorRenderer.Modifier>()))
override var modifiers: Set<DescriptorRendererModifier> by property(EnumSet.allOf(javaClass<DescriptorRendererModifier>()))
override var startFromName by property(false)
override var debugMode by property(false)
override var classWithPrimaryConstructor by property(false)
@@ -78,10 +78,10 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
override var renderDefaultValues by property(true)
override var flexibleTypesForCode by property(false)
override var secondaryConstructorsAsPrimary by property(true)
override var overrideRenderingPolicy by property(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN)
override var overrideRenderingPolicy by property(OverrideRenderingPolicy.RENDER_OPEN)
override var valueParametersHandler: DescriptorRenderer.ValueParametersHandler by property(DescriptorRenderer.ValueParametersHandler.DEFAULT)
override var textFormat by property(DescriptorRenderer.TextFormat.PLAIN)
override var parameterNameRenderingPolicy by property(DescriptorRenderer.ParameterNameRenderingPolicy.ALL)
override var textFormat by property(RenderingFormat.PLAIN)
override var parameterNameRenderingPolicy by property(ParameterNameRenderingPolicy.ALL)
override var receiverAfterName by property(false)
override var renderCompanionObjectName by property(false)
override var renderAccessors by property(false)
@@ -1,23 +0,0 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.renderer;
public enum NameShortness {
SHORT,
FULLY_QUALIFIED,
SOURCE_CODE_QUALIFIED // for local declarations qualified up to function scope
}