Subject: bug#32142: WG: 26.1; Problems with flyspell-region

From: Eli Zaretskii <[email-masked]>
Date: Fri, 13 Jul 2018 22:43:48 +0300

> Date: Fri, 13 Jul 2018 15:11:13 +0000 (UTC)
> From: "R. Diez" <[email-masked]>
> 
> 
> I mentioned some problems with flyspell-region on the help-gnu-emacs mailing list here:
> 
> https://lists.gnu.org/archive/html/help-gnu-emacs/2018-07/msg00100.html

And I replied to some of them.

> Issue 1) The spell check is performed just once, and is not updated as I type inside that region. This is what I wrote on the mailing list:
> 
> 
> "If I mark a region (click on the beginning, hold shift, move to the end), and then run flyspell-region, the region gets spell-checked, and all the dictionary misses are underlined in red, as expected. But then, if I fix the words, the spelling marking (the red underlining) is not removed. It looks like Flyspell is not 'live' anymore within that region. The "overlay" is left behind as static font faces."

You need to turn on flyspell-mode if you want the misspelled words to
be unhighlighted when you fix them.

> I do not want to activate Flyspell for the whole buffer, because that would lead to too much red underlining.
> 
> If I just wanted a single-shot, I would use ispell-region instead.

We don't have a spell-checking feature that watches correction of
misspelled words without turning on flyspell-mode.  You could manually
turn on flyspell-mode when you correct the misspelled words, then turn
it back off when you are done with correcting and want to continue to
type new text.  And yes, ispell-region is better suited to your
workflow, if I understand it correctly.

> Issue 2) There is no easy way to remove the red underlining (overlays) left behind by flyspell-region.

See above.  You can also toggle flyspell-mode.

> Issue 3) Disabling flyspell-persistent-highlight renders flyspell-region useless.
> 
> Contrary to some of the answers in the mailing list, that combination does not work at all. This is what I am seeing:
> 
> "What I mean is that, if you turn flyspell-persistent-highlight off, then flyspell-region does nothing other than consume CPU cycles. The red underlining for dictionary misses does not show up at all."

That description is inaccurate.  The misspelled words _are_ highlighted,
but then the highlight is removed when cursor moves to the next word,
per the intended effect of flyspell-persistent-highlight being nil.

> Again, I do not want to turn on Flyspell for the whole buffer. If flyspell-region is supposed to work only when the Flyspell Mode is active, it should check, and error if it is not active. But that kind of defeats the purpose of having a flyspell-region.

The command flyspell-region is part of Flyspell mode, and is designed
to work in a buffer where flyspell-mode is turned on.  Its intended
use is to spell-check a region that you didn't type, as if you did
type it.  If you want to spell-check a region without turning on
flyspell-mode, I suggest to use ispell-region instead.