Language.Haskell.GhcMod.PathsAndFiles

ghc-mod-5.8.0.0: Happy Haskell Hacking

Safe Haskell | None
Language | Haskell2010

Language.Haskell.GhcMod.PathsAndFiles

Synopsis

- type DirPath = FilePath
- type FileName = String
- findCabalFile :: FilePath -> IO (Maybe FilePath)
- findStackConfigFile :: FilePath -> IO (Maybe FilePath)
- findCabalSandboxDir :: FilePath -> IO (Maybe FilePath)
- findCustomPackageDbFile :: FilePath -> IO (Maybe FilePath)
- getSandboxDb :: Cradle -> IO (Maybe GhcPkgDb)
- extractSandboxDbDir :: String -> Maybe FilePath
- isCabalFile :: FilePath -> Bool
- takeExtension' :: FilePath -> String
- findFileInParentsP :: (FilePath -> Bool) -> ([FilePath] -> Maybe a) -> FilePath -> IO (Maybe a)
- findFilesInParentsP :: (FilePath -> Bool) -> FilePath -> IO [IO [FilePath]]
- getFilesP :: (FilePath -> Bool) -> DirPath -> IO [FileName]
- parents :: FilePath -> [FilePath]
- setupConfigFile :: Cradle -> FilePath
- sandboxConfigFile :: Cradle -> FilePath
- sandboxConfigFileName :: String
- setupConfigPath :: FilePath -> FilePath
- macrosHeaderPath :: FilePath
- autogenModulePath :: String -> String
- autogenModulesDir :: FilePath
- ghcSandboxPkgDbDir :: String -> String
- packageCache :: String
- symbolCache :: Cradle -> FilePath
- symbolCacheFile :: String
- resolvedComponentsCacheFile :: FilePath -> FilePath
- cabalHelperCacheFile :: FilePath -> FilePath
- mergedPkgOptsCacheFile :: FilePath -> FilePath
- pkgDbStackCacheFile :: FilePath -> FilePath
- module Language.Haskell.GhcMod.Caching

# Documentation

type DirPath = FilePath #

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

type FileName = String #

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

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

`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`

findStackConfigFile :: FilePath -> IO (Maybe FilePath) #

findCabalSandboxDir :: FilePath -> IO (Maybe FilePath) #

findCustomPackageDbFile :: FilePath -> IO (Maybe FilePath) #

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

Get path to sandbox config file

extractSandboxDbDir :: String -> Maybe FilePath #

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 #

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

takeExtension' :: FilePath -> String #

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

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

    >>> takeExtension' "bla.cabal"
    ".cabal"

    >>> takeExtension' ".cabal"
    ""

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

`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]] #

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

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

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

parents :: FilePath -> [FilePath] #

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

Examples

    >>> parents "foo"
    ["foo"]

    >>> parents "/foo"
    ["/foo","/"]

    >>> parents "/foo/bar"
    ["/foo/bar","/foo","/"]

    >>> parents "foo/bar"
    ["foo/bar","foo"]

setupConfigFile :: Cradle -> FilePath #

sandboxConfigFile :: Cradle -> FilePath #

sandboxConfigFileName :: String #

setupConfigPath :: FilePath -> FilePath #

Path to `LocalBuildInfo` file, usually `dist/setup-config`

macrosHeaderPath :: FilePath #

autogenModulePath :: String -> String #

autogenModulesDir :: FilePath #

ghcSandboxPkgDbDir :: String -> String #

packageCache :: String #

symbolCache :: Cradle -> FilePath #

Filename of the symbol table cache file.

symbolCacheFile :: String #

resolvedComponentsCacheFile :: FilePath -> FilePath #

cabalHelperCacheFile :: FilePath -> FilePath #

mergedPkgOptsCacheFile :: FilePath -> FilePath #

pkgDbStackCacheFile :: FilePath -> FilePath #

module Language.Haskell.GhcMod.Caching