diff options
author | vmishenev <vad-mishenev@yandex.ru> | 2021-08-25 17:14:31 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-25 16:14:31 +0200 |
commit | 4fa9524e52d8ff422bb355336e3810ab28ae135c (patch) | |
tree | 66d2bc381ffc7d5c598cee4ea9e0ba13f81b1d7b /core | |
parent | 742f96bdf5c0b842e68dfaf43f4ab3446e87e3df (diff) | |
download | dokka-4fa9524e52d8ff422bb355336e3810ab28ae135c.tar.gz dokka-4fa9524e52d8ff422bb355336e3810ab28ae135c.tar.bz2 dokka-4fa9524e52d8ff422bb355336e3810ab28ae135c.zip |
Manual highlighting webhelp (#2079)
* Add manual code highlighting
* Fix test
* Add kotlinAsJava highlighting
* Add runtime highlighting via Prism
* Add copy-button for code block
* Add tests and refactor
* Replace `<br>` for prism.js
* Parse trivial default values
Co-authored-by: Marcin Aman <marcin.aman@gmail.com>
Diffstat (limited to 'core')
-rw-r--r-- | core/api/core.api | 88 | ||||
-rw-r--r-- | core/src/main/kotlin/model/additionalExtras.kt | 2 | ||||
-rw-r--r-- | core/src/main/kotlin/model/defaultValues.kt | 10 | ||||
-rw-r--r-- | core/src/main/kotlin/pages/ContentNodes.kt | 3 |
4 files changed, 99 insertions, 4 deletions
diff --git a/core/api/core.api b/core/api/core.api index ca2b28f9..05a6207c 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -683,6 +683,17 @@ public final class org/jetbrains/dokka/model/ArrayValue : org/jetbrains/dokka/mo public fun toString ()Ljava/lang/String; } +public final class org/jetbrains/dokka/model/BooleanConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (Z)V + public final fun component1 ()Z + public final fun copy (Z)Lorg/jetbrains/dokka/model/BooleanConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/BooleanConstant;ZILjava/lang/Object;)Lorg/jetbrains/dokka/model/BooleanConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/jetbrains/dokka/model/BooleanValue : org/jetbrains/dokka/model/LiteralValue { public fun <init> (Z)V public final fun component1 ()Z @@ -718,6 +729,17 @@ public final class org/jetbrains/dokka/model/ClassValue : org/jetbrains/dokka/mo public fun toString ()Ljava/lang/String; } +public final class org/jetbrains/dokka/model/ComplexExpression : org/jetbrains/dokka/model/Expression { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/model/ComplexExpression; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/ComplexExpression;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/ComplexExpression; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/jetbrains/dokka/model/CompositeSourceSetID { public fun <init> (Ljava/lang/Iterable;)V public fun <init> (Ljava/util/Set;)V @@ -1265,9 +1287,9 @@ public final class org/jetbrains/dokka/model/DTypeParameter : org/jetbrains/dokk public final class org/jetbrains/dokka/model/DefaultValue : org/jetbrains/dokka/model/properties/ExtraProperty { public static final field Companion Lorg/jetbrains/dokka/model/DefaultValue$Companion; - public fun <init> (Ljava/lang/String;)V + public fun <init> (Lorg/jetbrains/dokka/model/Expression;)V public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; - public final fun getValue ()Ljava/lang/String; + public final fun getValue ()Lorg/jetbrains/dokka/model/Expression; } public final class org/jetbrains/dokka/model/DefaultValue$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { @@ -1343,6 +1365,17 @@ public final class org/jetbrains/dokka/model/DocumentableUtilsKt { public static final fun filtered (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;)Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; } +public final class org/jetbrains/dokka/model/DoubleConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (D)V + public final fun component1 ()D + public final fun copy (D)Lorg/jetbrains/dokka/model/DoubleConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/DoubleConstant;DILjava/lang/Object;)Lorg/jetbrains/dokka/model/DoubleConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()D + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/jetbrains/dokka/model/DoubleValue : org/jetbrains/dokka/model/LiteralValue { public fun <init> (D)V public final fun component1 ()D @@ -1390,6 +1423,9 @@ public final class org/jetbrains/dokka/model/ExceptionInSupertypes$Companion : o public fun mergeStrategyFor (Lorg/jetbrains/dokka/model/ExceptionInSupertypes;Lorg/jetbrains/dokka/model/ExceptionInSupertypes;)Lorg/jetbrains/dokka/model/properties/MergeStrategy$Replace; } +public abstract interface class org/jetbrains/dokka/model/Expression { +} + public abstract class org/jetbrains/dokka/model/ExtraModifiers { public static final field Companion Lorg/jetbrains/dokka/model/ExtraModifiers$Companion; public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -1504,6 +1540,17 @@ public final class org/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$ public static final field INSTANCE Lorg/jetbrains/dokka/model/ExtraModifiers$KotlinOnlyModifiers$VarArg; } +public final class org/jetbrains/dokka/model/FloatConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (F)V + public final fun component1 ()F + public final fun copy (F)Lorg/jetbrains/dokka/model/FloatConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/FloatConstant;FILjava/lang/Object;)Lorg/jetbrains/dokka/model/FloatConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/jetbrains/dokka/model/FloatValue : org/jetbrains/dokka/model/LiteralValue { public fun <init> (F)V public final fun component1 ()F @@ -1609,6 +1656,17 @@ public final class org/jetbrains/dokka/model/IntValue : org/jetbrains/dokka/mode public fun toString ()Ljava/lang/String; } +public final class org/jetbrains/dokka/model/IntegerConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (J)V + public final fun component1 ()J + public final fun copy (J)Lorg/jetbrains/dokka/model/IntegerConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/IntegerConstant;JILjava/lang/Object;)Lorg/jetbrains/dokka/model/IntegerConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/jetbrains/dokka/model/Invariance : org/jetbrains/dokka/model/Variance { public fun <init> (Lorg/jetbrains/dokka/model/Bound;)V public final fun component1 ()Lorg/jetbrains/dokka/model/Bound; @@ -1811,6 +1869,17 @@ public final class org/jetbrains/dokka/model/Star : org/jetbrains/dokka/model/Pr public static final field INSTANCE Lorg/jetbrains/dokka/model/Star; } +public final class org/jetbrains/dokka/model/StringConstant : org/jetbrains/dokka/model/Expression { + public fun <init> (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/jetbrains/dokka/model/StringConstant; + public static synthetic fun copy$default (Lorg/jetbrains/dokka/model/StringConstant;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/model/StringConstant; + public fun equals (Ljava/lang/Object;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/jetbrains/dokka/model/StringValue : org/jetbrains/dokka/model/LiteralValue { public fun <init> (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; @@ -4059,6 +4128,21 @@ public final class org/jetbrains/dokka/pages/TextStyle : java/lang/Enum, org/jet public static fun values ()[Lorg/jetbrains/dokka/pages/TextStyle; } +public final class org/jetbrains/dokka/pages/TokenStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style { + public static final field Annotation Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Boolean Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Builtin Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Constant Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Function Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Keyword Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Number Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Operator Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field Punctuation Lorg/jetbrains/dokka/pages/TokenStyle; + public static final field String Lorg/jetbrains/dokka/pages/TokenStyle; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/TokenStyle; + public static fun values ()[Lorg/jetbrains/dokka/pages/TokenStyle; +} + public final class org/jetbrains/dokka/pages/UtilsKt { public static final fun mapTransform (Lorg/jetbrains/dokka/pages/ContentNode;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentNode; public static final fun recursiveMapTransform (Lorg/jetbrains/dokka/pages/ContentNode;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/pages/ContentNode; diff --git a/core/src/main/kotlin/model/additionalExtras.kt b/core/src/main/kotlin/model/additionalExtras.kt index 62e1fa2d..bc9135dd 100644 --- a/core/src/main/kotlin/model/additionalExtras.kt +++ b/core/src/main/kotlin/model/additionalExtras.kt @@ -116,7 +116,7 @@ data class ActualTypealias(val underlyingType: SourceSetDependent<Bound>) : Extr override val key: ExtraProperty.Key<DClasslike, ActualTypealias> = ActualTypealias } -data class ConstructorValues(val values: SourceSetDependent<List<String>>) : ExtraProperty<DEnumEntry> { +data class ConstructorValues(val values: SourceSetDependent<List<Expression>>) : ExtraProperty<DEnumEntry> { companion object : ExtraProperty.Key<DEnumEntry, ConstructorValues> { override fun mergeStrategyFor(left: ConstructorValues, right: ConstructorValues) = MergeStrategy.Replace(ConstructorValues(left.values + right.values)) diff --git a/core/src/main/kotlin/model/defaultValues.kt b/core/src/main/kotlin/model/defaultValues.kt index d60c90cd..d9caecd9 100644 --- a/core/src/main/kotlin/model/defaultValues.kt +++ b/core/src/main/kotlin/model/defaultValues.kt @@ -3,7 +3,7 @@ package org.jetbrains.dokka.model import org.jetbrains.dokka.model.properties.ExtraProperty import org.jetbrains.dokka.model.properties.MergeStrategy -class DefaultValue(val value: String): ExtraProperty<Documentable> { +class DefaultValue(val value: Expression): ExtraProperty<Documentable> { companion object : ExtraProperty.Key<Documentable, DefaultValue> { override fun mergeStrategyFor(left: DefaultValue, right: DefaultValue): MergeStrategy<Documentable> = MergeStrategy.Remove // TODO pass a logger somehow and log this } @@ -11,3 +11,11 @@ class DefaultValue(val value: String): ExtraProperty<Documentable> { override val key: ExtraProperty.Key<Documentable, *> get() = Companion } + +interface Expression +data class ComplexExpression(val value: String) : Expression +data class IntegerConstant(val value: Long) : Expression +data class StringConstant(val value: String) : Expression +data class DoubleConstant(val value: Double) : Expression +data class FloatConstant(val value: Float) : Expression +data class BooleanConstant(val value: Boolean) : Expression
\ No newline at end of file diff --git a/core/src/main/kotlin/pages/ContentNodes.kt b/core/src/main/kotlin/pages/ContentNodes.kt index 303fa803..0c262937 100644 --- a/core/src/main/kotlin/pages/ContentNodes.kt +++ b/core/src/main/kotlin/pages/ContentNodes.kt @@ -338,6 +338,9 @@ enum class ContentKind : Kind { fun shouldBePlatformTagged(kind: Kind): Boolean = kind in platformTagged } } +enum class TokenStyle : Style { + Keyword, Punctuation, Function, Operator, Annotation, Number, String, Boolean, Constant, Builtin +} enum class TextStyle : Style { Bold, Italic, Strong, Strikethrough, Paragraph, Block, Span, Monospace, Indented, Cover, UnderCoverText, BreakableAfter, Breakable |