@@ -37,23 +37,24 @@ import qualified StringBuffer as GHC
38parseModule
38parseModule
39 :: MonadIO m
39 :: MonadIO m
40− => [DynOption] -- ^ Dynamic options that affect parsing
40+ => Config -- ^ Ormolu configuration
41 -> FilePath -- ^ File name (only for source location annotations)
41 -> FilePath -- ^ File name (only for source location annotations)
42 -> String -- ^ Input for parser
42 -> String -- ^ Input for parser
43 -> m ( [GHC.Warn]
43 -> m ( [GHC.Warn]
44 , Either (SrcSpan, String) ParseResult
44 , Either (SrcSpan, String) ParseResult
46−parseModule dynOpts path input' = liftIO $ do
46+parseModule Config {..} path input' = liftIO $ do
47 let (input, extraComments) = stripLinePragmas input'
47 let (input, extraComments) = stripLinePragmas input'
48 (ws, dynFlags) <- ghcWrapper $ do
48 (ws, dynFlags) <- ghcWrapper $ do
49 dynFlags0 <- initDynFlagsPure path input
49 dynFlags0 <- initDynFlagsPure path input
50− (dynFlags1, _, ws) <-
51− GHC.parseDynamicFilePragma dynFlags0 (dynOptionToLocatedStr <$> dynOpts)
50+ (dynFlags1, _, ws) <- GHC.parseDynamicFilePragma
52+ (dynOptionToLocatedStr <$> cfgDynOptions)
52 return (ws, dynFlags1)
53 return (ws, dynFlags1)
53 -- NOTE It's better to throw this outside of 'ghcWrapper' because
54 -- NOTE It's better to throw this outside of 'ghcWrapper' because
54 -- otherwise the exception will be wrapped as a GHC panic, which we don't
55 -- otherwise the exception will be wrapped as a GHC panic, which we don't
56− when (GHC.xopt Cpp dynFlags) $
57+ when (GHC.xopt Cpp dynFlags && not cfgTolerateCpp) $
57 throwIO (OrmoluCppEnabled path)
58 throwIO (OrmoluCppEnabled path)
58 let r = case runParser GHC.parseModule dynFlags path input of
59 let r = case runParser GHC.parseModule dynFlags path input of
59 GHC.PFailed _ ss m ->
60 GHC.PFailed _ ss m ->