10import qualified Data.List as List
11import qualified Data.Map as Map
12import qualified Data.Maybe as Maybe
13import qualified Data.Name as Name
15import qualified AST.Optimized as Opt
16import qualified Elm.Compiler.Type.Extract as Extract
17import qualified Generate.JavaScript.Name as JsName
25 = Dev (Maybe Extract.Types)
26 | Prod ShortFieldNames
29isDebug :: Mode -> Bool
32 Dev mi -> Maybe.isJust mi
41 Map.Map Name.Name JsName.Name
44shortenFieldNames :: Opt.GlobalGraph -> ShortFieldNames
45shortenFieldNames (Opt.GlobalGraph _ frequencies) =
46 Map.foldr addToShortNames Map.empty $
47 Map.foldrWithKey addToBuckets Map.empty frequencies
50addToBuckets :: Name.Name -> Int -> Map.Map Int [Name.Name] -> Map.Map Int [Name.Name]
51addToBuckets field frequency buckets =
52 Map.insertWith (++) frequency [field] buckets
55addToShortNames :: [Name.Name] -> ShortFieldNames -> ShortFieldNames
56addToShortNames fields shortNames =
57 List.foldl' addField shortNames fields
60addField :: ShortFieldNames -> Name.Name -> ShortFieldNames
61addField shortNames field =
62 let rename = JsName.fromInt (Map.size shortNames) in
63 Map.insert field rename shortNames
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list