@@ -20,20 +20,20 @@ import qualified Data.Set as S
2020import qualified Data.Text as T (pack, isPrefixOf)
2121
2222import Idris.AbsSyntax (addUsingConstraints, addImpl, getContext, getIState, putIState, implicit)
23−import Idris.AbsSyntaxTree (class_instances, ClassInfo, defaultSyntax, Idris,
24− IState (idris_classes, idris_docstrings, tt_ctxt),
25− implicitAllowed, prettyDocumentedIst, prettyIst, PTerm, toplevel)
23+import Idris.AbsSyntaxTree (class_instances, ClassInfo, defaultSyntax, Idris,
24+ IState (idris_classes, idris_docstrings, tt_ctxt, idris_outputmode),
25+ implicitAllowed, OutputMode(..), prettyDocumentedIst, prettyIst, PTerm, toplevel)
2626import Idris.Core.Evaluate (Context (definitions), Def (Function, TyDecl, CaseOp), normaliseC)
2727import Idris.Core.TT hiding (score)
2828import Idris.Core.Unify (match_unify)
2929import Idris.Delaborate (delabTy)
3030import Idris.Docstrings (noDocs, overview)
3131import Idris.ElabDecls (elabType')
32−import Idris.Output (ihRenderResult)
32+import Idris.Output (ihRenderOutput, ihPrintResult, ihRenderResult)
3333
3434import System.IO (Handle)
3535
36−import Util.Pretty (text, char, (<>), Doc)
36+import Util.Pretty (text, char, vsep, (<>), Doc)
3737
3838searchByType :: Handle -> PTerm -> Idris ()
3939searchByType h pterm = do
@@ -49,12 +49,15 @@ searchByType h pterm = do
4949 [ let docInfo = (n, delabTy i n, fmap (overview . fst) (lookupCtxtExact n (idris_docstrings i))) in
5050 displayScore score <> char ' ' <> prettyDocumentedIst i docInfo
5151 | (n, score) <- names']
52− mapM_ (ihRenderResult h) docs
53− where
52+ case idris_outputmode i of
53+ RawOutput -> do mapM_ (ihRenderOutput h) docs
54+ ihPrintResult h ""
55+ IdeSlave n -> ihRenderResult h (vsep docs)
56+ where
5457 numLimit = 50
5558 syn = defaultSyntax { implicitAllowed = True } -- syntax
5659 n = sMN 0 "searchType" -- name
57−
60+
5861-- | Conduct a type-directed search using a given match predicate
5962searchUsing :: (IState -> Type -> [(Name, Type)] -> [(Name, a)])
6063 -> IState -> Type -> [(Name, a)]