Skip to content

Commit cdab39f

Browse files
committed
Scroll to selected member
1 parent 74277b9 commit cdab39f

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

scala3doc/resources/dotty_res/scripts/ux.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ window.addEventListener("DOMContentLoaded", () => {
1515
}
1616
}
1717

18+
19+
if (location.hash) {
20+
var selected = document.getElementById(location.hash.substring(1));
21+
if (selected){
22+
selected.classList.toggle("expand");
23+
}
24+
}
25+
1826
var logo = document.getElementById("logo");
1927
if (logo) {
2028
logo.onclick = function() {

scala3doc/resources/dotty_res/styles/scalastyle.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,9 @@ footer .pull-right {
528528
border-left: 0.25em solid var(--leftbar-bg);
529529
}
530530

531+
.expand.documentableElement {
532+
border-left: 0.25em solid var(--leftbar-bg);
533+
}
531534
.annotations {
532535
color: gray;
533536
display: none;

scala3doc/src/dotty/renderers/ScalaHtmlRenderer.scala

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,15 @@ class ScalaHtmlRenderer(using ctx: DokkaContext) extends HtmlRenderer(ctx) {
123123
import renderer._
124124

125125
def buildDocumentable(element: DocumentableElement) =
126-
def topLevelAttr = Seq(cls := "documentableElement") ++ element.attributes.map{ case (n, v) => Attr(s"data-f-$n") := v }
126+
def topLevelAttr = Seq(cls := "documentableElement")
127+
++ element.params.dri.anchor.map(id := _)
128+
++ element.attributes.map{ case (n, v) => Attr(s"data-f-$n") := v }
127129
val kind = element.modifiers.takeRight(1)
128130
val otherModifiers = element.modifiers.dropRight(1)
129131

132+
val nameStyles = element.nameWithStyles.styles.map(_.toString.toLowerCase).mkString(" ")
133+
val nameClasses = cls := s"documentableName monospace ${nameStyles.mkString(" ")}"
134+
130135
div(topLevelAttr:_*)(
131136
a(href:=link(element.params.dri).getOrElse("#"), cls := "documentableAnchor"),
132137
div(span(cls := "annotations monospace")(element.annotations.map(renderElement))),
@@ -135,7 +140,7 @@ class ScalaHtmlRenderer(using ctx: DokkaContext) extends HtmlRenderer(ctx) {
135140
span(cls := "other-modifiers")(otherModifiers.map(renderElement)),
136141
span(cls := "kind")(kind.map(renderElement)),
137142
),
138-
renderLink(element.nameWithStyles.name, element.params.dri, cls := s"documentableName monospace ${element.nameWithStyles.styles.map(_.toString.toLowerCase).mkString(" ")}"),
143+
renderLink(element.nameWithStyles.name, element.params.dri, nameClasses),
139144
span(cls := "signature monospace")(element.signature.map(renderElement)),
140145
),
141146
div(cls := "docs")(

0 commit comments

Comments
 (0)