@@ -20,6 +20,7 @@ import qualified Elm.Package as Pkg
2020import qualified Elm.Version as V
2121import qualified Parse.Primitives as P
2222import qualified Stuff
23+import qualified Reporting.Suggest as Suggest
2324
2425
2526
@@ -117,8 +118,17 @@ parsePackage chars =
117118
118119
119120suggestPackages :: String -> IO [String]
120−suggestPackages _ =
121− return []
121+suggestPackages given =
122+ do cache <- Stuff.getPackageCache
123+ maybeRegistry <- Registry.read cache
124+ return $
125+ case maybeRegistry of
126+ Nothing ->
127+ []
128+
129+ Just (Registry.Registry _ versions) ->
130+ filter (List.isPrefixOf given) $
131+ map Pkg.toChars (Map.keys versions)
122132
123133
124134examplePackages :: String -> IO [String]
@@ -128,8 +138,11 @@ examplePackages given =
128138 return $
129139 case maybeRegistry of
130140 Nothing ->
131− []
141+ [ "elm/json"
142+ , "elm/http"
143+ , "elm/random"
144+ ]
132145
133146 Just (Registry.Registry _ versions) ->
134− filter (List.isPrefixOf given) $
135− map Pkg.toChars (Map.keys versions)
147+ map Pkg.toChars $ take 4 $
148+ Suggest.sort given Pkg.toChars (Map.keys versions)