Emacsでrusticとeglotを使っている時にflymakeのハイライト表示がバグるので無効化しました
前提
私はEmacsでRustを書く時に brotzeit/rustic: Rust development environment for Emacs を使っています.
そしてLanguage Server Protocolのフロントエンドに joaotavora/eglot: A client for Language Server Protocol servers を使っています.
rusticはeglotを自動設定して, eglotはflycheckではなくflymakeを使ってエラーの検出と表示を行います.
しかしそれはflycheckが使えないということではなく, flycheckはflymakeをバックエンドにしてエラーをきちんと表示してくれます.
問題
エラーが出てきた後それを修正すると, flycheckはきちんとエラーが修正されたことをエラーリストを消して教えてくれます.
しかしflymakeは認識と表示が不整合な状態になることが多々あり, コードのアンダーラインに赤い線がハイライトされたままになることが多く, コンパイルエラーが治ったのかわかりにくいです.
解決法
エラーのリストはflycheckがきちんと報告してくれているので, flymakeのハイライトを全部disableしてしまえば解決です.
コード
(with-eval-after-load 'flymake
(custom-set-variables
'(flymake-error-bitmap nil)
'(flymake-note-bitmap nil)
'(flymake-warning-bitmap nil)
)
(set-face-underline 'flymake-error nil)
(set-face-underline 'flymake-note nil)
(set-face-underline 'flymake-warning nil)
)
flymake-errline
などはEmacs 26で廃止されたのでflymake-error
を設定しましょう.