diff --git a/Language/Haskell/GhcMod/GHCApi.hs b/Language/Haskell/GhcMod/GHCApi.hs index 15bf8bf..8476b4a 100644 --- a/Language/Haskell/GhcMod/GHCApi.hs +++ b/Language/Haskell/GhcMod/GHCApi.hs @@ -152,7 +152,7 @@ addCmdOpts cmdOpts df = ---------------------------------------------------------------- --- | Set the files and load +-- | Set the files as targets and load them. setTargetFiles :: (GhcMonad m) => [FilePath] -> m () setTargetFiles files = do targets <- forM files $ \file -> G.guessTarget file Nothing @@ -178,9 +178,11 @@ withDynFlags setFlag body = G.gbracket setup teardown (\_ -> body) ---------------------------------------------------------------- +-- | Set 'DynFlags' equivalent to "-w:". setNoWaringFlags :: DynFlags -> DynFlags setNoWaringFlags df = df { warningFlags = Gap.emptyWarnFlags} +-- | Set 'DynFlags' equivalent to "-Wall". setAllWaringFlags :: DynFlags -> DynFlags setAllWaringFlags df = df { warningFlags = allWarningFlags } diff --git a/Language/Haskell/GhcMod/Logger.hs b/Language/Haskell/GhcMod/Logger.hs index 43563fd..6cde57e 100644 --- a/Language/Haskell/GhcMod/Logger.hs +++ b/Language/Haskell/GhcMod/Logger.hs @@ -44,6 +44,9 @@ appendLogRef df (LogRef ref) _ sev src style msg = do ---------------------------------------------------------------- +-- | Set the session flag (e.g. "-Wall" or "-w:") then +-- executes a body. Log messages are returned as 'String'. +-- Right is success and Left is failure. withLogger :: Options -> (DynFlags -> DynFlags) -> Ghc () -> Ghc (Either String String) withLogger opt setDF body = ghandle (handleErrMsg opt) $ do logref <- liftIO $ newLogRef