@@ -55,15 +55,12 @@ assumptionNames e
55prove :: Context -> Bool -> Name -> Type -> Idris ()
55prove :: Context -> Bool -> Name -> Type -> Idris ()
56prove ctxt lit n ty
56prove ctxt lit n ty
57 = do let ps = initElaborator n ctxt ty
57 = do let ps = initElaborator n ctxt ty
58− i <- getIState
58+ ideslavePutSExp "start-proof-mode" n
59− case (idris_outputmode i) of
60− IdeSlave id -> liftIO $ putStrLn $ convSExp "start-proof-mode" n id
61 (tm, prf) <- ploop True ("-" ++ show n) [] (ES (ps, []) "" Nothing) Nothing
59 (tm, prf) <- ploop True ("-" ++ show n) [] (ES (ps, []) "" Nothing) Nothing
62 iLOG $ "Adding " ++ show tm
60 iLOG $ "Adding " ++ show tm
63 iputStrLn $ showProof lit n prf
61 iputStrLn $ showProof lit n prf
64 i <- getIState
62 i <- getIState
65− case (idris_outputmode i) of
63+ ideslavePutSExp "end-proof-mode" n
66− IdeSlave id -> liftIO $ putStrLn $ convSExp "end-proof-mode" n id
67 let proofs = proof_list i
64 let proofs = proof_list i
68 putIState (i { proof_list = (n, prf) : proofs })
65 putIState (i { proof_list = (n, prf) : proofs })
69 let tree = simpleCase False True CompileTime (FC "proof" 0) [([], P Ref n ty, tm)]
66 let tree = simpleCase False True CompileTime (FC "proof" 0) [([], P Ref n ty, tm)]
@@ -143,7 +140,7 @@ receiveInput e =
143 Just (REPLCompletions prefix) ->
140 Just (REPLCompletions prefix) ->
144 do (unused, compls) <- proverCompletion (assumptionNames e) (reverse prefix, "")
141 do (unused, compls) <- proverCompletion (assumptionNames e) (reverse prefix, "")
145 let good = SexpList [SymbolAtom "ok", toSExp (map replacement compls, reverse unused)]
142 let good = SexpList [SymbolAtom "ok", toSExp (map replacement compls, reverse unused)]
146− liftIO $ putStrLn $ convSExp "return" good id
143+ ideslavePutSExp "return" good
147 receiveInput e
144 receiveInput e
148 Just (Interpret cmd) -> return (Just cmd)
145 Just (Interpret cmd) -> return (Just cmd)
149 Nothing -> return Nothing
146 Nothing -> return Nothing
@@ -195,6 +192,7 @@ ploop d prompt prf e h
195 return (True, st, False, prf ++ [step]))
192 return (True, st, False, prf ++ [step]))
196 (\err -> do iFail (show err)
193 (\err -> do iFail (show err)
197 return (False, e, False, prf))
194 return (False, e, False, prf))
195+ ideslavePutSExp "write-proof-state" (prf', length prf')
198 if done then do (tm, _) <- elabStep st get_term
196 if done then do (tm, _) <- elabStep st get_term
199 return (tm, prf')
197 return (tm, prf')
200 else ploop d prompt prf' st h'
198 else ploop d prompt prf' st h'