ghc-mod 1.10.11 → 1.10.12
raw patch · 4 files changed
+13/−34 lines, 4 files
Files
- Cabal.hs +10/−31
- GHCApi.hs +1/−1
- GHCMod.hs +1/−1
- ghc-mod.cabal +1/−1
Cabal.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE OverloadedStrings, RecordWildCards #-} module Cabal (initializeGHC) where @@ -16,7 +16,6 @@ import GHCApi import GHCChoice import qualified Gap-import Language.Haskell.Extension import System.Directory import System.FilePath import Types@@ -34,18 +33,17 @@ return (fileName,logReader) withCabal = do (owdir,cdir,cfile) <- liftIO getDirs- binfo <- liftIO $ parseCabalFile cfile- let (idirs',exts',mlang) = extractBuildInfo binfo- exts = map (addX . Gap.extensionToString) exts'- lang = maybe "-XHaskell98" (addX . show) mlang- gopts = ghcOptions ++ exts ++ [lang]- changeToCabalDirectory cdir- let idirs = case idirs' of+ binfo@BuildInfo{..} <- liftIO $ parseCabalFile cfile+ let exts = map (addX . Gap.extensionToString) $ usedExtensions binfo+ lang = maybe "-XHaskell98" (addX . show) defaultLanguage+ libs = map ("-l" ++) extraLibs+ libDirs = map ("-L" ++) extraLibDirs+ gopts = ghcOptions ++ exts ++ [lang] ++ libs ++ libDirs+ idirs = case hsSourceDirs of [] -> [cdir,owdir]- dirs -> dirs ++ [owdir]- file = ajustFileName fileName owdir cdir+ dirs -> map (cdir </>) dirs ++ [owdir] logReader <- initSession opt gopts idirs logging- return (file,logReader)+ return (fileName,logReader) addX = ("-X" ++) ----------------------------------------------------------------@@ -61,26 +59,7 @@ toMaybe [] = Nothing toMaybe (x:_) = Just x --- SourceDirs, Extensions, and Language-extractBuildInfo :: BuildInfo -> ([String],[Extension],Maybe Language)-extractBuildInfo binfo = (hsSourceDirs binfo- ,oldExtensions binfo- ,defaultLanguage binfo)- ------------------------------------------------------------------ajustFileName :: FilePath -> FilePath -> FilePath -> FilePath-ajustFileName name olddir newdir- | olen == nlen = name- | otherwise = drop (nlen+1) olddir </> name- where- olen = length olddir- nlen = length newdir--changeToCabalDirectory :: FilePath -> Ghc ()-changeToCabalDirectory dir = do- liftIO $ setCurrentDirectory dir- workingDirectoryChanged -- CurrentWorkingDir, CabalDir, CabalFile getDirs :: IO (FilePath,FilePath,FilePath)
GHCApi.hs view
@@ -45,7 +45,7 @@ d' = d { packageFlags = ghcPackage : packageFlags d , importPaths = idirs- , ghcLink = NoLink+ , ghcLink = LinkInMemory , hscTarget = HscInterpreted , flags = flags d }
GHCMod.hs view
@@ -62,7 +62,7 @@ parseArgs :: [OptDescr (Options -> Options)] -> [String] -> (Options, [String]) parseArgs spec argv = case getOpt Permute spec argv of- (o,n,[] ) -> (foldl (flip id) defaultOptions o, n)+ (o,n,[] ) -> (foldr id defaultOptions o, n) (_,_,errs) -> throw (CmdArg errs) ----------------------------------------------------------------
ghc-mod.cabal view
@@ -1,5 +1,5 @@ Name: ghc-mod-Version: 1.10.11+Version: 1.10.12 Author: Kazu Yamamoto <kazu@iij.ad.jp> Maintainer: Kazu Yamamoto <kazu@iij.ad.jp> License: BSD3