GNU bug report logs -
#52331
M-$ doesn't respect subword mode
Previous Next
Full log
Message #11 received at 52331 <at> debbugs.gnu.org (full text, mbox):
> From: André A. Gomes <andremegafone <at> gmail.com>
> Date: Mon, 06 Dec 2021 16:34:43 +0000
> Cc: 52331 <at> debbugs.gnu.org
>
> > $ emacs --batch --eval "(global-subword-mode)" --eval "(insert
> > \"getBanana\")" --eval "(ispell-word)"
> >
> > Expected output:
> > ...
> > BANANA is correct
> >
> > Expected output:
> > ...
> > Checking spelling of GETBANANA...
>
> Thank you for the bug report.
>
> There's only one speller checker that handles camelCase (AFAIK), which
> is aspell since 0.60.8. If you're using it, then you can add the
> following to your init file:
>
> (setq ispell-extra-args '("--camel-case"))
>
> However, and the Emacs maintainers will probably agree, the
> responsibility of sending the "right" word to the ispell sub-process
> should be on Emacs' side. I.e., when subword-mode is on, there should
> be a call to word-at-point before sending it to the spell checker.
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.
So perhaps a better approach is to teach subword-mode about the word
rules of ispell.el, not the other way around. Patches welcome.
This bug report was last modified 3 years and 193 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.