haskell-tools-debug 0.6.0.0 → 0.7.0.0
raw patch · 2 files changed
+27/−16 lines, 2 filesdep ~haskell-tools-astdep ~haskell-tools-backend-ghcdep ~haskell-tools-debugPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: haskell-tools-ast, haskell-tools-backend-ghc, haskell-tools-debug, haskell-tools-prettyprint, haskell-tools-refactor
API changes (from Hackage documentation)
Files
- Language/Haskell/Tools/Debug.hs +21/−10
- haskell-tools-debug.cabal +6/−6
Language/Haskell/Tools/Debug.hs view
@@ -4,6 +4,8 @@ #-} module Language.Haskell.Tools.Debug where +import Control.Monad +import Control.Reference import Control.Monad.IO.Class (MonadIO(..)) import Data.Maybe (Maybe(..), fromJust) import GHC.Generics (Generic(..)) @@ -22,6 +24,7 @@ import Language.Haskell.Tools.RangeDebug (srcInfoDebug) import Language.Haskell.Tools.RangeDebug.Instances () import Language.Haskell.Tools.Refactor.Perform (performCommand, readCommand) +import Language.Haskell.Tools.Refactor.RefactorBase import Language.Haskell.Tools.Refactor.Prepare import Language.Haskell.Tools.Refactor.RefactorBase (RefactorChange(..), IsBoot(..), SourceFileKey(..)) import Language.Haskell.Tools.Transform @@ -67,22 +70,30 @@ liftIO $ putStrLn $ show $ mapLocIndices sourceOrigin (getLocIndices cutUp) liftIO $ putStrLn "=========== sourced:" - let sourced = (if hasCPP then fixCPPSpans else id) $ rangeToSource sourceOrigin cutUp + let sourced = (if hasCPP then extractStayingElems else id) $ rangeToSource sourceOrigin cutUp liftIO $ putStrLn $ srcInfoDebug sourced liftIO $ putStrLn "=========== pretty printed:" let prettyPrinted = prettyPrint sourced liftIO $ putStrLn prettyPrinted transformed <- performCommand (either error id $ readCommand command) ((SourceFileKey NormalHs moduleName), sourced) [] case transformed of - Right [ContentChanged (_, correctlyTransformed)] -> do - liftIO $ putStrLn "=========== transformed AST:" - liftIO $ putStrLn $ srcInfoDebug correctlyTransformed - liftIO $ putStrLn "=========== transformed & prettyprinted:" - let prettyPrinted = prettyPrint correctlyTransformed - liftIO $ putStrLn prettyPrinted - liftIO $ putStrLn "===========" - -- TODO: implement - Right _ -> error "The output shoud be one module changed" + Right changes -> do + forM_ changes $ \case + ContentChanged (mod, correctlyTransformed) -> do + liftIO $ putStrLn $ "=========== transformed AST (" ++ (mod ^. sfkModuleName) ++ "):" + liftIO $ putStrLn $ srcInfoDebug correctlyTransformed + liftIO $ putStrLn $ "=========== transformed & prettyprinted (" ++ (mod ^. sfkModuleName) ++ "):" + let prettyPrinted = prettyPrint correctlyTransformed + liftIO $ putStrLn prettyPrinted + liftIO $ putStrLn "===========" + ModuleRemoved mod -> do + liftIO $ putStrLn $ "=========== module removed: " ++ mod + ModuleCreated mod cont _ -> do + liftIO $ putStrLn $ "=========== created AST (" ++ mod ++ "):" + liftIO $ putStrLn $ srcInfoDebug cont + liftIO $ putStrLn $ "=========== created & prettyprinted (" ++ mod ++ "):" + let prettyPrinted = prettyPrint cont + liftIO $ putStrLn prettyPrinted Left transformProblem -> do liftIO $ putStrLn "===========" liftIO $ putStrLn transformProblem
haskell-tools-debug.cabal view
@@ -1,5 +1,5 @@ name: haskell-tools-debug -version: 0.6.0.0 +version: 0.7.0.0 synopsis: Debugging Tools for Haskell-tools description: Debugging Tools for Haskell-tools homepage: https://github.com/haskell-tools/haskell-tools @@ -22,15 +22,15 @@ , references >= 0.3 && < 0.4 , ghc >= 8.0 && < 8.1 , ghc-paths >= 0.1 && < 0.2 - , haskell-tools-ast >= 0.6 && < 0.7 - , haskell-tools-backend-ghc >= 0.6 && < 0.7 - , haskell-tools-refactor >= 0.6 && < 0.7 - , haskell-tools-prettyprint >= 0.6 && < 0.7 + , haskell-tools-ast >= 0.7 && < 0.8 + , haskell-tools-backend-ghc >= 0.7 && < 0.8 + , haskell-tools-refactor >= 0.7 && < 0.8 + , haskell-tools-prettyprint >= 0.7 && < 0.8 default-language: Haskell2010 executable ht-debug build-depends: base >= 4.9 && < 5.0 - , haskell-tools-debug >= 0.6 && < 0.7 + , haskell-tools-debug >= 0.7 && < 0.8 hs-source-dirs: exe main-is: Main.hs default-language: Haskell2010