aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main/kotlin/renderers
diff options
context:
space:
mode:
authorilya-g <ilya.gorbunov@jetbrains.com>2023-02-17 16:42:28 +0100
committerGitHub <noreply@github.com>2023-02-17 16:42:28 +0100
commit1fd045904e94d68878b3a5f748bf20f7c61a1cf7 (patch)
tree6e5e63033f654abc4e5c61278a4eeb39330977be /plugins/base/src/main/kotlin/renderers
parentdaed35f92b3b482688856d139da6849c8e6b4ab1 (diff)
downloaddokka-1fd045904e94d68878b3a5f748bf20f7c61a1cf7.tar.gz
dokka-1fd045904e94d68878b3a5f748bf20f7c61a1cf7.tar.bz2
dokka-1fd045904e94d68878b3a5f748bf20f7c61a1cf7.zip
Consistent alphabetical order of element groups in index and navigation (#2861)
* Sort groups of divergent elements by their key first ignoring case, then preserving it * Add tests for sorting groups and navigation
Diffstat (limited to 'plugins/base/src/main/kotlin/renderers')
-rw-r--r--plugins/base/src/main/kotlin/renderers/html/NavigationDataProvider.kt8
1 files changed, 6 insertions, 2 deletions
diff --git a/plugins/base/src/main/kotlin/renderers/html/NavigationDataProvider.kt b/plugins/base/src/main/kotlin/renderers/html/NavigationDataProvider.kt
index ecce70e8..4dae21c8 100644
--- a/plugins/base/src/main/kotlin/renderers/html/NavigationDataProvider.kt
+++ b/plugins/base/src/main/kotlin/renderers/html/NavigationDataProvider.kt
@@ -6,6 +6,7 @@ import org.jetbrains.dokka.base.transformers.documentables.isDeprecated
import org.jetbrains.dokka.base.transformers.documentables.isException
import org.jetbrains.dokka.base.translators.documentables.DocumentableLanguage
import org.jetbrains.dokka.base.translators.documentables.documentableLanguage
+import org.jetbrains.dokka.base.utils.canonicalAlphabeticalOrder
import org.jetbrains.dokka.model.*
import org.jetbrains.dokka.pages.*
@@ -90,6 +91,9 @@ abstract class NavigationDataProvider {
}
}
+ private val navigationNodeOrder: Comparator<NavigationNode> =
+ compareBy(canonicalAlphabeticalOrder) { it.name }
+
private fun ContentPage.navigableChildren() =
if (this is ClasslikePage) {
this.navigableChildren()
@@ -97,7 +101,7 @@ abstract class NavigationDataProvider {
children
.filterIsInstance<ContentPage>()
.map { visit(it) }
- .sortedBy { it.name.toLowerCase() }
+ .sortedWith(navigationNodeOrder)
}
private fun ClasslikePage.navigableChildren(): List<NavigationNode> {
@@ -111,7 +115,7 @@ abstract class NavigationDataProvider {
// no sorting for enum entries, should be the same order as in source code
navigableChildren
} else {
- navigableChildren.sortedBy { it.name.toLowerCase() }
+ navigableChildren.sortedWith(navigationNodeOrder)
}
}
}