If aspell (or a spell-fu acceptable equivalent) warn the user. If it
failed to bind +spell-correct-interface, and bind that.
Remove previous hack. It prevents use of +spell/correct if spell-fu does
not try to highlight a word. This is extreamly common is docstrings, for
example. I think having +spell/correct should check any word it is
called upon, even without general text highlighting.
Changes the default ispell dictionary from "en" to "english" since the
former isn't actually a default dictionary name listed in ispell. See
9f30a6b1a4/lisp/textmodes/ispell.el (L471)
Otherwise, enabling checkers/spell doesn't do anything even if aspell and the
aspell-en dictionary are installed according to the module README file.
``+spell/add-word`` expects `flyspell-get-word` to return as a string
the current word. Instead, it returns a list of the form
`(<word> <start-pos> <end-pos>)`.
Emacs loads both ispell and flyspell at startup, so to lazy load user
configuration to either package, we fool Emacs into thinking neither is
loaded yet.
However, this means we need a trigger to eventually "load" ispell, which
we didn't have until now, causing #3863.
This occurs in org-compat.el:
(eval-after-load "flyspell"
'(add-to-list 'flyspell-delayed-commands 'org-self-insert-command))
By not using a package symbol, this code runs whenever any file named
flyspell.el is loaded. Guess what one of the :checkers spell module's
autoloads files is named? flyspell.el
spell-fu lacks support for multiple dictionaries, affix expansion, and
many non-English dictionaries, so I've added back flyspell support to
the spell module, but opt-in, because it is still the significantly
slower option and spell-fu may support them one day.
If not, tlikonen/wcheck-mode is another alternative to consider.
Fixes#3813
+ Fixes ispell not noticing allowed words in your personal dictionary.
So +spell/correct would sometimes correct words that spell-fu wasn't
highlighting as incorrect, and sometimes wouldn't correct words that
were.
+ Fixes spell-fu refusing to read or write to the personal dictionary if
the file didn't already exist beforehand (for zq and zw).
+ Change ispell-dictionary fallback from "en_US" (which aspell won't
always recognize) to "en".
+ Moved ispell-personal-dictionary to ~/.emacs.d/.local/etc/ispell/ by
default.
Aspell is a hard dependency of this module, even if you use hunspell as
a backend. The spellchecker will simply bow out if aspell isn't present
on your system at startup.
Spell-fu is significantly faster, but does produce more false
positives (more faces must be added to spell-fu-faces-exclude to reduce
these).
Unfortunately, there is no fancy "correction" interface for spell-fu
yet, so we'll have to resort to ispell-word (on z=) for now.
* :checkers spell documentation
* Fix based on changes
Fix date and version
Create TOC
Remove indentation
Remove blank lines
Hard-wrapped paragraphs
Remove comments
yaml-mode is derived from text-mode, rather than prog or conf-mode. This
may be true for other major modes, so we must be more judicious about
where we activate flyspell-mode.