Commit 1c83287a authored by CJ East's avatar CJ East

Add IHaskell.Display.IHaskellDisplay instance for DecsQ

parent 3a4e4e29
...@@ -45,7 +45,7 @@ import Data.String.Utils (rstrip) ...@@ -45,7 +45,7 @@ import Data.String.Utils (rstrip)
import qualified Data.ByteString.Base64 as Base64 import qualified Data.ByteString.Base64 as Base64
import qualified Data.ByteString.Char8 as Char import qualified Data.ByteString.Char8 as Char
import Data.Aeson (Value) import Data.Aeson (Value)
import Language.Haskell.TH as TH
import System.Directory(getTemporaryDirectory, setCurrentDirectory) import System.Directory(getTemporaryDirectory, setCurrentDirectory)
import Control.Concurrent.STM.TChan import Control.Concurrent.STM.TChan
...@@ -78,6 +78,12 @@ instance IHaskellDisplay a => IHaskellDisplay [a] where ...@@ -78,6 +78,12 @@ instance IHaskellDisplay a => IHaskellDisplay [a] where
displays <- mapM display disps displays <- mapM display disps
return $ ManyDisplay displays return $ ManyDisplay displays
instance IHaskellDisplay TH.DecsQ where
display decl = do r <- TH.runQ decl
let t = TH.pprint r
let dd = DisplayData PlainText $ pack t
display dd
-- | Encode many displays into a single one. All will be output. -- | Encode many displays into a single one. All will be output.
many :: [Display] -> Display many :: [Display] -> Display
many = ManyDisplay many = ManyDisplay
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment