Skip to content

Commit 55fdd99

Browse files
authored
Merge pull request #10505 from pikinier20/search-improv
Scala3doc: Simplify signatures in searchbar - remove annotations and modifiers
2 parents 8819843 + 67ab01e commit 55fdd99

File tree

1 file changed

+9
-17
lines changed

1 file changed

+9
-17
lines changed

scala3doc/src/dotty/renderers/ScalaSearchbarDataInstaller.scala

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,10 @@ class ScalaSearchbarDataInstaller(val ctx: DokkaContext) extends SearchbarDataIn
2222

2323
case class PageEntry(val name: String, val signature: String, val link: String, val pkg: String)
2424

25-
// We need to use there mutable, concurrent collections because Dokka renders content concurrently
25+
// We need to use there mutable, concurrent collections because Dokka renders content concurrently
2626
// and adds entry to searchbar on start of processing page
2727
val pages = TrieMap[String, PageEntry]()
2828

29-
val signatureProvider = querySingle[DokkaBase, SignatureProvider](ctx, _.getSignatureProvider)
3029

3130
override def processPage(page: ContentPage, link: String) =
3231
Option(page.getDocumentable) match {
@@ -37,23 +36,16 @@ class ScalaSearchbarDataInstaller(val ctx: DokkaContext) extends SearchbarDataIn
3736
}
3837
}
3938

40-
def flattenToText(node: ContentNode): String = {
41-
def getContentTextNodes(node: ContentNode, sourceSetRestriciton: DisplaySourceSet): List[ContentText] = node match {
42-
case t: ContentText => List(t)
43-
case c: ContentComposite if c.getDci.getKind != ContentKind.Annotations => c.getChildren.asScala
44-
.filter(_.getSourceSets.asScala.contains(sourceSetRestriciton))
45-
.flatMap(getContentTextNodes(_, sourceSetRestriciton))
46-
.toList
47-
case _ => List.empty
48-
}
49-
50-
val sourceSetRestriciton = node.getSourceSets.asScala.find(_.getPlatform == Platform.common).getOrElse(node.getSourceSets.asScala.head)
51-
getContentTextNodes(node, sourceSetRestriciton).map(_.getText).mkString("")
52-
}
39+
def flattenToText(signature: Signature): String =
40+
signature.map {
41+
case Link(name, dri) => name
42+
case s: String => s
43+
}.mkString
5344

5445
def processMember(member: Member, link: String) = {
55-
val memberSignature = flattenToText(signatureProvider.signature(member).get(0))
56-
val memberPackage = (Option(member.dri.getPackageName) ++ Option(member.dri.getClassNames) ++ Option(member.dri.getCallable)).mkString(".")
46+
val signatureBuilder = ScalaSignatureProvider.rawSignature(member, InlineSignatureBuilder()).asInstanceOf[InlineSignatureBuilder]
47+
val memberSignature = flattenToText(Seq(signatureBuilder.preName.head) ++ Seq(Link(member.name, member.dri)) ++ signatureBuilder.names.reverse)
48+
val memberPackage = Option(member.dri.getPackageName).mkString
5749
pages.addOne(memberSignature + link, PageEntry(member.name, memberSignature, link, memberPackage))
5850
}
5951

0 commit comments

Comments
 (0)