Subject: Re: bug#52331: M-$ doesn't respect subword mode

From: Eli Zaretskii <[email-masked]>
Date: Mon, 06 Dec 2021 19:45:35 +0200

> From: André A. Gomes <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Mon, 06 Dec 2021 17:21:28 +0000
> 
> > It's not that easy, unfortunately.  ispell.el has its own rules for
> > what is a word, and the rules aren't static, they are determined
> > dynamically by the definition of the dictionary. That's because of at
> > least 2 reasons: (1) the rules must match what the dictionary
> > considers a word, and (2) spell-checking is expected to work in
> > buffers that mix several languages, so the rules need to be sensitive
> > to the language of the dictionary and reject "words" whose letters are
> > not part of the language.
> 
> Correct, my comment was over simplistic.  But I don't see where my
> reasoning fails.  I can't think of an example where calling
> word-at-point before the ispell rules kick in would make harm.  What am
> I missing?

See ispell-get-word, I think it will explain what I meant.  This is
what ispell.el is using to determine what is a "word".

> > So perhaps a better approach is to teach subword-mode about the word
> > rules of ispell.el, not the other way around.  Patches welcome.
> 
> I don't see how this could help.  Care to expand a bit?

subword-mode uses regular expressions to find where the word begins
and ends.  Either use different regexps (derived from what ispell.el
uses) when spell-checking, or make ispell.el define its own
subword-forward/backward-functions for subword-mode to use instead of
its defaults.