Subject: Re: bug#24050: 24.5; ispell-change-dictionary suggests non-existent dicts (aspell)

From: Lars Ingebrigtsen <[email-masked]>
Date: Tue, 30 Jul 2019 13:22:18 +0200

Eli Zaretskii <[email-masked]> writes:

> Not necessarily, because the dictionary can be specified as a full
> absolute file name.  Also, ispell-dictionary-alist provides for
> specifying command-line options for the speller, and some of those
> could instruct the speller to look for the dictionary in a
> non-standard directory, where the speller doesn't look when we query
> it about installed dictionaries.

OK; I see now that this is more complicated than I assumed.  Thanks for
explaining.  I've now reverted the patch and reopened the bug.

>> With the patch, ispell-change-directory (on this system) seems to list
>> all the dictionaries it can use.  This is quite useful, because now that
>> command allows me to actually choose the dictionary variant I most want
>> to use, which was impossible before when they were hidden among all the
>> dictionaries Emacs was claiming I could use (but can't).
>
> I see your point and agree with the convenience part, but
> unfortunately things are not as simple as they seem.
>
> First, if this kind of filtering of the potentially available
> dictionaries should happen, its place is in
> ispell-valid-dictionary-list, not where the proposed change was made.

Right.

> So all of this is ... complicated.  And since the original complaint
> is about the completion candidates shown by ispell-change-directory, I
> think we should solve that problem by tweaking only the completion,
> not the data structures it uses.  If you agree, maybe you or someone
> else could come up with an alternative patch which only modified how
> the collection of completion candidates is calculated.

A different option might be to use the current way of doing the
completion candidates, but mark (for instance in bold) the ones that
aspell/hunspell has said are available on the system.

> (And btw, I think it is a mistake to call completing-read with
> MUST-MATCH argument non-nil here, because it prevents users from
> typing a full absolute file name of the dictionary, an entirely valid
> and useful response.)

Yup.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no