Subject: bug#50244: 28.0.50; Support project-wide diagnostics reports in flymake.el

From: João Távora <[email-masked]>
Date: Mon, 13 Sep 2021 19:03:19 +0100

João Távora <[email-masked]> writes:

> On Mon, Sep 13, 2021 at 1:08 AM Dmitry Gutov <[email-masked]> wrote:
>
>> Or maybe you will have unique "show diagnostics" buffers for every
>> project, to be invoked manually?
>
> This.  But it doesn't seem impossible to make a global diagnostics
> buffer for every project one has open.

The main changes to flymake.el and its documentation are now ready to
push.  There are some bugs regarding sorting in the diagnostics listing,
and the maybe order and length of columns needs rearranging, but these
can be sorted out later.

The only outstanding issue preventing me from landing this in main is
that I need to bump project.el's version so that the new
`project-buffers` API generic function becomes officially available to
the new bumped flymake.el version.  Dmitry is it OK for me to do so?

Here's the trivial patch to project.el.  I'm bumping the minor version
becasue a new backward-compatible feature was added.  I can bump
whatever you prefer if you think it's more in-line with the versioning
scheme you normally use.

diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index ba95ed094e..a6e231b9d6 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1,7 +1,7 @@
 ;;; project.el --- Operations on the current project  -*- lexical-binding: t; -*-
 
 ;; Copyright (C) 2015-2021 Free Software Foundation, Inc.
-;; Version: 0.6.1
+;; Version: 0.7.1
 ;; Package-Requires: ((emacs "26.1") (xref "1.0.2"))
 
 ;; This is a GNU ELPA :core package.  Avoid using functionality that

Another important aspect is that I haven't had a change to test this
with Eglot, which was one of the main motivators behind this change.
The reason is that I don't have easy access to a server which reports
diagnostics project wide (I thought clangd did, but I was mistaken).  So
the only client of the new functionality is the flymake-cc non-LSP
backend, for now.

Theodor, now would be a good time for you to step in with changes to
Eglot that use the new `flymake-list-only-diagnostics` experimental API
in flymake.el.  Likely, some adjustments will have to be made to both
packages.

Thanks,
João