@@ -64,6 +64,8 @@ import Data.Char
6464import Data.Version
6565import Data.Word (Word)
6666
67+import qualified Text.PrettyPrint.ANSI.Leijen as ANSI
68+
6769import Debug.Trace
6870
6971-- | Run the REPL
@@ -117,8 +119,9 @@ ideslave orig mods
117119 do let fn = case mods of
118120 (f:_) -> f
119121 _ -> ""
122+ c <- colourise
120123 case parseCmd i "(input)" cmd of
121− Failure err -> iFail $ show err
124+ Failure err -> iFail $ show (fixColour c err)
122125 Success (Prove n') -> do iResult ""
123126 idrisCatch
124127 (do process fn (Prove n'))
@@ -218,8 +221,9 @@ processInput cmd orig inputs
218221 let fn = case inputs of
219222 (f:_) -> f
220223 _ -> ""
224+ c <- colourise
221225 case parseCmd i "(input)" cmd of
222− Failure err -> do liftIO $ print err
226+ Failure err -> do liftIO $ print (fixColour c err)
223227 return (Just inputs)
224228 Success Reload ->
225229 do putIState $ orig { idris_options = idris_options i
@@ -851,13 +855,19 @@ idrisMain opts =
851855
852856execScript :: String -> Idris ()
853857execScript expr = do i <- getIState
858+ c <- colourise
854859 case parseExpr i expr of
855− Failure err -> do iputStrLn $ show err
856− liftIO $ exitWith (ExitFailure 1)
857− Success term -> do ctxt <- getContext
858− (tm, _) <- elabVal toplevel False term
859− res <- execute tm
860− liftIO $ exitWith ExitSuccess
860+ Failure err -> do iputStrLn $ show (fixColour c err)
861+ liftIO $ exitWith (ExitFailure 1)
862+ Success term -> do ctxt <- getContext
863+ (tm, _) <- elabVal toplevel False term
864+ res <- execute tm
865+ liftIO $ exitWith ExitSuccess
866+
867+-- | Check if the coloring matches the options and corrects if necessary
868+fixColour :: Bool -> ANSI.Doc -> ANSI.Doc
869+fixColour False doc = ANSI.plain doc
870+fixColour True doc = doc
861871
862872-- | Get the platform-specific, user-specific Idris dir
863873getIdrisUserDataDir :: Idris FilePath
@@ -883,11 +893,12 @@ initScript = do script <- getInitScript
883893 unless eof $ do
884894 line <- liftIO $ hGetLine h
885895 script <- getInitScript
886− processLine ist line script
896+ c <- colourise
897+ processLine ist line script c
887898 runInit h
888− processLine i cmd input =
899+ processLine i cmd input clr =
889900 case parseCmd i input cmd of
890− Failure err -> liftIO $ print err
901+ Failure err -> liftIO $ print (fixColour clr err)
891902 Success Reload -> iFail "Init scripts cannot reload the file"
892903 Success (Load f) -> iFail "Init scripts cannot load files"
893904 Success (ModImport f) -> iFail "Init scripts cannot import modules"