Subject: Re: bug#67393: 29.1; Slow to open file if autosave exists

From: Eli Zaretskii <[email-masked]>
Date: Wed, 27 Dec 2023 19:33:31 +0200

> From: Juri Linkov <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked],
>   [email-masked]
> Date: Wed, 27 Dec 2023 19:20:07 +0200
> 
> >>     (ding) ; error message from ispell!
> >>     (message "Ispell error: %s" output)
> >>     (sit-for 5)
> >>
> >> So I need to waste 5 seconds several times during spell-checking.
> >
> > Only when there's an error, right?
> 
> Often during spell-checking it's really not an error, but a warning
> that text in some unsupported encoding can't be spell-checked.

"Unsupported encoding"?  Last time I saw this was when I was using
ispell as the speller.  Since I switched to Hunspell years ago, these
problems are gone for good, since Hunspell uses UTF-8.  How come you
still see this?

> I propose to refactor such code
> 
>   (message "Ispell error: %s" output)
>   (sit-for 5)
> 
> to a new separate function, e.g.
> 
>   (important-message 5 "Ispell error: %s" output)
> 
> with a simple implementation
> 
>   (defun important-message (seconds format-string &rest args)
>     (apply #'message format-string args)
>     (sit-for seconds))
> 
> Then users could easily override such annoying delay.
> Or maybe even the default implementation can check
> if set-message-functions already contains set-multi-message
> that ensures that the important message will not be missed,
> and not to use sit-for in this case.

I don't mind much, but is this really the best we can do?  Asking
users to customize Emacs by overriding functions is not very friendly,
and in this case we certainly could do better, for example by making 5
be a defcustom.