-
-
Notifications
You must be signed in to change notification settings - Fork 407
Description
Your environment
Which OS do you use? macOS Sonoma14.2.1(23C71)
Which version of GHC do you use and how did you install it? GHC 9.2.8 via GHCup
How is your project built (alternative: link to the project)? By cabal-install. This can happen in any project, but see linear-extra.
Which LSP client (editor/plugin) do you use? VSCode
Which version of HLS do you use and how did you install it? 2.6.0.0, via ghcup-vanilla-0.0.8.
Have you configured HLS in any way (especially: a hie.yaml file)? No. Auto Detection.
Steps to reproduce
Adds a standalone deriving clause with explicit deriving strategy with Semantic Tokens enabled.
{
"haskell.plugin.semanticTokens.globalOn": true,
"editor.semanticHighlighting.enabled": true
}Example. Consider the following:
type LocAddr :: Location -> Type
newtype LocAddr s = LocAddr {getLocAddr_ :: LocAddr_}
deriving (P.Eq, P.Ord)
deriving newtype (Hashable)In above, newtype is treated as keyword correctly:
Next, make Hashable instance deriving standalone:
deriving newtype instance Hashable (LocAddr s)Then newtype is rendered differently!
Changing newtype to anyclass gives the same effect. If we change it to via LocAddr_, via is rendered correctly.
Expected behaviour
Both newtype and anyclass must be treated as keyword.
Actual behaviour
Treated as parameter, as above. Here is the token inspection result from VSCode:
Debug information
Here is the trace log of VSCode:


