From 380acdaee0137619fb9be42af0ebb9b23dc296de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Wed, 16 Sep 2015 05:09:55 +0200 Subject: [PATCH] Only use debugLogger when loglevel >= GmDebug --- Language/Haskell/GhcMod/DynFlags.hs | 4 ++++ Language/Haskell/GhcMod/Target.hs | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Language/Haskell/GhcMod/DynFlags.hs b/Language/Haskell/GhcMod/DynFlags.hs index 565c3ed..f335a7c 100644 --- a/Language/Haskell/GhcMod/DynFlags.hs +++ b/Language/Haskell/GhcMod/DynFlags.hs @@ -13,6 +13,10 @@ import Language.Haskell.GhcMod.DebugLogger import System.IO.Unsafe (unsafePerformIO) import Prelude +setEmptyLogger :: DynFlags -> DynFlags +setEmptyLogger df = + Gap.setLogAction df $ \_ _ _ _ _ -> return () + setDebugLogger :: (String -> IO ()) -> DynFlags -> DynFlags setDebugLogger put df = do Gap.setLogAction df (debugLogAction put) diff --git a/Language/Haskell/GhcMod/Target.hs b/Language/Haskell/GhcMod/Target.hs index 79ccaef..11decbe 100644 --- a/Language/Haskell/GhcMod/Target.hs +++ b/Language/Haskell/GhcMod/Target.hs @@ -137,9 +137,13 @@ runGmlTWith efnmns' mdf wrapper action = do (text "Initializing GHC session with following options") (intercalate " " $ map (("\""++) . (++"\"")) opts') + GhcModLog { gmLogLevel = Just level } <- gmlHistory putErr <- gmErrStrIO + let setLogger | level >= GmDebug = setDebugLogger putErr + | otherwise = setEmptyLogger + initSession opts' $ - setModeSimple >>> setDebugLogger putErr >>> mdf + setModeSimple >>> setLogger >>> mdf mappedStrs <- getMMappedFilePaths let targetStrs = mappedStrs ++ map moduleNameString mns ++ cfns @@ -441,6 +445,9 @@ loadTargets opts targetStrs = do loadTargets' Intelligent else loadTargets' Simple + + gmLog GmDebug "loadTargets" $ text "Loading done" + where relativize (Target (TargetFile filePath phase) taoc src) = do crdl <- cradle