Is your enhancement request related to a problem? Please describe.
Independent of the Haskell part of a Happy grammar (issue #689), there is also the grammar itself which would be nice to get some basic language server support for (like go to definition) to make it easier to navigate large grammars.
I would like to be able to go to definition for PragmaQName.
Describe the solution you'd like
I'd like some very basic language support for Happy's .y grammar files themselves integrated into HLS.
Describe alternatives you've considered
Another option would be to implement this as a completely separate language server and extension, since it is a separate language from Haskell, but that might make it more difficult to integrate with the inline Haskell parts (as well as inhibit discoverability). But maybe HLS's current architecture would make it difficult to add a non-haskell language, so it would be easier to make it separate anyways?
I think this is doable - we have the cabal plugin which works on non-Haskell files, so you should be able to have a similar architecture. Actually working out what things are might be tricky, though!
Is your enhancement request related to a problem? Please describe.
Independent of the Haskell part of a Happy grammar (issue #689), there is also the grammar itself which would be nice to get some basic language server support for (like go to definition) to make it easier to navigate large grammars.
In this code
I would like to be able to go to definition for
PragmaQName
.Describe the solution you'd like
I'd like some very basic language support for Happy's .y grammar files themselves integrated into HLS.
Describe alternatives you've considered
Another option would be to implement this as a completely separate language server and extension, since it is a separate language from Haskell, but that might make it more difficult to integrate with the inline Haskell parts (as well as inhibit discoverability). But maybe HLS's current architecture would make it difficult to add a non-haskell language, so it would be easier to make it separate anyways?
Additional context