Skip to content

Commit 91726d5

Browse files
committed
Sorting
1 parent 3c5502e commit 91726d5

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

scaladoc-js/src/searchbar/PageEntry.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ case class InkuireMatch(
2525
functionName: String,
2626
packageLocation: String,
2727
pageLocation: String,
28-
entryType: String
28+
entryType: String,
29+
mq: Int
2930
)
3031

3132
object PageEntry {

scaladoc-js/src/searchbar/SearchbarComponent.scala

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class SearchbarComponent(engine: SearchbarEngine, inkuireEngine: InkuireJSSearch
4040
val wrapper = document.createElement("div").asInstanceOf[html.Div]
4141
wrapper.classList.add("scaladoc-searchbar-result")
4242
wrapper.classList.add("monospace")
43+
wrapper.setAttribute("mq", m.mq.toString)
4344

4445
val resultDiv = document.createElement("div").asInstanceOf[html.Div]
4546
resultDiv.classList.add("scaladoc-searchbar-result-row")
@@ -132,7 +133,19 @@ class SearchbarComponent(engine: SearchbarEngine, inkuireEngine: InkuireJSSearch
132133
loading.appendChild(animation)
133134
properResultsDiv.appendChild(loading)
134135
inkuireEngine.query(query) { (m: InkuireMatch) =>
135-
properResultsDiv.appendChild(m.toHTML)
136+
var next: Option[Element] = None
137+
0.until(properResultsDiv.children.length).foreach { i =>
138+
val child = properResultsDiv.children(i)
139+
val attr = child.getAttribute("mq")
140+
if attr != null && attr != "" && Integer.parseInt(attr) > m.mq && next.isEmpty then {
141+
next = Some(child)
142+
}
143+
}
144+
next.fold{
145+
properResultsDiv.appendChild(m.toHTML)
146+
} { next =>
147+
properResultsDiv.insertBefore(m.toHTML, next)
148+
}
136149
} { (s: String) =>
137150
animation.classList.remove("loading")
138151
properResultsDiv.appendChild(s.toHTMLError)

scaladoc-js/src/searchbar/engine/InkuireJSSearchEngine.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ class InkuireJSSearchEngine {
2222
d.functionName.asInstanceOf[String],
2323
d.packageLocation.asInstanceOf[String],
2424
d.pageLocation.asInstanceOf[String],
25-
d.entryType.asInstanceOf[String]
25+
d.entryType.asInstanceOf[String],
26+
d.mq.asInstanceOf[Int]
2627
)
2728
}
2829

0 commit comments

Comments
 (0)