diff options
-rw-r--r-- | etc/NEWS | 8 | ||||
-rw-r--r-- | lisp/textmodes/ispell.el | 9 |
2 files changed, 15 insertions, 2 deletions
@@ -1630,6 +1630,14 @@ When non-nil, watch whether the bookmark file has changed on disk. This library generates manual C++ template instantiations. It should no longer be useful on modern compilers, which do this automatically. +** Ispell + +--- +*** New hook 'ispell-change-dictionary-hook'. +This runs after changing the dictionary and could be used to +automatically spellcheck a buffer when changing language without +needing to advice 'ispell-change-dictionary'. + * New Modes and Packages in Emacs 27.1 diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index d488c05418c..9dfa9f3c448 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -2973,6 +2973,9 @@ With CLEAR, buffer session localwords are cleaned." (message "Ispell process killed") nil)) +(defvar ispell-change-dictionary-hook nil + "Hook run after changing dictionary.") + ;; ispell-change-dictionary is set in some people's hooks. Maybe this should ;; call ispell-init-process rather than wait for a spell checking command? @@ -2998,7 +3001,8 @@ By just answering RET you can find out what the current dictionary is." (ispell-internal-change-dictionary) (message "Using %s dictionary" (or (and (not arg) ispell-local-dictionary) - ispell-dictionary "default"))) + ispell-dictionary "default")) + (run-hooks 'ispell-change-dictionary-hook)) ((equal dict (or (and (not arg) ispell-local-dictionary) ispell-dictionary "default")) ;; Specified dictionary is the default already. Could reload @@ -3020,7 +3024,8 @@ By just answering RET you can find out what the current dictionary is." (setq ispell-buffer-session-localwords nil) (message "%s Ispell dictionary set to %s" (if arg "Global" "Local") - dict)))) + dict) + (run-hooks 'ispell-change-dictionary-hook)))) (defun ispell-internal-change-dictionary () "Update the dictionary and the personal dictionary used by Ispell. |