Skip to content

Commit 12d56df

Browse files
committed
improve hover rendering
1 parent dc807c4 commit 12d56df

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

ghcide/src/Development/IDE/Spans/AtPoint.hs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -271,30 +271,29 @@ atPoint IdeOptions{} (HAR _ (hf :: HieASTs a) _rf _ kind) (DKMap dm km) pos = li
271271
renderEvidenceTree (T.Node (EvidenceInfo{evidenceDetails=Just (EvLetBind _,_,_)}) [x])
272272
= renderEvidenceTree x
273273
renderEvidenceTree (T.Node (EvidenceInfo{evidenceDetails=Just (EvLetBind _,_,_), ..}) xs)
274-
= hang (text "- Evidence of constraint `" O.<> expandType evidenceType O.<> "`") 2 $
275-
vcat $ text "depending on:" : map renderEvidenceTree' xs
276-
renderEvidenceTree x = renderEvidenceTree' x
274+
= hang (text "Evidence of constraint `" O.<> expandType evidenceType O.<> "`") 2 $
275+
vcat $ text "constructed using:" : map renderEvidenceTree' xs
276+
renderEvidenceTree (T.Node (EvidenceInfo{..}) _)
277+
= hang (text "Evidence of constraint `" O.<> expandType evidenceType O.<> "`") 2 $
278+
vcat $ printDets evidenceSpan evidenceDetails : map (text . T.unpack) (definedAt evidenceVar)
277279

278280
-- renderEvidenceTree' skips let bound evidence variables and prints the children directly
279281
renderEvidenceTree' (T.Node (EvidenceInfo{evidenceDetails=Just (EvLetBind _,_,_)}) xs)
280282
= vcat (map renderEvidenceTree' xs)
281-
renderEvidenceTree' (T.Node (EvidenceInfo{..}) xs)
282-
= hang (text "- Evidence of constraint `" O.<> expandType evidenceType O.<> "`") 2 $
283-
vcat $ map (text . T.unpack) (definedAt evidenceVar)
284-
++ [printDets evidenceSpan evidenceDetails (null xs)]
285-
++ map renderEvidenceTree' xs
286-
287-
printDets :: RealSrcSpan -> Maybe (EvVarSource, Scope, Maybe Span) -> Bool -> SDoc
288-
printDets _ Nothing True = text ""
289-
printDets _ Nothing False = text "constructed using:"
290-
printDets ospn (Just (src,_,mspn)) _ = pprSrc
283+
renderEvidenceTree' (T.Node (EvidenceInfo{..}) _)
284+
= hang (text "- `" O.<> expandType evidenceType O.<> "`") 2 $
285+
vcat $ printDets evidenceSpan evidenceDetails : map (text . T.unpack) (definedAt evidenceVar)
286+
287+
printDets :: RealSrcSpan -> Maybe (EvVarSource, Scope, Maybe Span) -> SDoc
288+
printDets _ Nothing = text "using an external instance"
289+
printDets ospn (Just (src,_,mspn)) = pprSrc
291290
$$ text "at" <+> ppr spn
292291
where
293292
-- Use the bind span if we have one, else use the occurence span
294293
spn = fromMaybe ospn mspn
295294
pprSrc = case src of
296295
-- Users don't know what HsWrappers are
297-
EvWrapperBind -> "bound by type signature or pattern"
296+
EvWrapperBind -> "bound by a context"
298297
_ -> ppr src
299298
#endif
300299

0 commit comments

Comments
 (0)