@@ -14,21 +14,27 @@ import Debug.Trace
14bugaddr = "https://github.com/idris-lang/Idris-dev/issues"
14bugaddr = "https://github.com/idris-lang/Idris-dev/issues"
16delab :: IState -> Term -> PTerm
16delab :: IState -> Term -> PTerm
17−delab i tm = delab' i tm False
17+delab i tm = delab' i tm False False
19+delabMV :: IState -> Term -> PTerm
20+delabMV i tm = delab' i tm False True
19delabTy :: IState -> Name -> PTerm
22delabTy :: IState -> Name -> PTerm
20delabTy i n
23delabTy i n
21 = case lookupTy n (tt_ctxt i) of
24 = case lookupTy n (tt_ctxt i) of
22 (ty:_) -> case lookupCtxt n (idris_implicits i) of
25 (ty:_) -> case lookupCtxt n (idris_implicits i) of
23− (imps:_) -> delabTy' i imps ty False
26+ (imps:_) -> delabTy' i imps ty False False
24− _ -> delabTy' i [] ty False
27+ _ -> delabTy' i [] ty False False
26−delab' :: IState -> Term -> Bool -> PTerm
29+delab' :: IState -> Term -> Bool -> Bool -> PTerm
27−delab' i t f = delabTy' i [] t f
30+delab' i t f mvs = delabTy' i [] t f mvs
29delabTy' :: IState -> [PArg] -- ^ implicit arguments to type, if any
32delabTy' :: IState -> [PArg] -- ^ implicit arguments to type, if any
34+ -> Bool -- ^ use full names
35+ -> Bool -- ^ Don't treat metavariables specially
30− -> Term -> Bool -> PTerm
36+ -> PTerm
31−delabTy' ist imps tm fullname = de [] imps tm
37+delabTy' ist imps tm fullname mvs = de [] imps tm
33 un = fileFC "(val)"
39 un = fileFC "(val)"
@@ -84,11 +90,12 @@ delabTy' ist imps tm fullname = de [] imps tm
84 | n == eqTy = PEq un (de env [] l) (de env [] r)
90 | n == eqTy = PEq un (de env [] l) (de env [] r)
85 | n == UN "Ex_intro" = PDPair un (de env [] l) Placeholder
91 | n == UN "Ex_intro" = PDPair un (de env [] l) Placeholder
86 (de env [] r)
92 (de env [] r)
87− deFn env (P _ n _) args
93+ deFn env (P _ n _) args | not mvs
88 = case lookup n (idris_metavars ist) of
94 = case lookup n (idris_metavars ist) of
89 Just (Just _, mi, _) ->
95 Just (Just _, mi, _) ->
90 mkMVApp (dens n) (drop mi (map (de env []) args))
96 mkMVApp (dens n) (drop mi (map (de env []) args))
91 _ -> mkPApp (dens n) (map (de env []) args)
97 _ -> mkPApp (dens n) (map (de env []) args)
98+ | otherwise = mkPApp (dens n) (map (de env []) args)
92 deFn env f args = PApp un (de env [] f) (map pexp (map (de env []) args))
99 deFn env f args = PApp un (de env [] f) (map pexp (map (de env []) args))
94 mkMVApp n []
101 mkMVApp n []