on master help sign in
PR feedback
commit963cb7f647efb2b82978e7c8914ee175810e7133 authorNeil Mitchell <ndmitchell@gmail.com> dateThu 12 Sep 2019, 21:49 (7 years ago) parent9cfb9aa
2 files changed+11−10
src/Development/IDE/Core/Compile.hs+2−2 src/Development/IDE/Core/Preprocessor.hs+9−8
src/Development/IDE/Core/Compile.hs+2−2
@@ -272,7 +272,7 @@ parseFileContents
272272 -> FilePath -- ^ the filename (for source locations)
273273 -> Maybe SB.StringBuffer -- ^ Haskell module source text (full Unicode is supported)
274274 -> ExceptT [FileDiagnostic] m ([FileDiagnostic], ParsedModule)
275−parseFileContents sourcePlugin filename mbContents = do
275+parseFileContents customPreprocessor filename mbContents = do
276276 (contents, dflags) <- preprocessor filename mbContents
277277 let loc = mkRealSrcLoc (mkFastString filename) 1 1
278278 case unP Parser.parseModule (mkPState dflags contents loc) of
@@ -299,7 +299,7 @@ parseFileContents sourcePlugin filename mbContents = do
299299 throwE $ diagFromErrMsgs "parser" dflags $ snd $ getMessages pst dflags
300300
301301 -- Ok, we got here. It's safe to continue.
302− let (errs, parsed) = sourcePlugin rdr_module
302+ let (errs, parsed) = customPreprocessor rdr_module
303303 unless (null errs) $ throwE $ diagFromStrings "parser" errs
304304 ms <- getModSummaryFromBuffer filename contents dflags parsed
305305 let pm =
src/Development/IDE/Core/Preprocessor.hs+9−8
@@ -31,14 +31,15 @@ import Data.Maybe
3131preprocessor :: GhcMonad m => FilePath -> Maybe StringBuffer -> ExceptT [FileDiagnostic] m (StringBuffer, DynFlags)
3232preprocessor filename mbContents = do
3333 -- Perform unlit
34− (isOnDisk, contents) <- if isLiterate filename then do
35− dflags <- getDynFlags
36− newcontent <- liftIO $ runLhs dflags filename mbContents
37− return (False, newcontent)
38− else do
39− contents <- liftIO $ maybe (hGetStringBuffer filename) return mbContents
40− let isOnDisk = isNothing mbContents
41− return (isOnDisk, contents)
34+ (isOnDisk, contents) <-
35+ if isLiterate filename then do
36+ dflags <- getDynFlags
37+ newcontent <- liftIO $ runLhs dflags filename mbContents
38+ return (False, newcontent)
39+ else do
40+ contents <- liftIO $ maybe (hGetStringBuffer filename) return mbContents
41+ let isOnDisk = isNothing mbContents
42+ return (isOnDisk, contents)
4243
4344 -- Perform cpp
4445 dflags <- ExceptT $ parsePragmasIntoDynFlags filename contents