bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#50241: flyspell doesn't work with multiple dictionaries


From: Konstantin Kharlamov
Subject: bug#50241: flyspell doesn't work with multiple dictionaries
Date: Sat, 28 Aug 2021 23:26:28 +0300
User-agent: Evolution 3.40.4

On Sat, 2021-08-28 at 23:19 +0300, Konstantin Kharlamov wrote:
> On Sat, 2021-08-28 at 23:02 +0300, Konstantin Kharlamov wrote:
> > On Sat, 2021-08-28 at 22:45 +0300, Konstantin Kharlamov wrote:
> > > On Sat, 2021-08-28 at 22:36 +0300, Eli Zaretskii wrote:
> > > > > From: Konstantin Kharlamov <hi-angel@yandex.ru>
> > > > > Cc: 50241@debbugs.gnu.org
> > > > > Date: Sat, 28 Aug 2021 22:05:55 +0300
> > > > > 
> > > > > On Sat, 2021-08-28 at 21:56 +0300, Eli Zaretskii wrote:
> > > > > > 
> > > > > > You miss this step at the end:
> > > > > > 
> > > > > >   (ispell-change-dictionary "ru_RU,en_US")
> > > > > > 
> > > > > > It tells Emacs to restart Hunspell with these two dictionaries.
> > > > > 
> > > > > Thank you! Running this command results in error:
> > > > > 
> > > > >         (error "Undefined dictionary: ru_RU,en_US")
> > > > 
> > > > Strange.  Here, it doesn't error out.  I did this:
> > > > 
> > > >   M-x flyspell-mode RET
> > > >   M-x ispell-hunspell-add-multi-dic RET ru_RU,en_US RET
> > > >   M-x ispell-change-dictionary RET ru_RU,en_US RET
> > > > 
> > > > And I don't get any errors, and flyspell-mode works for both Russian
> > > > and English.
> > > 
> > > Thank you! With a little modification for steps to be:
> > > 
> > >   M-x flyspell-mode RET
> > >   M-: (setq ispell-program-name "hunspell")
> > >   M-x ispell-hunspell-add-multi-dic RET ru_RU,en_US RET
> > >   M-x ispell-change-dictionary RET ru_RU,en_US RET
> > > 
> > > this worked for me! Hmm, let me try to experiment with that a bit to see
> > > why
> > > it
> > > didn't work for me non-interactively…
> > 
> > Okay, so the bug seems to be in ispell-hunspell-add-multi-dic function. When
> > called interactively, then the following interactive call to (ispell-change-
> > dictionary) has the ru_RU,en_US dictionary as a completion. However, if
> > ispell-hunspell-add-multi-dic was called non-interactively, the completion
> > from the subsequent (ispell-change-dictionary) call seems to be missing.
> > 
> > Not sure though why the difference in behaviour, the "interactive" part of
> > that function look innocent, simply (interactive "sPrompt"). Not sure what
> > starting "s" means though.
> 
> Okay, so, I figured there's some sort of odd cooperation between (ispell-
> hunspell-add-multi-dic) and (ispell-change-dictionary) going on.
> 
> When the first is called non-interactively, interactive call to the second
> results in no completion for the new dict, right? So, the fun thing is that if
> you abort prompt afterwards, then you call (ispell-hunspell-add-multi-dic)
> again, and then you call (ispell-change-dictionary) interactively again, the
> prompt will have the completion.
> 
> It looks as if call to (ispell-change-dictionary) initializes some important
> variable required by (ispell-hunspell-add-multi-dic) to function properly.

…and, the function that needs to be called before 
(ispell-hunspell-add-multi-dic "ru_RU,en_US") is (ispell-valid-dictionary-list)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]