GNU bug report logs - #52179
Highlighting a word in `ispell' using `enchant'

Previous Next

Package: emacs;

Reported by: Tor Kringeland <tor.a.s.kringeland <at> ntnu.no>

Date: Mon, 29 Nov 2021 14:45:02 UTC

Severity: normal

Full log


Message #29 received at 52179 <at> debbugs.gnu.org (full text, mbox):

From: Reuben Thomas <rrt <at> sc3d.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Tor Kringeland <tor.kringeland <at> ntnu.no>, 52179 <at> debbugs.gnu.org
Subject: Re: bug#52179: Highlighting a word in `ispell' using `enchant'
Date: Tue, 24 May 2022 22:34:14 +0100
[Message part 1 (text/plain, inline)]
On Tue, 24 May 2022 at 20:36, Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: Tor Kringeland <tor.kringeland <at> ntnu.no>
> > CC: "52179 <at> debbugs.gnu.org" <52179 <at> debbugs.gnu.org>
> > Date: Tue, 24 May 2022 19:27:58 +0000
> >
> > Aspell works for me, but enchant doesn't. When I change
> `ispell-program-name' to "aspell" ispell starts recognizing full words.
> >
> > Looking into the functions you mentioned, it seems like
> `ispell-find-aspell-dictionaries' explicitly adds an entry for nil, while
> `ispell-find-enchant-dictionaries' doesn't. This is what causes the bug for
> me since I have set `ispell-dictionary' to nil/haven't changed it so the
> resulting regex recognizing words is too strict for my use.
>
> Then maybe ispell-find-enchant-dictionaries should be improved?
>
> > Might there be a reason why `ispell-find-enchant-dictionaries' doesn't
> set a nil entry? For sure I would think it could handle whatever input
> aspell can.
>
> I don't know.  CC'ing Reuben, who might know better.
>

I had a look at the code. I think what is happening is that the default
dictionary in ispell-dictionary-base-alist uses only [A-Za-z] for word
chars and [^A-Za-z] for non-word chars. The assumption is that this works
for ispell (the program). Then, [[:alpha:]] and [^[:alpha:]] are used in
the default 'nil'-keyed entry for aspell. As far as I can tell from the
rather hairy hunspell code, it too does not set a default entry.

Since ispell is the only spellchecker Emacs supports that can't cope with
[[:alpha:]], it would seem more sensible to have a default (nil-keyed)
setting in ispell-dictionary-base-alist, and to overwrite the default with
[A-Za-z] only if the spellchecker is really ispell.

This way, duplicate code can be removed and future spellcheckers will not
need to rediscover this problem.

(I never came across this problem because I have customized
ispell-local-dictionary-alist with my own nil entry!)

-- 
https://rrt.sc3d.org
[Message part 2 (text/html, inline)]

This bug report was last modified 3 years and 22 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.