Web lists-archives.com

Re: Emacs and hunspell

Johann Spies [28.03.2019, 10:38 +0200]:
> I, so far, did not manage to use hunspell with emacs.  After reading a lot
> on the internet, inter alia emacs-wiki and stackexchange and trying out
> different recipes, still no success.
> My latest effort in .emacs:
> (with-eval-after-load "ispell"
>   (setq ispell-program-name "hunspell")
>   (setq ispell-dictionary "af_ZA")
>   ;; ispell-set-spellchecker-params has to be called
>   ;; before ispell-hunspell-add-multi-dic will work
>   (ispell-set-spellchecker-params)
>   (ispell-hunspell-add-multi-dic "af_ZA,en_ZA"))
> (setq ispell-program-name (executable-find "hunspell")
>       ispell-dictionary "af_ZA")
> produces the following error message when trying to use the spell process:
> ispell-get-decoded-string: No data for dictionary "af_ZA" in
> ‘ispell-local-dictionary-alist’ or ‘ispell-dictionary-alist’

This is how I managed to make it work for me; what follows is in my
init.el file:

  ;;-- Spelling --
  (with-eval-after-load "ispell"
    (setq ispell-program-name (executable-find "hunspell")
          ispell-skip-html t
          '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']"
             nil ("-d" "en_US") nil utf-8)
            ("it_IT" "[[:alpha:]]" "[^[:alpha:]]" "[-]"
             nil ("-d" "it_IT") nil utf-8)
            ("fr_FR" "[[:alpha:]]" "[^[:alpha:]]" "[-]"
             nil ("-d" "fr_FR") nil utf-8)
            ("de_DE" "[[:alpha:]]" "[^[:alpha:]]" "[-]"
             nil ("-d" "de_DE") nil utf-8))
        ispell-dictionary "en_US"))

I use those four languages, but only one at a time.  I tried to adapt my
configuration to a multi-dictionary setup by adding one more item in
ispell-local-dictionary-alist like this:

  ("de_DE,it_IT" "[[:alpha:]]" "[^[:alpha:]]" "[-]"
   nil ("-d" "de_DE,it_IT") nil utf-8)

then, when I use the function ispell-change-dictionary, I can choose
"de_DE,it_IT" from the list of available options and hunspell uses both
dictionaries at the same time.

Keep in mind that there is also bug #916227 [1] related to how emacs
finds installed dictionaries; it is still open but there is a patch

[1]  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916227

> From what I have read emacs (1:26.1+1-3.2) should just work with hunspell
> even if you just set the last two lines of the above configuration.
> However, it does not seem to pick up the dictionaries.
> How do I get it to work?
> Regards
> Johann

Hope this helps, best regards.