Skip to content

Commit

Permalink
correctly sort results
Browse files Browse the repository at this point in the history
  • Loading branch information
rebeccaskinner committed Oct 12, 2021
1 parent a3e8963 commit 1694dba
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions haskell/src/HoogleQuery/ResultSorting.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import Hoogle
import Data.Maybe
import Data.List
import Data.Ord
import Debug.Trace
import qualified Data.HashMap.Strict as HashMap

data PackageType
Expand Down Expand Up @@ -87,15 +88,30 @@ classifyPackage (PackageClassification classifications) pkgName =

sortTargetsByClassification :: [Target] -> [Target]
sortTargetsByClassification =
sortOn (classifyPackage defaultPackageClassification . maybe "" fst . targetPackage)
let
classification :: Target -> PackageType
classification p =
let
pName = maybe "" fst (targetPackage p)
c = classifyPackage defaultPackageClassification pName
in trace ("classification for " <> pName <> " is " <> show c) $ c
in
sortOn classification

sortTargets :: [Target] -> [[Target]]
sortTargets =
HashMap.elems
sortOn classifyTargetSet
. HashMap.elems
. HashMap.map sortTargetsByClassification
. foldr insertTarget HashMap.empty
where
insertTarget :: Target -> HashMap.HashMap String [Target] -> HashMap.HashMap String [Target]
insertTarget target accumulatorMap =
let key = maybe "" fst $ targetPackage target
in HashMap.insertWith (<>) key [target] accumulatorMap

classifyTargetSet :: [Target] -> PackageType
classifyTargetSet [] = PackageTypeOtherLibrary
classifyTargetSet(t:_) =
let n = maybe "" fst (targetPackage t)
in classifyPackage defaultPackageClassification n

0 comments on commit 1694dba

Please sign in to comment.