-l for check.
This commit is contained in:
parent
9a6c84410d
commit
4389dea800
@ -18,7 +18,7 @@ checkSyntax :: Options
|
|||||||
-> [FilePath] -- ^ The target files.
|
-> [FilePath] -- ^ The target files.
|
||||||
-> IO String
|
-> IO String
|
||||||
checkSyntax _ _ [] = error "ghc-mod: checkSyntax: No files given"
|
checkSyntax _ _ [] = error "ghc-mod: checkSyntax: No files given"
|
||||||
checkSyntax opt cradle files = unlines <$> withGHC sessionName (check opt cradle files)
|
checkSyntax opt cradle files = convert opt <$> withGHC sessionName (check opt cradle files)
|
||||||
where
|
where
|
||||||
sessionName = case files of
|
sessionName = case files of
|
||||||
[file] -> file
|
[file] -> file
|
||||||
|
@ -31,6 +31,8 @@ module Language.Haskell.GhcMod.Internal (
|
|||||||
, runAnyOne
|
, runAnyOne
|
||||||
-- * 'GhcMonad' Choice
|
-- * 'GhcMonad' Choice
|
||||||
, (|||>)
|
, (|||>)
|
||||||
|
-- * Misc
|
||||||
|
, convert
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Language.Haskell.GhcMod.Browse
|
import Language.Haskell.GhcMod.Browse
|
||||||
|
@ -75,7 +75,11 @@ tupToString ((a,b,c,d),s) = show a ++ " "
|
|||||||
++ quote s
|
++ quote s
|
||||||
|
|
||||||
quote :: String -> String
|
quote :: String -> String
|
||||||
quote x = "\"" ++ x ++ "\""
|
quote x = "\"" ++ escape x ++ "\""
|
||||||
|
where
|
||||||
|
escape [] = []
|
||||||
|
escape ('"':ys) = '\\':'\"':escape ys
|
||||||
|
escape (y:ys) = y:escape ys
|
||||||
|
|
||||||
addNewLine :: String -> String
|
addNewLine :: String -> String
|
||||||
addNewLine = (++ "\n")
|
addNewLine = (++ "\n")
|
||||||
|
@ -61,6 +61,9 @@ argspec :: [OptDescr (Options -> Options)]
|
|||||||
argspec = [ Option "b" ["boundary"]
|
argspec = [ Option "b" ["boundary"]
|
||||||
(ReqArg (\s opts -> opts { lineSeparator = LineSeparator s }) "sep")
|
(ReqArg (\s opts -> opts { lineSeparator = LineSeparator s }) "sep")
|
||||||
"specify line separator (default is Nul string)"
|
"specify line separator (default is Nul string)"
|
||||||
|
, Option "l" ["tolisp"]
|
||||||
|
(NoArg (\opts -> opts { outputStyle = LispStyle }))
|
||||||
|
"print as a list of Lisp"
|
||||||
, Option "g" []
|
, Option "g" []
|
||||||
(ReqArg (\s opts -> opts { ghcOpts = s : ghcOpts opts }) "flag") "specify a ghc flag"
|
(ReqArg (\s opts -> opts { ghcOpts = s : ghcOpts opts }) "flag") "specify a ghc flag"
|
||||||
]
|
]
|
||||||
@ -68,8 +71,7 @@ argspec = [ Option "b" ["boundary"]
|
|||||||
usage :: String
|
usage :: String
|
||||||
usage = "ghc-modi version " ++ showVersion version ++ "\n"
|
usage = "ghc-modi version " ++ showVersion version ++ "\n"
|
||||||
++ "Usage:\n"
|
++ "Usage:\n"
|
||||||
++ "\t ghc-modi [-b sep]\n"
|
++ "\t ghc-modi [-l] [-b sep] [-g flag]\n"
|
||||||
++ "\t ghc-modi [-g flag]\n"
|
|
||||||
++ "\t ghc-modi help\n"
|
++ "\t ghc-modi help\n"
|
||||||
|
|
||||||
parseArgs :: [OptDescr (Options -> Options)] -> [String] -> (Options, [String])
|
parseArgs :: [OptDescr (Options -> Options)] -> [String] -> (Options, [String])
|
||||||
@ -155,7 +157,7 @@ loop opt set ls mvar readLog = do
|
|||||||
"info" -> showInfo set ls readLog arg
|
"info" -> showInfo set ls readLog arg
|
||||||
"type" -> showType opt set ls readLog arg
|
"type" -> showType opt set ls readLog arg
|
||||||
_ -> return ([], False, set)
|
_ -> return ([], False, set)
|
||||||
mapM_ (liftIO . putStrLn) msgs
|
liftIO $ putStrLn $ convert opt msgs
|
||||||
liftIO $ putStrLn $ if ok then "OK" else "NG"
|
liftIO $ putStrLn $ if ok then "OK" else "NG"
|
||||||
liftIO $ hFlush stdout
|
liftIO $ hFlush stdout
|
||||||
when ok $ loop opt set' ls mvar readLog
|
when ok $ loop opt set' ls mvar readLog
|
||||||
|
Loading…
Reference in New Issue
Block a user