ormolu-0.5.0.1: A formatter for Haskell source code
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ormolu.Utils.Cabal

Synopsis

Documentation

data CabalInfo Source #

Cabal information of interest to Ormolu.

Constructors

CabalInfo 

Fields

Instances

Instances details
Show CabalInfo Source # 
Instance details

Defined in Ormolu.Utils.Cabal

Methods

showsPrec :: Int -> CabalInfo -> ShowS

show :: CabalInfo -> String

showList :: [CabalInfo] -> ShowS

Eq CabalInfo Source # 
Instance details

Defined in Ormolu.Utils.Cabal

Methods

(==) :: CabalInfo -> CabalInfo -> Bool

(/=) :: CabalInfo -> CabalInfo -> Bool

defaultCabalInfo :: CabalInfo Source #

Cabal info that is used by default when no .cabal file can be found.

data PackageName #

Instances

Instances details
Parsec PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

parsec :: CabalParsing m => m PackageName

Pretty PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

pretty :: PackageName -> Doc

prettyVersioned :: CabalSpecVersion -> PackageName -> Doc

Structured PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

structure :: Proxy PackageName -> Structure

structureHash' :: Tagged PackageName MD5

Data PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PackageName -> c PackageName

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PackageName

toConstr :: PackageName -> Constr

dataTypeOf :: PackageName -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PackageName)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PackageName)

gmapT :: (forall b. Data b => b -> b) -> PackageName -> PackageName

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PackageName -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PackageName -> r

gmapQ :: (forall d. Data d => d -> u) -> PackageName -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> PackageName -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PackageName -> m PackageName

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageName -> m PackageName

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageName -> m PackageName

IsString PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

fromString :: String -> PackageName

Generic PackageName 
Instance details

Defined in Distribution.Types.PackageName

Associated Types

type Rep PackageName :: Type -> Type

Methods

from :: PackageName -> Rep PackageName x

to :: Rep PackageName x -> PackageName

Read PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

readsPrec :: Int -> ReadS PackageName

readList :: ReadS [PackageName]

readPrec :: ReadPrec PackageName

readListPrec :: ReadPrec [PackageName]

Show PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

showsPrec :: Int -> PackageName -> ShowS

show :: PackageName -> String

showList :: [PackageName] -> ShowS

Binary PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

put :: PackageName -> Put

get :: Get PackageName

putList :: [PackageName] -> Put

NFData PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

rnf :: PackageName -> ()

Eq PackageName 
Instance details

Defined in Distribution.Types.PackageName

Methods

(==) :: PackageName -> PackageName -> Bool

(/=) :: PackageName -> PackageName -> Bool

Ord PackageName 
Instance details

Defined in Distribution.Types.PackageName

type Rep PackageName 
Instance details

Defined in Distribution.Types.PackageName

type Rep PackageName = D1 ('MetaData "PackageName" "Distribution.Types.PackageName" "Cabal-3.6.3.0" 'True) (C1 ('MetaCons "PackageName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortText)))

data Extension #

Constructors

EnableExtension KnownExtension 
DisableExtension KnownExtension 
UnknownExtension String 

Instances

Instances details
Parsec Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

parsec :: CabalParsing m => m Extension

Pretty Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

pretty :: Extension -> Doc

prettyVersioned :: CabalSpecVersion -> Extension -> Doc

Structured Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

structure :: Proxy Extension -> Structure

structureHash' :: Tagged Extension MD5

Data Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Extension -> c Extension

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Extension

toConstr :: Extension -> Constr

dataTypeOf :: Extension -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Extension)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Extension)

gmapT :: (forall b. Data b => b -> b) -> Extension -> Extension

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Extension -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Extension -> r

gmapQ :: (forall d. Data d => d -> u) -> Extension -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> Extension -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Extension -> m Extension

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Extension -> m Extension

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Extension -> m Extension

Generic Extension 
Instance details

Defined in Language.Haskell.Extension

Associated Types

type Rep Extension :: Type -> Type

Methods

from :: Extension -> Rep Extension x

to :: Rep Extension x -> Extension

Read Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

readsPrec :: Int -> ReadS Extension

readList :: ReadS [Extension]

readPrec :: ReadPrec Extension

readListPrec :: ReadPrec [Extension]

Show Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

showsPrec :: Int -> Extension -> ShowS

show :: Extension -> String

showList :: [Extension] -> ShowS

Binary Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

put :: Extension -> Put

get :: Get Extension

putList :: [Extension] -> Put

NFData Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

rnf :: Extension -> ()

Eq Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

(==) :: Extension -> Extension -> Bool

(/=) :: Extension -> Extension -> Bool

Ord Extension 
Instance details

Defined in Language.Haskell.Extension

Methods

compare :: Extension -> Extension -> Ordering

(<) :: Extension -> Extension -> Bool

(<=) :: Extension -> Extension -> Bool

(>) :: Extension -> Extension -> Bool

(>=) :: Extension -> Extension -> Bool

max :: Extension -> Extension -> Extension

min :: Extension -> Extension -> Extension

type Rep Extension 
Instance details

Defined in Language.Haskell.Extension

type Rep Extension = D1 ('MetaData "Extension" "Language.Haskell.Extension" "Cabal-3.6.3.0" 'False) (C1 ('MetaCons "EnableExtension" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 KnownExtension)) :+: (C1 ('MetaCons "DisableExtension" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 KnownExtension)) :+: C1 ('MetaCons "UnknownExtension" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))

getCabalInfoForSourceFile Source #

Arguments

:: MonadIO m 
=> FilePath

Haskell source file

-> m CabalInfo

Extracted cabal info

Locate .cabal file corresponding to the given Haskell source file and obtain CabalInfo from it.

findCabalFile Source #

Arguments

:: MonadIO m 
=> FilePath

Path to a Haskell source file in a project with a .cabal file

-> m (Maybe FilePath)

Absolute path to the .cabal file if available

Find the path to an appropriate .cabal file for a Haskell source file, if available.

parseCabalInfo Source #

Arguments

:: MonadIO m 
=> FilePath

Location of the .cabal file

-> FilePath

Location of the source file we are formatting

-> m CabalInfo

Extracted cabal info

Parse CabalInfo from a .cabal file at the given FilePath.