@@ -12,6 +12,7 @@ module Reporting.Error
1212import qualified Data.ByteString as B
1313import qualified Data.NonEmptyList as NE
1414import qualified Data.OneOrMore as OneOrMore
15+import qualified System.FilePath as FP
1516
1617import qualified Elm.ModuleName as ModuleName
1718import qualified File
@@ -38,8 +39,8 @@ import qualified Reporting.Report as Report
3839data Module =
3940 Module
4041 { _name :: ModuleName.Raw
41− , _path :: FilePath
42− , _time :: File.Time
42+ , _absolutePath :: FilePath
43+ , _modificationTime :: File.Time
4344 , _source :: B.ByteString
4445 , _error :: Error
4546 }
@@ -92,26 +93,26 @@ toReports source err =
9293-- TO DOC
9394
9495
95−toDoc :: Module -> [Module] -> D.Doc
96−toDoc err errs =
96+toDoc :: FilePath -> Module -> [Module] -> D.Doc
97+toDoc root err errs =
9798 let
98− (NE.List m ms) = NE.sortBy _time (NE.List err errs)
99+ (NE.List m ms) = NE.sortBy _modificationTime (NE.List err errs)
99100 in
100− D.vcat (toDocHelp m ms)
101+ D.vcat (toDocHelp root m ms)
101102
102103
103−toDocHelp :: Module -> [Module] -> [D.Doc]
104−toDocHelp module1 modules =
104+toDocHelp :: FilePath -> Module -> [Module] -> [D.Doc]
105+toDocHelp root module1 modules =
105106 case modules of
106107 [] ->
107− [moduleToDoc module1
108+ [moduleToDoc root module1
108109 ,""
109110 ]
110111
111112 module2 : otherModules ->
112− moduleToDoc module1
113+ moduleToDoc root module1
113114 : toSeparator module1 module2
114− : toDocHelp module2 otherModules
115+ : toDocHelp root module2 otherModules
115116
116117
117118toSeparator :: Module -> Module -> D.Doc
@@ -133,19 +134,22 @@ toSeparator beforeModule afterModule =
133134-- MODULE TO DOC
134135
135136
136−moduleToDoc :: Module -> D.Doc
137−moduleToDoc (Module _ path _ source err) =
137+moduleToDoc :: FilePath -> Module -> D.Doc
138+moduleToDoc root (Module _ absolutePath _ source err) =
138139 let
139140 reports =
140141 toReports (Code.toSource source) err
142+
143+ relativePath =
144+ FP.makeRelative root absolutePath
141145 in
142− D.vcat $ map (reportToDoc path) (NE.toList reports)
146+ D.vcat $ map (reportToDoc relativePath) (NE.toList reports)
143147
144148
145149reportToDoc :: FilePath -> Report.Report -> D.Doc
146−reportToDoc path (Report.Report title _ _ message) =
150+reportToDoc relativePath (Report.Report title _ _ message) =
147151 D.vcat
148− [ toMessageBar title path
152+ [ toMessageBar title relativePath
149153 , ""
150154 , message
151155 , ""