on master help sign in
Show errors just like in the terminal
bf2e5ebEvan Czaplicki
ui/browser/src/Errors.elm+44−14
@@ -67,30 +67,60 @@ viewErrorHelp : Error.Error -> List (Html msg)
67viewErrorHelp error =
67viewErrorHelp error =
68 case error of
68 case error of
69 Error.GeneralProblem { path, title, message } ->
69 Error.GeneralProblem { path, title, message } ->
70− [ text title ]
70+ viewHeader title path :: viewMessage message
71
71
72 Error.ModuleProblems badModules ->
72 Error.ModuleProblems badModules ->
73+ viewBadModules badModules
74+
75+
76+
77+-- VIEW HEADER
78+
79+
80+viewHeader : String -> String -> Html msg
81+viewHeader title filePath =
82+ let
83+ leftover = 76 - String.length title
84+ header = "-- " ++ title ++ " " ++ String.padLeft leftover '-' (" " ++ filePath) ++ "\n\n"
85+ in
86+ span [ style "color" "rgb(51,187,200)" ] [ text header ]
87+
88+
89+
90+-- VIEW BAD MODULES
91+
92+
93+viewBadModules : List Error.BadModule -> List (Html msg)
94+viewBadModules badModules =
95+ case badModules of
96+ [] ->
97+ []
98+
99+ [badModule] ->
73− List.map viewBadModule badModules
100+ [viewBadModule badModule]
101+
102+ a :: b :: cs ->
103+ viewBadModule a :: viewSeparator a.name b.name :: viewBadModules (b :: cs)
74
104
75
105
76viewBadModule : Error.BadModule -> Html msg
106viewBadModule : Error.BadModule -> Html msg
77−viewBadModule { path, name, problems } =
107+viewBadModule { path, problems } =
78 span [] (List.map (viewProblem path) problems)
108 span [] (List.map (viewProblem path) problems)
79
109
80
110
81viewProblem : String -> Error.Problem -> Html msg
111viewProblem : String -> Error.Problem -> Html msg
82viewProblem filePath problem =
112viewProblem filePath problem =
83− let
113+ span [] (viewHeader problem.title filePath :: viewMessage problem.message)
84− leftover =
85− 76 - String.length problem.title
86
114
87− header =
115+
88− "-- " ++ problem.title ++ " " ++ String.padLeft leftover '-' (" " ++ filePath) ++ "\n\n"
116+viewSeparator : String -> String -> Html msg
89− in
117+viewSeparator before after =
90− span []
91− ( span [ style "color" "rgb(51,187,200)" ] [ text header ]
118+ span [ style "color" "rgb(211,56,211)" ]
92− :: viewMessage problem.message
119+ [ text <|
93− )
120+ String.padLeft 80 ' ' (before ++ " ↑ ") ++ "\n" ++
121+ "====o======================================================================o====\n" ++
122+ " ↓ " ++ after ++ "\n\n\n"
123+ ]
94
124
95
125
96
126
@@ -101,7 +131,7 @@ viewMessage : List Error.Chunk -> List (Html msg)
101viewMessage chunks =
131viewMessage chunks =
102 case chunks of
132 case chunks of
103 [] ->
133 [] ->
104− []
134+ [ text "\n\n\n" ]
105
135
106 chunk :: others ->
136 chunk :: others ->
107 let
137 let