hls-cabal-plugin-0.1.0.0: src/Ide/Plugin/Cabal/Parse.hs
module Ide.Plugin.Cabal.Parse
( parseCabalFileContents
-- * Re-exports
, FilePath
, NonEmpty(..)
, PWarning(..)
, Version
, PError(..)
, Position(..)
, GenericPackageDescription(..)
) where
import qualified Data.ByteString as BS
import Data.List.NonEmpty (NonEmpty (..))
import Distribution.Fields (PError (..),
PWarning (..))
import Distribution.Fields.ParseResult (runParseResult)
import Distribution.PackageDescription.Parsec (parseGenericPackageDescription)
import Distribution.Parsec.Position (Position (..))
import Distribution.Types.GenericPackageDescription (GenericPackageDescription (..))
import Distribution.Types.Version (Version)
parseCabalFileContents
:: BS.ByteString -- ^ UTF-8 encoded bytestring
-> IO ([PWarning], Either (Maybe Version, NonEmpty PError) GenericPackageDescription)
parseCabalFileContents bs =
pure $ runParseResult (parseGenericPackageDescription bs)