packages feed

cabal-gild-0.3.0.1: source/library/CabalGild/Type/Pragma.hs

module CabalGild.Type.Pragma where

import qualified Control.Monad as Monad
import qualified Distribution.Compat.CharParsing as CharParsing
import qualified Distribution.FieldGrammar.Newtypes as Newtypes
import qualified Distribution.Parsec as Parsec

-- | A pragma, which is a special comment used to customize behavior.
newtype Pragma
  = -- | Discover modules within the given directory.
    Discover FilePath
  deriving (Eq, Show)

instance Parsec.Parsec Pragma where
  parsec = do
    CharParsing.spaces
    Monad.void $ CharParsing.string "cabal-gild:"
    CharParsing.spaces
    Monad.void $ CharParsing.string "discover"
    CharParsing.skipSpaces1
    Discover . Newtypes.getFilePathNT <$> Parsec.parsec