Subject: Re: bug#79279: 28.2; Combining characters cause formatting problems when showing CAP candidates

From: Dmitry Safronov <[email-masked]>
Date: Thu, 21 Aug 2025 22:43:26 +0200

I experimented a bit using different fonts and came to the conclusion that the
formatting issue appears only if a font does not support proper
rendering of combined
characters. Ironically, the JuliaMono font does support it and it
causes the formatting problem
described in the original post.

> I think it's responsibility of the caller to add a space
> when it's known that the completion candidate might contain
> a combining character.

So well, nevermind, I will open an issue at
<https://github.com/JuliaEditorSupport/julia-emacs>.

On Thu, 21 Aug 2025 at 20:25, Juri Linkov <[email-masked]> wrote:
>
> >> >> The text was indeed produced by the julia-mode package, namely by the
> >> >> `julia--latexsub-capf-list` function for creating a CAPF completion
> >> >> table for that mode.
> >> >> However, the list of completion candidates (based on that completion
> >> >> table) in the
> >> >> "*Completions*" buffer was produced by the Emacs core (`display-completion-list`
> >> >> function defined in `minibuffer.el`).
> >> >
> >> > But display-completion-list just shows the strings it gets as its
> >> > argument.  AFAIU, theses strings already include both the completion
> >> > candidate and its visualization (which causes the problem).  If that
> >> > is correct, then the code which generates those strings is the one we
> >> > need to fix.  Can you (or someone else of the people I CC) point to
> >> > the code which generates those strings?
> >>
> >> This was already fixed in julia-mode long ago.
> >> The current version adds the preceding space character:
> >>
> >>   :annotation-function (lambda (s)
> >>                          (concat " " (gethash s julia-mode-latexsubs)))
> >>
> >> So there is no such problem anymore:
> >
> > So you think we don't need to solve this in minibuffer.el for all the
> > users of this?
>
> I think it's responsibility of the caller to add a space
> when it's known that the completion candidate might contain
> a combining character.