Skip to content

Commit 16e1a4b

Browse files
committed
Make results ordering stable.
1 parent 26bc704 commit 16e1a4b

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/Docs/Search/Engine.purs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@ getResultModuleName (PackResult r) = ""
8787
getResultModuleName (MdlResult r) = r.name
8888

8989

90+
getResultName :: Result -> String
91+
getResultName (DeclResult r) = (unwrap r).name
92+
getResultName (TypeResult r) = (unwrap r).name
93+
getResultName (PackResult r) = r.name
94+
getResultName (MdlResult r) = r.name
95+
96+
9097
sortByPopularity
9198
:: forall index typeIndex
9299
. EngineState index typeIndex
@@ -96,7 +103,10 @@ sortByPopularity { packageIndex } =
96103
Array.sortBy (
97104
compare `on` (getResultScore >>> negate) <>
98105
compare `on` getResultPackageName <>
99-
compare `on` getResultModuleName
106+
compare `on` getResultModuleName <>
107+
-- Identifier name comes last: we want to make sure no `Result`s are
108+
-- equal, to avoid having unstable ordering.
109+
compare `on` getResultName
100110
)
101111

102112

0 commit comments

Comments
 (0)