ghc-mod- Happy Haskell Hacking

Safe HaskellNone




type DirPath = FilePath Source #

Guaranteed to be a path to a directory with no trailing slash.

type FileName = String Source #

Guaranteed to be the name of a file only (no slashes).

findCabalFile :: FilePath -> IO (Maybe FilePath) Source #

findCabalFiles dir. Searches for a .cabal files in dir's parent directories. The first parent directory containing more than one cabal file is assumed to be the project directory. If only one cabal file exists in this directory it is returned otherwise findCabalFiles throws GMENoCabalFile or GMETooManyCabalFiles

getSandboxDb :: Cradle -> IO (Maybe GhcPkgDb) Source #

Get path to sandbox config file

extractSandboxDbDir :: String -> Maybe FilePath Source #

Extract the sandbox package db directory from the cabal.sandbox.config file. Exception is thrown if the sandbox config file is broken.

isCabalFile :: FilePath -> Bool Source #

>>> isCabalFile "/home/user/.cabal"

takeExtension' :: FilePath -> String Source #

>>> takeExtension' "/some/dir/bla.cabal"
>>> takeExtension' "some/reldir/bla.cabal"
>>> takeExtension' "bla.cabal"
>>> takeExtension' ".cabal"

findFileInParentsP :: (FilePath -> Bool) -> ([FilePath] -> Maybe a) -> FilePath -> IO (Maybe a) Source #

findFileInParentsP p r dir Look for files satisfying p in dir and all it's parent directories. Files found to satisfy p in a given directory are passed to r and if this yields a Just value the search finishes early without examinig any more directories and this value is returned.

findFilesInParentsP :: (FilePath -> Bool) -> FilePath -> IO [IO [FilePath]] Source #

findFilesInParentsP p dir Look for files satisfying p in dir and all it's parent directories.

getFilesP :: (FilePath -> Bool) -> DirPath -> IO [FileName] Source #

getFilesP p dir. Find all files satisfying p in .cabal in dir.

parents :: FilePath -> [FilePath] Source #

parents dir. Returns all parent directories of dir including dir.


>>> parents "foo"
>>> parents "/foo"
>>> parents "/foo/bar"
>>> parents "foo/bar"

setupConfigPath :: FilePath -> FilePath Source #

Path to LocalBuildInfo file, usually dist/setup-config

symbolCache :: Cradle -> FilePath Source #

Filename of the symbol table cache file.