Subject: bug#50989: 28.0.60; nobreak-char-display in Eldoc buffers

From: Eli Zaretskii <[email-masked]>
Date: Sun, 03 Oct 2021 14:07:41 +0300

> From: João Távora <[email-masked]>
> Date: Sun, 3 Oct 2021 11:34:32 +0100
> Cc: [email-masked]
> 
> On Sun, Oct 3, 2021 at 11:03 AM Augusto Stoffel <[email-masked]> wrote:
> >
> > Using the pylsp language server via Eglot, I sometimes get docstrings
> > with lots of non-breaking spaces in them.  Those end up being
> > highlighted with the `nobreak-space' face in the Eldoc buffer, which is
> > very distracting.
> >
> > I'm not sure this should be addressed in Eglot or in Eldoc.  But the
> > following advice fixes things for me.
> >
> >     (advice-add 'eldoc--format-doc-buffer :after
> >                 (lambda (&rest _) "Don't display non-breaking spaces."
> >                   (with-current-buffer eldoc--doc-buffer
> >                     (setq-local nobreak-char-display nil))))
> 
> I'd say put this in ElDoc directly. If someone then objects, we could make a
> eldoc-no-break-char-display variable.  Can you make a patch?

IMNSHO, this doesn't make much sense.  That face exists for a reason:
to signal to the users that some innocently-looking characters aren't
what they look like.  What you suggest above is to sweep the problem
under the carpet.  I think this is not TRT.

Why does the server return these NBSP characters?  Would it make sense
to automatically convert them to spaces on input?