on master help sign in
Show errors just like in the terminal

I cannot think of any detail that is missing at the moment, so we will see if there is some corner case later!

commitbf2e5eb499b6f1619e15ee9957823af502e4c7ad authorEvan Czaplicki <evancz@users.noreply.github.com> dateMon 9 Apr 2018, 12:28 (9 years ago) parentfdba7a2
1 file changed+44−14
ui/browser/src/Errors.elm+44−14
ui/browser/src/Errors.elm+44−14
@@ -67,30 +67,60 @@ viewErrorHelp : Error.Error -> List (Html msg)
6767viewErrorHelp error =
6868 case error of
6969 Error.GeneralProblem { path, title, message } ->
70− [ text title ]
70+ viewHeader title path :: viewMessage message
7171
7272 Error.ModuleProblems badModules ->
73− List.map viewBadModule 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] ->
100+ [viewBadModule badModule]
101+
102+ a :: b :: cs ->
103+ viewBadModule a :: viewSeparator a.name b.name :: viewBadModules (b :: cs)
74104
75105
76106viewBadModule : Error.BadModule -> Html msg
77−viewBadModule { path, name, problems } =
107+viewBadModule { path, problems } =
78108 span [] (List.map (viewProblem path) problems)
79109
80110
81111viewProblem : String -> Error.Problem -> Html msg
82112viewProblem filePath problem =
83− let
84− leftover =
85− 76 - String.length problem.title
113+ span [] (viewHeader problem.title filePath :: viewMessage problem.message)
86114
87− header =
88− "-- " ++ problem.title ++ " " ++ String.padLeft leftover '-' (" " ++ filePath) ++ "\n\n"
89− in
90− span []
91− ( span [ style "color" "rgb(51,187,200)" ] [ text header ]
92− :: viewMessage problem.message
93− )
115+
116+viewSeparator : String -> String -> Html msg
117+viewSeparator before after =
118+ span [ style "color" "rgb(211,56,211)" ]
119+ [ text <|
120+ String.padLeft 80 ' ' (before ++ " ↑ ") ++ "\n" ++
121+ "====o======================================================================o====\n" ++
122+ " ↓ " ++ after ++ "\n\n\n"
123+ ]
94124
95125
96126
@@ -101,7 +131,7 @@ viewMessage : List Error.Chunk -> List (Html msg)
101131viewMessage chunks =
102132 case chunks of
103133 [] ->
104− []
134+ [ text "\n\n\n" ]
105135
106136 chunk :: others ->
107137 let