{-# OPTIONS_GHC -Wall #-}
module Text.Pandoc.Highlighting.Extensions.WriterOptions
( applyAllSyntaxExtensions
, modifySyntaxMap
, modifySyntax
, modifyContext
) where
import Text.Pandoc (WriterOptions (..))
import Skylighting.Types (Context, Syntax)
import qualified Skylighting.Extensions
import Skylighting.Modding (SyntaxMap)
import qualified Skylighting.Modding
import Data.Text (Text)
applyAllSyntaxExtensions :: WriterOptions -> WriterOptions
applyAllSyntaxExtensions = modifySyntaxMap Skylighting.Extensions.applyAll
modifySyntaxMap :: (SyntaxMap -> SyntaxMap) -> WriterOptions -> WriterOptions
modifySyntaxMap f o = o{ writerSyntaxMap = f (writerSyntaxMap o) }
modifySyntax
:: Text
-> (Syntax -> Syntax) -> WriterOptions -> WriterOptions
modifySyntax name =
modifySyntaxMap .
Skylighting.Modding.modifySyntax name
modifyContext
:: Text
-> Text
-> (Context -> Context) -> WriterOptions -> WriterOptions
modifyContext syntaxName contextName =
modifySyntax syntaxName .
Skylighting.Modding.modifySyntaxContexts .
Skylighting.Modding.modifyContext contextName