haskell / haskell/haskell-language-server

Add Haddock hyperlinks to hover for type holes

Abierto
#390 5 comentarios 0 reacciones 0 asignados Ver en GitHub
component: ghcide type: enhancement
Lenguaje dominante
Haskell
Estrellas
3k
Forks
455
Merge medio
2 d 19 h
PR fusionados (30 d)
11

Descripción

I would find it very helpful if the hover information could include links to Haddock documentation (if documentation is available).

A common situation when working with an unfamiliar library is needing to pass an argument to a function say `foo`, and a typical workflow would be to start writing:

```haskell
where
x = foo a b _notsure ( d e )
```

then hover over `_notsure` to find its expected type. Ideally then I'd be able to see the type needed, and be able to click on it for the documentation. For instance:

![hover_hyperlink](https://user-images.githubusercontent.com/1297748/92642531-9e42de80-f2e0-11ea-88c3-8b44c02f1b84.png)

I'd like to be able to open up this documentation:

![gdk_windowhints](https://user-images.githubusercontent.com/1297748/92642659-d518f480-f2e0-11ea-8134-1be6f9b01046.png)

Having taken a quick look at how hover information is created, I don't see how to simultaneously include hyperlinks and have syntax highlighting, as the current hover information is typeset by encoding it in a Haskell markdown codeblock.

Currently, hover information is available for set functions, e.g.:

![hover_doc](https://user-images.githubusercontent.com/1297748/92643179-9fc0d680-f2e1-11ea-888d-6d867a49e3be.png)

Something similar could be done in the previous situation, including a link to `WindowHints`, but that still seems a bit limited to me as the type might be something more complex and I might want to click on some component of it. It's especially annoying as if I click on the documentation for `windowSetGeometryHints` in the previous example, I can't then click on `Geometry` or `WindowHints` to get to that part of the documentation because of [`ghcide` !61](https://github.com/haskell/ghcide/issues/61), as those are part of the `gi-gdk` package (whereas `windowSetGeometryHints` comes from the `gi-gtk` package).

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.