diff --git a/scaladoc/resources/dotty_res/styles/scalastyle.css b/scaladoc/resources/dotty_res/styles/scalastyle.css index 948a377c9397..634416eb8048 100644 --- a/scaladoc/resources/dotty_res/styles/scalastyle.css +++ b/scaladoc/resources/dotty_res/styles/scalastyle.css @@ -566,6 +566,10 @@ footer .pull-right { display: inline-block; } +.documentableElement.expand .documentableBrief { + display: none; +} + .documentableAnchor { position: absolute; width: 24px; @@ -573,11 +577,11 @@ footer .pull-right { background: url('data:image/svg+xml;utf8, '); } -.documentableBrief { +.memberDocumentation { font-size: 14px; } -.documentableBrief>p{ +.memberDocumentation>p{ margin: .5em 0 0 0; } diff --git a/scaladoc/src/dotty/tools/scaladoc/renderers/MemberRenderer.scala b/scaladoc/src/dotty/tools/scaladoc/renderers/MemberRenderer.scala index f007afe60d8c..e8e88c3f6ef9 100644 --- a/scaladoc/src/dotty/tools/scaladoc/renderers/MemberRenderer.scala +++ b/scaladoc/src/dotty/tools/scaladoc/renderers/MemberRenderer.scala @@ -93,12 +93,13 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext } def memberInfo(m: Member): Seq[AppliedTag] = + val comment = m.docs val bodyContents = m.docs.fold(Nil)(e => renderDocPart(e.body) :: Nil) Seq( - div(cls := "documentableBrief doc")(bodyContents.take(1)), + div(cls := "documentableBrief doc")(comment.flatMap(_.short).fold("")(renderDocPart)), div(cls := "cover")( - div(cls := "doc")(bodyContents.drop(1)), + div(cls := "doc")(bodyContents), dl(cls := "attributes")( docAttributes(m), companion(m), @@ -169,7 +170,7 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext span(cls := "modifiers"), // just to have padding on left div( div(cls := "originInfo")(originInfo(member):_*), - div(cls := "documentableBrief")(memberInfo(member)), + div(cls := "memberDocumentation")(memberInfo(member)), ) ) ) diff --git a/scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala b/scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala index 90b6eed98fbe..40d6016359e4 100644 --- a/scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala +++ b/scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala @@ -116,7 +116,7 @@ trait ClassLikeSupport: parseMethod(c, dd.symbol,specificKind = Kind.Extension(target, _)) } // TODO check given methods? - case dd: DefDef if !dd.symbol.isHiddenByVisibility && dd.symbol.isGiven => + case dd: DefDef if !dd.symbol.isHiddenByVisibility && dd.symbol.isGiven && !dd.symbol.isArtifact => Some(dd.symbol.owner.memberType(dd.name)) .filterNot(_.exists) .map { _ => @@ -125,7 +125,7 @@ trait ClassLikeSupport: ) } - case dd: DefDef if !dd.symbol.isHiddenByVisibility && dd.symbol.isExported => + case dd: DefDef if !dd.symbol.isHiddenByVisibility && dd.symbol.isExported && !dd.symbol.isArtifact => val exportedTarget = dd.rhs.collect { case a: Apply => a.fun.asInstanceOf[Select] case s: Select => s @@ -142,7 +142,7 @@ trait ClassLikeSupport: Some(parseMethod(c, dd.symbol, specificKind = Kind.Exported(_)) .withOrigin(Origin.ExportedFrom(s"$instanceName.$functionName", dri))) - case dd: DefDef if !dd.symbol.isHiddenByVisibility && !dd.symbol.isGiven && !dd.symbol.isSyntheticFunc && !dd.symbol.isExtensionMethod => + case dd: DefDef if !dd.symbol.isHiddenByVisibility && !dd.symbol.isGiven && !dd.symbol.isSyntheticFunc && !dd.symbol.isExtensionMethod && !dd.symbol.isArtifact => Some(parseMethod(c, dd.symbol)) case td: TypeDef if !td.symbol.flags.is(Flags.Synthetic) && (!td.symbol.flags.is(Flags.Case) || !td.symbol.flags.is(Flags.Enum)) => diff --git a/scaladoc/src/dotty/tools/scaladoc/tasty/SymOps.scala b/scaladoc/src/dotty/tools/scaladoc/tasty/SymOps.scala index c150a1b8e304..0c425a4f10f8 100644 --- a/scaladoc/src/dotty/tools/scaladoc/tasty/SymOps.scala +++ b/scaladoc/src/dotty/tools/scaladoc/tasty/SymOps.scala @@ -109,6 +109,8 @@ class SymOps[Q <: Quotes](val q: Q) extends JavadocAnchorCreator with Scaladoc2A def isExtensionMethod: Boolean = sym.flags.is(Flags.ExtensionMethod) + def isArtifact: Boolean = sym.flags.is(Flags.Artifact) + def isLeftAssoc(d: Symbol): Boolean = !d.name.endsWith(":") def extendedSymbol: Option[ValDef] =