packages feed

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 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