haskell / haskell/haskell-mode
Module and Import Colors Seem Different (Might be LSP related)
- Dominant language
- Emacs Lisp
- Stars
- 1.4k
- Forks
- 354
- Avg merge
- 5d 10h
- Merged PRs (30d)
- 2
Description
So, in the photo below, I'm using the Catppuccin colour scheme. It used to be that only the words `module`, `where`, and `import` were purple, with the rest being white, but now the entire first few lines are purple.
Using `M-x describe face` I can tell that `Day01`, `Common.Runner`, `Common.Parser`, and `Common.Util` are all being rendered with the `haskell-constructor-face` which seems wrong, because these are module names and not constructors.
This might be an LSP issue, where the output of the LSP has changed (maybe it's outputting different different classifiers or something), I'm not sure. I'm currently using `haskell-language-server version: 2.12.0.0 (GHC: 9.10.3)` and my GHC version is the same. I'm also use LSP-Mode for Emacs: https://emacs-lsp.github.io/lsp-mode/
Here's the relevant directory structure:
https://gist.github.com/IQubic/ae3f1e0c3062ffd0a65035771dffdc90

Contributor guide
Research direction
Reproduce the report using the linked directory structure, Catppuccin, Haskell Language Server 2.12.0.0, and LSP-Mode. Use M-x describe face to inspect the highlighting of Day01, Common.Runner, Common.Parser, and Common.Util, then trace whether the classifications come from LSP-Mode or haskell-mode. Done means module names no longer receive haskell-constructor-face while the reported keyword colors remain correct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- emacs, emacs-lisp
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100