Subject: flymake-show-project-diagnotics not updating (eglot for Java with jdtls)

From: David Ventimiglia <[email-masked]>
Date: Sun, 4 Dec 2022 12:38:55 -0800

Hello,

When I run flymake-show-project-diagnostics some warnings are listed for my
Java project. As I jump to those locations and fix the warnings, the
diagnostics buffer doesn't update. One problem I have is that I don't even
know where to begin to look in order to troubleshoot this. It could be a
problem with eglot, jdtls, flymake, or some combination thereof. I started
a GitHub discussion for the eglot project here:

https://github.com/joaotavora/eglot/discussions/1131#discussion-4626934

In summary, for Java if I add say an unused import to a file, jdtls
publishes a diagnostic event for this and the flymake buffer shows a
warning for the unused import.  If I correct the issue by deleting the
unused import, jdtls again publishes a correct diagnostic report for the
file, but the flymake diagnostics buffer doesn't update.

After some correspondence with its maintainer, I believe we ruled out the
jdtls server, since the events buffer seems to show an accurate diagnostics
report being delivered from the server to Emacs/eglot/flymake.  We're
wondering if perhaps the problem lies therefore in eglot and/or flymake.  I
should also say that I'm using the "stock" eglot and flymake built into
Emacs, as I'm using emacs-snapshot.  Here's my Emacs version info:

GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33,
cairo version 1.16.0) of 2022-12-03

I grant that this may not be a bug and could be a mis-configuration, but I
am trying to track that down.  Thanks!

Best,
David Ventimiglia