on master help sign in
Only suggest names that are nearby on `elm X` typos
commit9ca6fdb0f5545662408332779ca7f2c3074474df authorEvan Czaplicki <evancz@users.noreply.github.com> dateTue 22 May 2018, 09:46 (8 years ago) parent0485916
2 files changed+21−1
compiler/src/Reporting/Suggest.hs+17 ui/terminal/src/Terminal/Args/Error.hs+4−1
compiler/src/Reporting/Suggest.hs+17
@@ -3,6 +3,7 @@
33module Reporting.Suggest
44 ( distance
55 , sort
6+ , rank
67 )
78 where
89
@@ -33,3 +34,19 @@ sort target toString values =
3334toLower :: String -> String
3435toLower string =
3536 map Char.toLower string
37+
38+
39+
40+-- RANK
41+
42+
43+rank :: String -> (a -> String) -> [a] -> [(Int,a)]
44+rank target toString values =
45+ let
46+ toRank v =
47+ distance (toLower target) (toLower (toString v))
48+
49+ addRank v =
50+ (toRank v, v)
51+ in
52+ List.sortOn fst (map addRank values)
ui/terminal/src/Terminal/Args/Error.hs+4−1
@@ -234,8 +234,11 @@ toCommandList exeName interfaces =
234234exitWithUnknown :: String -> [String] -> IO a
235235exitWithUnknown unknown knowns =
236236 let
237+ nearbyKnowns =
238+ takeWhile (\(r,_) -> r <= 3) (Suggest.rank unknown id knowns)
239+
237240 suggestions =
238− case map toGreen (Suggest.sort unknown id knowns) of
241+ case map toGreen (map snd nearbyKnowns) of
239242 [] ->
240243 []
241244