@@ -251,12 +251,14 @@ ideslave orig mods
251 Just x -> iPrintError $ "didn't load " ++ filename
251 Just x -> iPrintError $ "didn't load " ++ filename
252 ideslave orig [filename]
252 ideslave orig [filename]
253 Just (IdeSlave.TypeOf name) ->
253 Just (IdeSlave.TypeOf name) ->
254− case reverse $ splitOn "." name of
254+ case splitName name of
255− [] -> iPrintError ("Didn't understand name '" ++ name ++ "'")
255+ Left err -> iPrintError err
256− [n] -> process stdout "(ideslave)"
256+ Right n -> process stdout "(ideslave)"
257− (Check (PRef (FC "(ideslave)" 0 0) (sUN n)))
257+ (Check (PRef (FC "(ideslave)" 0 0) n))
258+ Just (IdeSlave.DocsFor name) ->
259+ case splitName name of
260+ Left err -> iPrintError err
258− (n:ns) -> process stdout "(ideslave)"
261+ Right n -> process stdout "(ideslave)" (DocStr n)
259− (Check (PRef (FC "(ideslave)" 0 0) (sNS (sUN n) ns)))
260 Just (IdeSlave.CaseSplit line name) ->
262 Just (IdeSlave.CaseSplit line name) ->
261 process stdout fn (CaseSplitAt False line (sUN name))
263 process stdout fn (CaseSplitAt False line (sUN name))
262 Just (IdeSlave.AddClause line name) ->
264 Just (IdeSlave.AddClause line name) ->
@@ -273,6 +275,11 @@ ideslave orig mods
273 (\e -> do iPrintError $ show e))
275 (\e -> do iPrintError $ show e))
274 (\e -> do iPrintError $ show e)
276 (\e -> do iPrintError $ show e)
275 ideslave orig mods
277 ideslave orig mods
278+ where splitName :: String -> Either String Name
279+ splitName s = case reverse $ splitOn "." s of
280+ [] -> Left ("Didn't understand name '" ++ s ++ "'")
281+ [n] -> Right $ sUN n
282+ (n:ns) -> Right $ sNS (sUN n) ns
277ideslaveProcess :: FilePath -> Command -> Idris ()
284ideslaveProcess :: FilePath -> Command -> Idris ()
278ideslaveProcess fn Help = process stdout fn Help
285ideslaveProcess fn Help = process stdout fn Help