Fail (NG) on command format errors
This commit is contained in:
parent
9b512c3e6b
commit
64a45fa510
@ -6,6 +6,7 @@ import Control.Applicative
|
||||
import Control.Monad
|
||||
import Data.Typeable (Typeable)
|
||||
import Data.List
|
||||
import Data.List.Split
|
||||
import Exception
|
||||
import Language.Haskell.GhcMod
|
||||
import Language.Haskell.GhcMod.Internal hiding (MonadIO,liftIO)
|
||||
@ -86,10 +87,15 @@ legacyInteractiveLoop asyncSymbolDb world = do
|
||||
interactiveHandlers =
|
||||
[ GHandler $ \(e :: ExitCode) -> throw e
|
||||
, GHandler $ \(InvalidCommandLine e) -> do
|
||||
gmErrStrLn $ either ("Invalid command line: "++) Prelude.id e
|
||||
return ""
|
||||
let err = notGood $ either ("Invalid command line: "++) Prelude.id e
|
||||
liftIO $ do
|
||||
putStr err
|
||||
exitFailure
|
||||
, GHandler $ \(SomeException e) -> gmErrStrLn (show e) >> return ""
|
||||
]
|
||||
notGood msg = "NG " ++ escapeNewlines msg
|
||||
escapeNewlines = replace "\n" "\\n" . replace "\\n" "\\\\n"
|
||||
replace needle replacement = intercalate replacement . splitOn needle
|
||||
|
||||
getFileSourceFromStdin :: IO String
|
||||
getFileSourceFromStdin = do
|
||||
|
Loading…
Reference in New Issue
Block a user