@@ -27,6 +27,8 @@ import Server.Model.Monad (WithAgdaLibM)
2727
2828usingSrcAsCurrent :: Imp. Source -> WithAgdaLibM a -> WithAgdaLibM a
2929usingSrcAsCurrent src x = do
30+ TCM. liftTCM TCM. resetState
31+
3032 TCM. liftTCM $ Imp. setOptionsFromSourcePragmas True src
3133
3234 TCM. setCurrentRange (C. modPragmas . Imp. srcModule $ src) $
@@ -35,118 +37,30 @@ usingSrcAsCurrent src x = do
3537
3638#if MIN_VERSION_Agda(2,8,0)
3739 TCM. modifyTCLens TCM. stModuleToSourceId $ Map. insert (Imp. srcModuleName src) (Imp. srcOrigin src)
38- TCM. localTC (\ e -> e {TCM. envCurrentPath = Just (TCM. srcFileId $ Imp. srcOrigin src)}) $ do
40+ TCM. localTC (\ e -> e {TCM. envCurrentPath = Just (TCM. srcFileId $ Imp. srcOrigin src)}) x
3941#else
4042 TCM. modifyTCLens TCM. stModuleToSource $ Map. insert (Imp. srcModuleName src) (srcFilePath $ Imp. srcOrigin src)
41- TCM. localTC (\ e -> e {TCM. envCurrentPath = Just (srcFilePath $ Imp. srcOrigin src)}) $ do
43+ TCM. localTC (\ e -> e {TCM. envCurrentPath = Just (srcFilePath $ Imp. srcOrigin src)}) x
4244#endif
43- x
4445
4546withAstFor :: Imp. Source -> (TopLevelInfo -> WithAgdaLibM a ) -> WithAgdaLibM a
46- #if MIN_VERSION_Agda(2,8,0)
4747withAstFor src f = usingSrcAsCurrent src $ do
48- let topLevel =
49- TopLevel
50- (Imp. srcOrigin src)
51- (Imp. srcModuleName src)
52- (C. modDecls $ Imp. srcModule src)
53- ast <- TCM. liftTCM $ toAbstract topLevel
54- f ast
48+ #if MIN_VERSION_Agda(2,8,0)
49+ let srcFile = Imp. srcOrigin src
5550#else
56- withAstFor src f = usingSrcAsCurrent src $ do
51+ let srcFile = srcFilePath $ Imp. srcOrigin src
52+ #endif
5753 let topLevel =
5854 TopLevel
59- (srcFilePath $ Imp. srcOrigin src)
55+ srcFile
6056 (Imp. srcModuleName src)
6157 (C. modDecls $ Imp. srcModule src)
6258 ast <- TCM. liftTCM $ toAbstract topLevel
6359 f ast
64- #endif
6560
6661indexFile ::
6762 Imp. Source ->
6863 WithAgdaLibM AgdaFile
6964indexFile src = withAstFor src $ \ ast -> execIndexerM $ do
7065 indexAst ast
7166 postprocess
72-
73- -- let options = defaultOptions
74-
75- -- TCM.liftTCM TCM.resetState
76-
77- -- TCM.liftTCM $ TCM.setCommandLineOptions' rootPath options
78- -- TCM.liftTCM $ Imp.setOptionsFromSourcePragmas True src
79- -- loadPrims <- optLoadPrimitives <$> TCM.pragmaOptions
80-
81- -- when loadPrims $ do
82- -- libdirPrim <- liftIO getPrimitiveLibDir
83-
84- -- -- Turn off import-chasing messages.
85- -- -- We have to modify the persistent verbosity setting, since
86- -- -- getInterface resets the current verbosity settings to the persistent ones.
87-
88- -- bracket_ (TCM.getsTC TCM.getPersistentVerbosity) TCM.putPersistentVerbosity $ do
89- -- TCM.modifyPersistentVerbosity
90- -- (Strict.Just . Trie.insert [] 0 . Strict.fromMaybe Trie.empty)
91- -- -- set root verbosity to 0
92-
93- -- -- We don't want to generate highlighting information for Agda.Primitive.
94- -- TCM.liftTCM $
95- -- TCM.withHighlightingLevel TCM.None $
96- -- forM_ (Set.map (libdirPrim </>) TCM.primitiveModules) $ \f -> do
97- -- primSource <- Imp.parseSource (SourceFile $ mkAbsolute f)
98- -- Imp.checkModuleName' (Imp.srcModuleName primSource) (Imp.srcOrigin primSource)
99- -- void $ Imp.getNonMainInterface (Imp.srcModuleName primSource) (Just primSource)
100-
101- -- TCM.liftTCM $ Imp.checkModuleName' (Imp.srcModuleName src) (Imp.srcOrigin src)
102-
103- -- addImportCycleCheck (Imp.srcModuleName src) $
104- -- TCM.localTC (\e -> e {TCM.envCurrentPath = Just $ TCM.srcFileId srcFile}) $ do
105- -- let topLevel =
106- -- C.TopLevel
107- -- srcFile
108- -- (Imp.srcModuleName src)
109- -- (C.modDecls $ Imp.srcModule src)
110- -- ast <- TCM.liftTCM $ C.toAbstract topLevel
111-
112- -- deps <- TCM.useTC TCM.stImportedModulesTransitive
113- -- moduleToSourceId <- TCM.useTC TCM.stModuleToSourceId
114- -- forM_ deps $ maybeUpdateCacheForDepFile moduleToSourceId
115-
116- -- cache <- getCache
117- -- let entries = LSP.fromNormalizedUri . fst <$> Cache.getAllEntries cache
118- -- alwaysReportSDoc "lsp.cache" 20 $ return (text "cache entries:" <+> pretty entries)
119-
120- -- let ds = C.topLevelDecls ast
121- -- let scope = C.topLevelScope ast
122-
123- -- TCM.liftTCM TCM.activateLoadedFileCache
124-
125- -- TCM.liftTCM TCM.cachingStarts
126- -- opts <- TCM.liftTCM $ TCM.useTC TCM.stPragmaOptions
127- -- me <- TCM.liftTCM TCM.readFromCachedLog
128- -- case me of
129- -- Just (TCM.Pragmas opts', _)
130- -- | opts == opts' ->
131- -- return ()
132- -- _ -> TCM.liftTCM TCM.cleanCachedLog
133- -- TCM.liftTCM $ TCM.writeToCurrentLog $ TCM.Pragmas opts
134-
135- -- TCM.liftTCM $
136- -- mapM_ TC.checkDeclCached ds `TCM.finally_` TCM.cacheCurrentLog
137-
138- -- TCM.liftTCM TCM.unfreezeMetas
139-
140- -- TCM.liftTCM $ TCM.setScope scope
141-
142- -- TCM.liftTCM $
143- -- TCM.stCurrentModule
144- -- `TCM.setTCLens'` Just
145- -- ( C.topLevelModuleName ast,
146- -- Imp.srcModuleName src
147- -- )
148-
149- -- file <- Index.abstractToIndex $ C.topLevelDecls ast
150-
151- -- -- return (file, moduleToSourceId, deps)
152- -- return file
0 commit comments