Open
Description
Is your enhancement request related to a problem? Please describe.
Some GHC error messages and warnings can be confusing.
Describe the solution you'd like
The Haskell Foundation has started a project to assign unique numbers to each error or warning emitted by GHC, and a community-driven web site that associates documentation with each code. The codes will be part of GHC 9.6. I'd like to see HLS include links to this documentation from messages in some convenient way.
Describe alternatives you've considered
None.
Additional context
All codes emitted by GHC match GHC-(0-9){5}
. The message index will have addresses of the form https://errors.haskell.org/messages/GHC-NNNNN
. The index is maintained at https://github.com/haskellfoundation/error-message-index/.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
In Progress
Milestone
Relationships
Development
No branches or pull requests
Activity
michaelpj commentedon Oct 5, 2022
Need to come back to this when we've got basic 9.6 support.
michaelpj commentedon Oct 5, 2022
We can actually put this in the
Diagnostic
: it has acode
field and acodeDescription
field that's a URI, so perfect.michaelpj commentedon May 1, 2024
I think we can do this already without structured diagnostics: we can just regex it out of the diagnostic message easily enough.
michaelpj commentedon Jun 6, 2024
I have some code for this, but annoyingly we don't actually render the error codes already! So it's confusing what to do - do we render them (thus making users see them in the messages), or not (and not be able to pull them out)... 🤔
michaelpj commentedon Jun 6, 2024
Hacky code here: https://github.com/haskell/haskell-language-server/tree/mpj/error-index
michaelpj commentedon Jun 6, 2024
Hmmm. I feel like I am going in the wrong direction here by smuggling additional information into messages only to parse it out later. Perhaps the right thing to do is just to implement the structured diagnostics stuff 🤔
dylan-thinnes commentedon Jun 9, 2024
Working on this for ZuriHac