@@ -19,6 +19,7 @@ import Agda.Syntax.Parser (moduleParser, parseFile)
1919import Agda.Syntax.Position (mkRangeFile )
2020import qualified Agda.TypeChecking.Monad as TCM
2121import Agda.Utils.FileName (AbsolutePath )
22+ import Agda.Utils.Maybe (maybeToList )
2223import Control.Monad.IO.Class (MonadIO )
2324import Control.Monad.Trans (lift )
2425import qualified Data.Strict as Strict
@@ -27,6 +28,8 @@ import qualified Language.LSP.Protocol.Types as LSP
2728import Language.LSP.Protocol.Types.Uri.More (uriToPossiblyInvalidAbsolutePath )
2829import qualified Language.LSP.Server as LSP
2930import qualified Language.LSP.VFS as VFS
31+ import Server.Model.AgdaLib (agdaLibToFile )
32+ import Server.Model.Monad (MonadAgdaLib (askAgdaLib ))
3033
3134data VSourceFile = VSourceFile
3235 { vSrcFileSrcFile :: SourceFile ,
@@ -67,10 +70,10 @@ vSrcFromUri normUri file = do
6770#endif
6871
6972-- | Based on @parseSource@
70- parseVSource :: (TCM. MonadTCM m ) => VSourceFile -> m Imp. Source
71- parseVSource vSrcFile = TCM. liftTCM $ do
73+ parseVSource :: (TCM. MonadTCM m , TCM. MonadTrace m , MonadAgdaLib m ) => VSourceFile -> m Imp. Source
74+ parseVSource vSrcFile = do
7275 let sourceFile = vSrcFileSrcFile vSrcFile
73- f <- vSrcFilePath vSrcFile
76+ f <- TCM. liftTCM $ vSrcFilePath vSrcFile
7477
7578 let rf0 = mkRangeFile f Nothing
7679 TCM. setCurrentRange (Imp. beginningOfFile rf0) $ do
@@ -79,15 +82,16 @@ parseVSource vSrcFile = TCM.liftTCM $ do
7982 let txt = Text. unpack sourceStrict
8083
8184 parsedModName0 <-
82- Imp. moduleName f . fst . fst =<< do
83- Imp. runPMDropWarnings $ parseFile moduleParser rf0 txt
85+ TCM. liftTCM $
86+ Imp. moduleName f . fst . fst =<< do
87+ Imp. runPMDropWarnings $ parseFile moduleParser rf0 txt
8488
8589 let rf = mkRangeFile f $ Just parsedModName0
86- ((parsedMod, attrs), fileType) <- Imp. runPM $ parseFile moduleParser rf txt
87- parsedModName <- Imp. moduleName f parsedMod
90+ ((parsedMod, attrs), fileType) <- TCM. liftTCM $ Imp. runPM $ parseFile moduleParser rf txt
91+ parsedModName <- TCM. liftTCM $ Imp. moduleName f parsedMod
8892
89- -- TODO: handle libs properly
90- let libs = []
93+ agdaLib <- askAgdaLib
94+ let libs = maybeToList $ agdaLibToFile (vSrcUri vSrcFile) agdaLib
9195
9296 return
9397 Imp. Source
0 commit comments