on master help sign in
Add useNoFile helpers matching defineNoFile (#2126)
commit2d637aa4886f5fda138b99cdd299eba494cd875d authorMoritz Kiefer <moritz.kiefer@purelyfunctional.org> dateFri 12 Jul 2019, 17:06 (7 years ago) parentedaeac7
3 files changed+21−12
src/Development/IDE/Core/OfInterest.hs+1−1 src/Development/IDE/Core/Rules.hs+12−9 src/Development/IDE/Core/Shake.hs+8−2
src/Development/IDE/Core/OfInterest.hs+1−1
@@ -57,7 +57,7 @@ ofInterestRules = do
5757
5858
5959getFilesOfInterest :: Action (Set NormalizedFilePath)
60−getFilesOfInterest = use_ GetFilesOfInterest ""
60+getFilesOfInterest = useNoFile_ GetFilesOfInterest
6161
6262
6363
src/Development/IDE/Core/Rules.hs+12−9
@@ -15,7 +15,7 @@ module Development.IDE.Core.Rules(
1515 priorityTypeCheck,
1616 priorityGenerateCore,
1717 priorityFilesOfInterest,
18− runAction, useE, usesE,
18+ runAction, useE, useNoFileE, usesE,
1919 toIdeResult, defineNoFile,
2020 mainRule,
2121 getGhcCore,
@@ -68,6 +68,9 @@ toIdeResult = either (, Nothing) (([],) . Just)
6868useE :: IdeRule k v => k -> NormalizedFilePath -> MaybeT Action v
6969useE k = MaybeT . use k
7070
71+useNoFileE :: IdeRule k v => k -> MaybeT Action v
72+useNoFileE k = useE k ""
73+
7174usesE :: IdeRule k v => k -> [NormalizedFilePath] -> MaybeT Action [v]
7275usesE k = MaybeT . fmap sequence . uses k
7376
@@ -108,9 +111,9 @@ getAtPoint file pos = fmap join $ runMaybeT $ do
108111getDefinition :: NormalizedFilePath -> Position -> Action (Maybe Location)
109112getDefinition file pos = fmap join $ runMaybeT $ do
110113 spans <- useE GetSpanInfo file
111− pkgState <- useE GhcSession ""
114+ pkgState <- useNoFileE GhcSession
112115 opts <- lift getIdeOptions
113− let getHieFile x = use (GetHieFile x) ""
116+ let getHieFile x = useNoFile (GetHieFile x)
114117 lift $ AtPoint.gotoDefinition getHieFile opts pkgState spans pos
115118
116119-- | Parse the contents of a daml file.
@@ -135,7 +138,7 @@ getParsedModuleRule :: Rules ()
135138getParsedModuleRule =
136139 define $ \GetParsedModule file -> do
137140 (_, contents) <- getFileContents file
138− packageState <- use_ GhcSession ""
141+ packageState <- useNoFile_ GhcSession
139142 opt <- getIdeOptions
140143 liftIO $ Compile.parseModule opt packageState (fromNormalizedFilePath file) contents
141144
@@ -145,7 +148,7 @@ getLocatedImportsRule =
145148 pm <- use_ GetParsedModule file
146149 let ms = pm_mod_summary pm
147150 let imports = ms_textual_imps ms
148− env <- use_ GhcSession ""
151+ env <- useNoFile_ GhcSession
149152 let dflags = Compile.addRelativeImport pm $ hsc_dflags env
150153 opt <- getIdeOptions
151154 xs <- forM imports $ \(mbPkgName, modName) ->
@@ -167,7 +170,7 @@ rawDependencyInformation f = go (Set.singleton f) Map.empty Map.empty
167170 let modGraph' = Map.insert f (Left ModuleParseError) modGraph
168171 in go fs modGraph' pkgs
169172 Just imports -> do
170− packageState <- lift $ use_ GhcSession ""
173+ packageState <- lift $ useNoFile_ GhcSession
171174 modOrPkgImports <- forM imports $ \imp -> do
172175 case imp of
173176 (_modName, Just (PackageImport pkg)) -> do
@@ -233,7 +236,7 @@ getSpanInfoRule =
233236 define $ \GetSpanInfo file -> do
234237 tc <- use_ TypeCheck file
235238 imports <- use_ GetLocatedImports file
236− packageState <- use_ GhcSession ""
239+ packageState <- useNoFile_ GhcSession
237240 x <- liftIO $ Compile.getSrcSpanInfos packageState (fileImports imports) tc
238241 return ([], Just x)
239242
@@ -245,7 +248,7 @@ typeCheckRule =
245248 deps <- use_ GetDependencies file
246249 tms <- uses_ TypeCheck (transitiveModuleDeps deps)
247250 setPriority priorityTypeCheck
248− packageState <- use_ GhcSession ""
251+ packageState <- useNoFile_ GhcSession
249252 opt <- getIdeOptions
250253 liftIO $ Compile.typecheckModule opt packageState tms pm
251254
@@ -256,7 +259,7 @@ generateCoreRule =
256259 deps <- use_ GetDependencies file
257260 (tm:tms) <- uses_ TypeCheck (file:transitiveModuleDeps deps)
258261 setPriority priorityGenerateCore
259− packageState <- use_ GhcSession ""
262+ packageState <- useNoFile_ GhcSession
260263 liftIO $ Compile.compileModule packageState tms tm
261264
262265loadGhcSession :: Rules ()
src/Development/IDE/Core/Shake.hs+8−2
@@ -28,8 +28,8 @@ module Development.IDE.Core.Shake(
2828 shakeRun,
2929 shakeProfile,
3030 useStale,
31− use, uses,
32− use_, uses_,
31+ use, useNoFile, uses,
32+ use_, useNoFile_, uses_,
3333 define, defineEarlyCutoff,
3434 getDiagnostics, unsafeClearDiagnostics,
3535 IsIdeGlobal, addIdeGlobal, getIdeGlobalState, getIdeGlobalAction,
@@ -335,9 +335,15 @@ use :: IdeRule k v
335335 => k -> NormalizedFilePath -> Action (Maybe v)
336336use key file = head <$> uses key [file]
337337
338+useNoFile :: IdeRule k v => k -> Action (Maybe v)
339+useNoFile key = use key ""
340+
338341use_ :: IdeRule k v => k -> NormalizedFilePath -> Action v
339342use_ key file = head <$> uses_ key [file]
340343
344+useNoFile_ :: IdeRule k v => k -> Action v
345+useNoFile_ key = use_ key ""
346+
341347uses_ :: IdeRule k v => k -> [NormalizedFilePath] -> Action [v]
342348uses_ key files = do
343349 res <- uses key files