{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE CPP #-}
{-# OPTIONS_GHC -fno-warn-missing-fields #-}
module Text.Roy
    ( 
      
      
      
      roy
    , royFile
    , royFileReload
#ifdef TEST_EXPORT
    , roySettings
#endif
    ) where
import Language.Haskell.TH.Quote (QuasiQuoter (..))
import Language.Haskell.TH.Syntax
import Text.Shakespeare
import Text.Julius
roySettings :: Q ShakespeareSettings
roySettings :: Q ShakespeareSettings
roySettings = do
  ShakespeareSettings
jsettings <- Q ShakespeareSettings
javascriptSettings
  ShakespeareSettings -> Q ShakespeareSettings
forall a. a -> Q a
forall (m :: * -> *) a. Monad m => a -> m a
return (ShakespeareSettings -> Q ShakespeareSettings)
-> ShakespeareSettings -> Q ShakespeareSettings
forall a b. (a -> b) -> a -> b
$ ShakespeareSettings
jsettings { varChar :: Char
varChar = Char
'#'
  , preConversion :: Maybe PreConvert
preConversion = PreConvert -> Maybe PreConvert
forall a. a -> Maybe a
Just PreConvert {
      preConvert :: PreConversion
preConvert = [Char] -> [[Char]] -> PreConversion
ReadProcess [Char]
"roy" [[Char]
"--stdio", [Char]
"--browser"]
    , preEscapeIgnoreBalanced :: [Char]
preEscapeIgnoreBalanced = [Char]
"'\""
    , preEscapeIgnoreLine :: [Char]
preEscapeIgnoreLine = [Char]
"//"
    , wrapInsertion :: Maybe WrapInsertion
wrapInsertion = WrapInsertion -> Maybe WrapInsertion
forall a. a -> Maybe a
Just WrapInsertion {
        wrapInsertionIndent :: Maybe [Char]
wrapInsertionIndent = [Char] -> Maybe [Char]
forall a. a -> Maybe a
Just [Char]
"  "
      , wrapInsertionStartBegin :: [Char]
wrapInsertionStartBegin = [Char]
"(\\"
      , wrapInsertionSeparator :: [Char]
wrapInsertionSeparator = [Char]
" "
      , wrapInsertionStartClose :: [Char]
wrapInsertionStartClose = [Char]
" ->\n"
      , wrapInsertionEnd :: [Char]
wrapInsertionEnd = [Char]
")"
      , wrapInsertionAddParens :: Bool
wrapInsertionAddParens = Bool
True
      }
    }
  }
roy :: QuasiQuoter
roy :: QuasiQuoter
roy = QuasiQuoter { quoteExp :: [Char] -> Q Exp
quoteExp = \[Char]
s -> do
    ShakespeareSettings
rs <- Q ShakespeareSettings
roySettings
    QuasiQuoter -> [Char] -> Q Exp
quoteExp (ShakespeareSettings -> QuasiQuoter
shakespeare ShakespeareSettings
rs) [Char]
s
    }
royFile :: FilePath -> Q Exp
royFile :: [Char] -> Q Exp
royFile [Char]
fp = do
    ShakespeareSettings
rs <- Q ShakespeareSettings
roySettings
    ShakespeareSettings -> [Char] -> Q Exp
shakespeareFile ShakespeareSettings
rs [Char]
fp
royFileReload :: FilePath -> Q Exp
royFileReload :: [Char] -> Q Exp
royFileReload [Char]
fp = do
    ShakespeareSettings
rs <- Q ShakespeareSettings
roySettings
    ShakespeareSettings -> [Char] -> Q Exp
shakespeareFileReload ShakespeareSettings
rs [Char]
fp