@@ -20,20 +20,20 @@ import qualified Data.Set as S
20import qualified Data.Text as T (pack, isPrefixOf)
20import qualified Data.Text as T (pack, isPrefixOf)
22import Idris.AbsSyntax (addUsingConstraints, addImpl, getContext, getIState, putIState, implicit)
22import Idris.AbsSyntax (addUsingConstraints, addImpl, getContext, getIState, putIState, implicit)
23−import Idris.AbsSyntaxTree (class_instances, ClassInfo, defaultSyntax, Idris,
23+import Idris.AbsSyntaxTree (class_instances, ClassInfo, defaultSyntax, Idris,
24− IState (idris_classes, idris_docstrings, tt_ctxt),
24+ IState (idris_classes, idris_docstrings, tt_ctxt, idris_outputmode),
25− implicitAllowed, prettyDocumentedIst, prettyIst, PTerm, toplevel)
25+ implicitAllowed, OutputMode(..), prettyDocumentedIst, prettyIst, PTerm, toplevel)
26import Idris.Core.Evaluate (Context (definitions), Def (Function, TyDecl, CaseOp), normaliseC)
26import Idris.Core.Evaluate (Context (definitions), Def (Function, TyDecl, CaseOp), normaliseC)
27import Idris.Core.TT hiding (score)
27import Idris.Core.TT hiding (score)
28import Idris.Core.Unify (match_unify)
28import Idris.Core.Unify (match_unify)
29import Idris.Delaborate (delabTy)
29import Idris.Delaborate (delabTy)
30import Idris.Docstrings (noDocs, overview)
30import Idris.Docstrings (noDocs, overview)
31import Idris.ElabDecls (elabType')
31import Idris.ElabDecls (elabType')
32−import Idris.Output (ihRenderResult)
32+import Idris.Output (ihRenderOutput, ihPrintResult, ihRenderResult)
34import System.IO (Handle)
34import System.IO (Handle)
36−import Util.Pretty (text, char, (<>), Doc)
36+import Util.Pretty (text, char, vsep, (<>), Doc)
38searchByType :: Handle -> PTerm -> Idris ()
38searchByType :: Handle -> PTerm -> Idris ()
39searchByType h pterm = do
39searchByType h pterm = do
@@ -49,12 +49,15 @@ searchByType h pterm = do
49 [ let docInfo = (n, delabTy i n, fmap (overview . fst) (lookupCtxtExact n (idris_docstrings i))) in
49 [ let docInfo = (n, delabTy i n, fmap (overview . fst) (lookupCtxtExact n (idris_docstrings i))) in
50 displayScore score <> char ' ' <> prettyDocumentedIst i docInfo
50 displayScore score <> char ' ' <> prettyDocumentedIst i docInfo
51 | (n, score) <- names']
51 | (n, score) <- names']
52+ case idris_outputmode i of
53+ RawOutput -> do mapM_ (ihRenderOutput h) docs
52− mapM_ (ihRenderResult h) docs
55+ IdeSlave n -> ihRenderResult h (vsep docs)
54 numLimit = 50
57 numLimit = 50
55 syn = defaultSyntax { implicitAllowed = True } -- syntax
58 syn = defaultSyntax { implicitAllowed = True } -- syntax
56 n = sMN 0 "searchType" -- name
59 n = sMN 0 "searchType" -- name
58-- | Conduct a type-directed search using a given match predicate
61-- | Conduct a type-directed search using a given match predicate
59searchUsing :: (IState -> Type -> [(Name, Type)] -> [(Name, a)])
62searchUsing :: (IState -> Type -> [(Name, Type)] -> [(Name, a)])
60 -> IState -> Type -> [(Name, a)]
63 -> IState -> Type -> [(Name, a)]