git.iko.soy/rowtype-yoga/purescript-docs-search
on master help sign in
Make results ordering stable.
commit16e1a4b28079a6cb2d949b88e210c3d8a63ede6d authorklntsky <klntsky@gmail.com> dateSun 26 Jul 2020, 00:47 (6 years ago) parent26bc704
1 file changed+11−1
src/Docs/Search/Engine.purs+11−1
src/Docs/Search/Engine.purs+11−1
@@ -87,6 +87,13 @@ getResultModuleName (PackResult r) = ""
8787getResultModuleName (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+
9097sortByPopularity
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