doomemacs / doomemacs/core

Bad interaction between `syntax` and `(lsp +eglot)` modules in haskell projects

Open
#7,067 1 comment 0 reactions 0 assignees View on GitHub
is:bug needs-triage
Dominant language
Emacs Lisp
Stars
22.7k
Forks
3.1k
Avg merge
10h 46m
Merged PRs (30d)
4

Description

### I confirm that...

- [X] I have searched the [issue tracker](https://github.com/doomemacs/doomemacs/issues), [documentation](https://docs.doomemacs.org), [FAQ](https://docs.doomemacs.org/-/faq), [Discourse](https://discourse.doomemacs.org), and [Google](https://google.com), in case this issue has already been reported/resolved.

- [X] I have read "[How to Debug Issues](https://doomemacs.org/d/how2debug)", and will use it to provide as much information about this issue as possible.

- [X] The issue can be reproduced on the **latest** available commit of Doom.

- [X] The issue can be reproduced on a stable release of Emacs, such as 27 or 28. *(Doom does not support development builds like 29+ or any version ending in .50 or .9x)*

### Expected behavior

When I enable the doom emacs `syntax` and `(lsp +eglot)` modules I expect flycheck to not report any errors in compiling haskell projects.

### Current behavior

When I enable the doom emacs `syntax` and `(lsp +eglot)` modules the `haskell-ghc` flycheck checker reports errors about unrecognized modules in multi component cabal projects even though it compiles just fine.
![image](https://user-images.githubusercontent.com/3789764/216788061-c6440059-8084-42df-848e-8fd4a132faf3.png)

After digging a bit this seems to be a bad interaction between the flycheck configuration enabled in the `syntax` module and eglot enabled in the `lsp` module.

Work arounds:
- Disable the `haskell-ghc` flycheck checker. This fixes the issue, but disables flycheck for haskell completely which means no errors are reported.

- Disable the `syntax` module. A slightly better workaround. You will get correct linting warnings and errors in your project, but no dialog boxes showing the errors on hover are displayed.

### Steps to reproduce

1. Install `haskell-language-server` version `1.9.0.0` installed
2. Open Emacs
3. Enable `syntax`, `haskell` and `(lsp +eglot)` modules
4. run `git clone https://github.com/allmeta/dodge-god`
5. run `git checkout f970e06e83a28ee9d662d61513129df86729d84b`
6. open `dodge-god/src/Main.hs` in Emacs
7. observe the bug described above

### System Information

https://bpa.st/YHCN2/raw

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.