• Agustín Martín's avatar
    Initial support for hunspell dictionaries auto-detection (Bug#13639) · ef3761e3
    Agustín Martín authored
    	* textmodes/ispell.el (ispell-find-hunspell-dictionaries):
    	Ask hunspell about available and default dictionaries.
    	(ispell-parse-hunspell-affix-file): Extract relevant info from
    	hunspell affix file.
    	(ispell-hunspell-fill-dictionary-entry): Fill non-initialized
    	`ispell-dictionary-alist' entry for given dictionary after info
    	provided by `ispell-parse-hunspell-affix-file'.
    	(ispell-hunspell-dict-paths-alist): New defvar to contain an alist
    	of parsed hunspell dicts and associated affix files.
    	(ispell-hunspell-dictionary-alist): New defvar to contain an alist
    	of parsed hunspell dicts and associated parameters.
    	(ispell-set-spellchecker-params):
    	Call `ispell-find-hunspell-dictionaries' if hunspell and not
    	previously done.
    	(ispell-start-process):
    	Call `ispell-hunspell-fill-dictionary-entry' for current
    	dictionary if it is not initialized.
    
    Some additional details about the implementation:
    
    (ispell-hunspell-dict-paths-alist): Alist that contains a list of
      parsed hunspell dicts and associated affix files.
    
    (ispell-hunspell-dictionary-alist): Alist of parsed hunspell dicts and
      associated parameters. It is initially just a list of found
      dictionaries except for the default dictionary where is filled with
      proper parameters.
    
    When spellchecker is initialized by (ispell-set-spellchecker-params)
    if the conditions: is hunspell, communication can be set to UTF-8 and
    Emacs flavor supports [:alpha:] are matched installed hunspell
    dictionaries are parsed and info passed to
    `ispell-hunspell-dictionary-alist', either full for default dictionary
    or just name for other dictionaries. These entries are used for
    `ispell-dictionary-alist' if not overriden.
    
    Before starting hunspell process in (ispell-start-process), if
    `ispell-dictionary-alist' entry is not yet initialized
    (ispell-hunspell-fill-dictionary-entry) is called to fill that entry
    (and all pending entries using the same affix file) after info
    extracted by (ispell-parse-hunspell-affix-file) from the associated
    affix file.
    
    hunspell process will then be started as usual. This delayed procedure
    is used to avoid that in systems containing many hunspell dictionaries
    all affix files are parsed (if there are many, time may be noticeable)
    for just one used dictionary.
    ef3761e3
ChangeLog 903 KB