Commit 0fa0b210 authored by Andrew Gibiansky's avatar Andrew Gibiansky

Merge pull request #332 from cje/decsInstance

Add IHaskell.Display.IHaskellDisplay instance for DecsQ
parents 3a4e4e29 1c83287a
...@@ -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