@@ -29,6 +29,7 @@ data IOption = IOption { opt_logLevel :: Int,
2929 opt_typeintype :: Bool,
3030 opt_coverage :: Bool,
3131 opt_showimp :: Bool,
32+ opt_errContext :: Bool,
3233 opt_repl :: Bool,
3334 opt_verbose :: Bool,
3435 opt_ibcsubdir :: FilePath,
@@ -36,7 +37,7 @@ data IOption = IOption { opt_logLevel :: Int,
3637 }
3738 deriving (Show, Eq)
3839
39−defaultOpts = IOption 0 False False True False True True "" []
40+defaultOpts = IOption 0 False False True False False True True "" []
4041
4142-- TODO: Add 'module data' to IState, which can be saved out and reloaded quickly (i.e
4243-- without typechecking).
@@ -281,6 +282,16 @@ logLevel :: Idris Int
281282logLevel = do i <- get
282283 return (opt_logLevel (idris_options i))
283284
285+setErrContext :: Bool -> Idris ()
286+setErrContext t = do i <- get
287+ let opts = idris_options i
288+ let opt' = opts { opt_errContext = t }
289+ put (i { idris_options = opt' })
290+
291+errContext :: Idris Bool
292+errContext = do i <- get
293+ return (opt_errContext (idris_options i))
294+
284295useREPL :: Idris Bool
285296useREPL = do i <- get
286297 return (opt_repl (idris_options i))
@@ -383,8 +394,27 @@ data Command = Quit | Help | Eval PTerm | Check PTerm | TotCheck Name
383394 | LogLvl Int | Spec PTerm | HNF PTerm | Defn Name
384395 | Info Name | DebugInfo Name
385396 | Search PTerm
397+ | SetOpt Opt | UnsetOpt Opt
386398 | NOP
387399
400+data Opt = Filename String
401+ | Ver
402+ | Usage
403+ | NoPrelude
404+ | NoREPL
405+ | OLogging Int
406+ | Output String
407+ | TypeCase
408+ | TypeInType
409+ | NoCoverage
410+ | ErrContext
411+ | ShowImpl
412+ | Verbose
413+ | IBCSubDir String
414+ | ImportDir String
415+ deriving Eq
416+
417+
388418-- Parsed declarations
389419
390420data Fixity = Infixl { prec :: Int }