Skip to content

Add Hover information for resolved type classes #4290

Open
@alanz

Description

@alanz

The GHC AST makes liberal use of type families for Trees that Grow extension points.

When working on code that matches on a constructor, the hover information gives the type, which is as-written for the constructor, with a general parameter for the TTG extension point.

But in GHC the extension point parameter is either known precisely (e.g. GhcPs) or at least limited (GhcPass p).

Regardless, there are type family instances in the project for the given type family. These should be displayed in addition to the current hover information.

Screenshot from 2024-06-08 15-25-57

In the image, it shows hover for XExplicitTuple GhcPs. We have

type instance XExplicitTupleTy GhcPs = [AddEpAnn]

so it should in this case show [AddEpann] too.

If it had an unconstrained type parameter in the hover context, it should show all the possibilities, so given

type instance XExplicitTupleTy GhcPs = [AddEpAnn]
type instance XExplicitTupleTy GhcRn = NoExtField
type instance XExplicitTupleTy GhcTc = [Kind]

It should represent this somehow, perhaps just showing the instances in the hover.

For bonus points, have "go to type definition" go to the appropriate definition (or list of definitions)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions