on master help sign in
Switch terminal/ over to Data.Name
541409cEvan Czaplicki
compiler/src/Data/Name.hs+6
@@ -19,6 +19,7 @@ module Data.Name
19 , isAppendableType
19 , isAppendableType
20 , isCompappendType
20 , isCompappendType
21 , fromVarIndex
21 , fromVarIndex
22+ , fromReplCount
22 , fromWords
23 , fromWords
23 , fromManyNames
24 , fromManyNames
24 , fromTypeVariable
25 , fromTypeVariable
@@ -477,6 +478,11 @@ fromTypeVariableScheme scheme =
477 )
478 )
478
479
479
480
481+fromReplCount :: Int -> Name
482+fromReplCount n =
483+ fromString ("repl_value_" ++ show n)
484+
485+
480
486
481-- FROM MANY NAMES
487-- FROM MANY NAMES
482
488
terminal/src/Develop/Generate/Help.hs+3−3
@@ -10,9 +10,9 @@ module Develop.Generate.Help
10
10
11import qualified Data.ByteString.Builder as B
11import qualified Data.ByteString.Builder as B
12import Data.Monoid ((<>))
12import Data.Monoid ((<>))
13+import qualified Data.Name as Name
13import Text.RawString.QQ (r)
14import Text.RawString.QQ (r)
14
15
15−import qualified Elm.Name as N
16import qualified Json.Encode as Encode
16import qualified Json.Encode as Encode
17
17
18
18
@@ -20,7 +20,7 @@ import qualified Json.Encode as Encode
20-- PAGES
20-- PAGES
21
21
22
22
23−makePageHtml :: N.Name -> Maybe Encode.Value -> B.Builder
23+makePageHtml :: Name.Name -> Maybe Encode.Value -> B.Builder
24makePageHtml moduleName maybeFlags =
24makePageHtml moduleName maybeFlags =
25 [r|<!DOCTYPE HTML>
25 [r|<!DOCTYPE HTML>
26<html>
26<html>
@@ -31,7 +31,7 @@ makePageHtml moduleName maybeFlags =
31</head>
31</head>
32<body>
32<body>
33<script>
33<script>
34−Elm.|] <> N.toBuilder moduleName <> [r|.init({ flags: |] <> maybe "undefined" Encode.encode maybeFlags <> [r| });
34+Elm.|] <> Name.toBuilder moduleName <> [r|.init({ flags: |] <> maybe "undefined" Encode.encode maybeFlags <> [r| });
35</script>
35</script>
36</body>
36</body>
37</html>
37</html>
terminal/src/Repl.hs+13−13
@@ -15,6 +15,7 @@ import qualified Data.ByteString.Lazy as LBS
15import qualified Data.List as List
15import qualified Data.List as List
16import qualified Data.Map as Map
16import qualified Data.Map as Map
17import Data.Monoid ((<>))
17import Data.Monoid ((<>))
18+import qualified Data.Name as Name
18import qualified Data.Text as Text
19import qualified Data.Text as Text
19import qualified Data.Text.Encoding as Text
20import qualified Data.Text.Encoding as Text
20import qualified System.Console.Haskeline as Repl
21import qualified System.Console.Haskeline as Repl
@@ -25,7 +26,6 @@ import qualified System.IO as IO
25import qualified System.Process as Proc
26import qualified System.Process as Proc
26
27
27import qualified Elm.Compiler as Elm (version)
28import qualified Elm.Compiler as Elm (version)
28−import qualified Elm.Name as N
29import qualified Elm.Project as Project
29import qualified Elm.Project as Project
30import qualified Elm.Package as Pkg
30import qualified Elm.Package as Pkg
31import qualified Elm.PerUserCache as PerUserCache
31import qualified Elm.PerUserCache as PerUserCache
@@ -151,7 +151,7 @@ report msg =
151 return Nothing
151 return Nothing
152
152
153
153
154−data Output = None | Def N.Name | Expr Text.Text
154+data Output = None | Def Name.Name | Expr Text.Text
155
155
156
156
157interpret :: Output -> State -> Runner (Maybe a)
157interpret :: Output -> State -> Runner (Maybe a)
@@ -220,9 +220,9 @@ toInput string =
220data State =
220data State =
221 State
221 State
222 { _count :: !Int
222 { _count :: !Int
223− , _imports :: Map.Map N.Name Text.Text
223+ , _imports :: Map.Map Name.Name Text.Text
224− , _types :: Map.Map N.Name Text.Text
224+ , _types :: Map.Map Name.Name Text.Text
225− , _defs :: Map.Map N.Name Text.Text
225+ , _defs :: Map.Map Name.Name Text.Text
226 , _tricks :: [Text.Text]
226 , _tricks :: [Text.Text]
227 , _localizer :: L.Localizer
227 , _localizer :: L.Localizer
228 }
228 }
@@ -237,7 +237,7 @@ compile :: Bool -> Output -> State -> Task.Task (Maybe FilePath)
237compile noColors output (State count imports types defs tricks localizer) =
237compile noColors output (State count imports types defs tricks localizer) =
238 let
238 let
239 header =
239 header =
240− "module " <> N.toBuilder N.replModule <> " exposing (..)\n\n"
240+ "module " <> Name.toBuilder Name.replModule <> " exposing (..)\n\n"
241
241
242 elmSourceCode =
242 elmSourceCode =
243 (<>) header $
243 (<>) header $
@@ -259,14 +259,14 @@ compile noColors output (State count imports types defs tricks localizer) =
259
259
260 Expr expr ->
260 Expr expr ->
261 let
261 let
262− name = N.addIndex "repl_value_" count
262+ name = Name.fromReplCount count
263 text = Text.replace "\n" "\n " expr
263 text = Text.replace "\n" "\n " expr
264− def = N.toBuilder name <> " =\n " <> Text.encodeUtf8Builder text <> "\n"
264+ def = Name.toBuilder name <> " =\n " <> Text.encodeUtf8Builder text <> "\n"
265 in
265 in
266 compileForRepl (elmSourceCode <> def) (Just name)
266 compileForRepl (elmSourceCode <> def) (Just name)
267
267
268
268
269−addLines :: Map.Map N.Name Text.Text -> B.Builder -> B.Builder
269+addLines :: Map.Map Name.Name Text.Text -> B.Builder -> B.Builder
270addLines dict builder =
270addLines dict builder =
271 Map.foldr (\text b -> Text.encodeUtf8Builder text <> "\n" <> b) builder dict
271 Map.foldr (\text b -> Text.encodeUtf8Builder text <> "\n" <> b) builder dict
272
272
@@ -296,19 +296,19 @@ lookupCompletions string =
296 addMatches string False commands []
296 addMatches string False commands []
297
297
298
298
299−commands :: Map.Map N.Name ()
299+commands :: Map.Map Name.Name ()
300commands =
300commands =
301 Map.fromList [ (":exit", ()), (":quit", ()), (":reset", ()), (":help", ()) ]
301 Map.fromList [ (":exit", ()), (":quit", ()), (":reset", ()), (":help", ()) ]
302
302
303
303
304−addMatches :: String -> Bool -> Map.Map N.Name v -> [Repl.Completion] -> [Repl.Completion]
304+addMatches :: String -> Bool -> Map.Map Name.Name v -> [Repl.Completion] -> [Repl.Completion]
305addMatches string isFinished dict completions =
305addMatches string isFinished dict completions =
306 Map.foldrWithKey (addMatch string isFinished) completions dict
306 Map.foldrWithKey (addMatch string isFinished) completions dict
307
307
308
308
309−addMatch :: String -> Bool -> N.Name -> v -> [Repl.Completion] -> [Repl.Completion]
309+addMatch :: String -> Bool -> Name.Name -> v -> [Repl.Completion] -> [Repl.Completion]
310addMatch string isFinished name _ completions =
310addMatch string isFinished name _ completions =
311− let suggestion = N.toString name in
311+ let suggestion = Name.toString name in
312 if List.isPrefixOf string suggestion then
312 if List.isPrefixOf string suggestion then
313 Repl.Completion suggestion suggestion isFinished : completions
313 Repl.Completion suggestion suggestion isFinished : completions
314 else
314 else