on master help sign in
Switch away from Data.Text in terminal arg parser
commit794c62f9a115662a30cabbba455090436ed16893 authorEvan Czaplicki <evancz@users.noreply.github.com> dateThu 16 May 2019, 16:12 (7 years ago) parentaf5299b
1 file changed+16−15
terminal/src/Terminal/Args/Helpers.hs+16−15
terminal/src/Terminal/Args/Helpers.hs+16−15
@@ -8,18 +8,19 @@ module Terminal.Args.Helpers
88
99
1010import qualified Data.Char as Char
11−import qualified Data.Text as Text
11+import qualified Data.Utf8 as Utf8
1212import qualified System.FilePath as FP
1313
1414import Terminal.Args (Parser(..))
1515import qualified Elm.Package as Pkg
16+import qualified Elm.Version as V
1617
1718
1819
1920-- VERSION
2021
2122
22−version :: Parser Pkg.Version
23+version :: Parser V.Version
2324version =
2425 Parser
2526 { _singular = "version"
@@ -30,9 +31,9 @@ version =
3031 }
3132
3233
33−parseVersion :: String -> Maybe Pkg.Version
34−parseVersion str =
35− Pkg.versionFromText (Text.pack str)
34+parseVersion :: String -> Maybe V.Version
35+parseVersion chars =
36+ V.fromString (Utf8.fromChars chars)
3637
3738
3839suggestVersion :: String -> IO [String]
@@ -41,10 +42,10 @@ suggestVersion _ =
4142
4243
4344exampleVersions :: String -> [String]
44−exampleVersions string =
45+exampleVersions chars =
4546 let
46− chunks = map Text.unpack (Text.splitOn "." (Text.pack string))
47− isNumber str = not (null str) && all Char.isDigit str
47+ chunks = map Utf8.toChars (Utf8.split 0x2E {-.-} (Utf8.fromChars chars))
48+ isNumber cs = not (null cs) && all Char.isDigit cs
4849 in
4950 if all isNumber chunks then
5051 case chunks of
@@ -73,9 +74,9 @@ elmFile =
7374
7475
7576parseElmFile :: String -> Maybe FilePath
76−parseElmFile string =
77− if FP.takeExtension string == ".elm" then
78− Just string
77+parseElmFile chars =
78+ if FP.takeExtension chars == ".elm" then
79+ Just chars
7980 else
8081 Nothing
8182
@@ -103,7 +104,7 @@ package =
103104parsePackage :: String -> Maybe Pkg.Name
104105parsePackage string =
105106 either (const Nothing) Just $
106− Pkg.fromText (Text.pack string)
107+ Pkg.fromString (Utf8.fromChars string)
107108
108109
109110suggestPackages :: String -> IO [String]
@@ -113,9 +114,9 @@ suggestPackages _ =
113114
114115examplePackages :: String -> IO [String]
115116examplePackages string =
116− case Pkg.fromText (Text.pack string) of
117− Left (_, suggestions@(_:_)) ->
118− return suggestions
117+ case Pkg.fromString (Utf8.fromChars string) of
118+ Left _ ->
119+ return (error "TODO need to make suggestions")
119120
120121 _ ->
121122 return