jyp / dante

389 stars 52 forks source link

Flymake not working for me #97

Closed david-christiansen closed 4 years ago

david-christiansen commented 5 years ago

I'd like to replace my use of flycheck with flymake in dante-mode due to support for spans, rather than just positions.

It seems that Dante does have a flymake backend, but it only partially works for me. When I enable Dante in a Haskell buffer, enable flymake-mode, open the Flymake Diagnostics buffer, and then introduce an error, the error is properly highlighted. But nothing appears in the diagnostics buffer, and the following flashes briefly in the minibuffer: [Flymake] Obsolete report from backend dante-flymake with explanation nil

The string also appears in *Messages*, as one would expect.

david-christiansen commented 5 years ago

For more info:

> (emacs-version)
"GNU Emacs 26.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.23.2)\n of 2018-08-13"

I have the latest Dante from MELPA and Flymake 1.0.3 from ELPA.

jyp commented 5 years ago

I believe that flymake is half broken in its current state. I am keeping flymake support around in the hope that issues get fixed in the next version, but I am currently not supporting it.

david-christiansen commented 5 years ago

OK, thanks.

FWIW I have had good luck with Flymake when using eglot for Rust.

jyp commented 5 years ago

I cannot in fact reproduce the behaviour that you're seeing. The diagnostic buffer is filled with messages. The problems that I see with flymake:

  1. even though the interface allow to report problems in buffers others than the current one, flymake ignores this and all errors are marked in the current buffer.
  2. flymakes complain about 'obsolete reports'. When it calls the backend a 2nd time it wants the first call to stop everything it's doing, and not report anything. However this is not a convenient way to work with GHCi, which you simply cannot stop mid-check.
jyp commented 4 years ago

I have fixed several bugs. Marking this closed optimistically.