Subject: bug#33740: [PATCH] Customizable flymake mode-line indicator

From: João Távora <[email-masked]>
Date: Mon, 23 Sep 2019 10:25:32 +0100

On Sat, Sep 21, 2019 at 8:54 AM Lars Ingebrigtsen <[email-masked]> wrote:

>
> work...  And perhaps that's a more logical place, anyway?
>

Yup.

> The default value for the proposed defcustom would be
> >
> > "Flymake[%!e %!w %n]"
>
> `format-spec' doesn't allow two-character specs, but %E/%e would work...
>

Fine with me.

> > which mirrors the current behaviour. Now, supposing there are some
> > new annotations with arbitrary severities, we could use the non-! form
> > to include them and keep the default value working. Maybe "%>e"
> > could mean "put all annotations more severe than 3 here".  Or something
> > like that.
>
> Having a spec for "all the rest of the annotations" is possible, but
> seems a bit odd, interface wise...
>

It's really "all the annotations for which you selected a non-standard
severity", but they can be of many types. So the use case for this might
be smaller than you think.  Also, one reason I can think of for selecting
a non-standard severity for your custom diagnostic type might be precisely
to hide it from the mode-line.

And if 'format-spec' is ever enhanced to allow numeric stuff, then we can
fine tune %a into something like %<integer>a or something.

> We should also do something about whitespace.  I lean towards
> > somehow(TM) munching whitespace so that "Flymake[%!e %!w %n]"
> > becomes "Flymake[42 42<no whitespace here>]" if there are 0 notes.
> >
> > Hope this isn't becoming very complicated.
>
> Only slightly.  :-)

But is it complicated enough? :-)