@@ -20,6 +20,7 @@ import qualified Elm.Package as Pkg
20import qualified Elm.Version as V
20import qualified Elm.Version as V
21import qualified Parse.Primitives as P
21import qualified Parse.Primitives as P
22import qualified Stuff
22import qualified Stuff
23+import qualified Reporting.Suggest as Suggest
@@ -117,8 +118,17 @@ parsePackage chars =
119suggestPackages :: String -> IO [String]
120suggestPackages :: String -> IO [String]
120−suggestPackages _ =
121+suggestPackages given =
122+ do cache <- Stuff.getPackageCache
123+ maybeRegistry <- Registry.read cache
121− return []
124+ return $
125+ case maybeRegistry of
129+ Just (Registry.Registry _ versions) ->
130+ filter (List.isPrefixOf given) $
131+ map Pkg.toChars (Map.keys versions)
124examplePackages :: String -> IO [String]
134examplePackages :: String -> IO [String]
@@ -128,8 +138,11 @@ examplePackages given =
129 case maybeRegistry of
139 case maybeRegistry of
130 Nothing ->
140 Nothing ->
133 Just (Registry.Registry _ versions) ->
146 Just (Registry.Registry _ versions) ->
134− filter (List.isPrefixOf given) $
147+ map Pkg.toChars $ take 4 $
135− map Pkg.toChars (Map.keys versions)
148+ Suggest.sort given Pkg.toChars (Map.keys versions)