]> git.eshelyaron.com Git - emacs.git/commitdiff
Add new ispell-change-dictionary-hook (Bug#1110)
authorStefan Kangas <stefankangas@gmail.com>
Thu, 27 Jun 2019 18:02:56 +0000 (20:02 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 27 Jun 2019 19:00:35 +0000 (21:00 +0200)
* lisp/textmodes/ispell.el (ispell-change-dictionary-hook): New hook.
(ispell-change-dictionary): Call new hook (bug#1110).

etc/NEWS
lisp/textmodes/ispell.el

index 988ee8bb41e8d8ef1ece29b718a61ae07ad5146f..29ca3e3777aa219294d6c369d27f378193a76aa7 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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'.
+
 \f
 * New Modes and Packages in Emacs 27.1
 
index d488c05418c3b9434c1d88e377db099393606041..9dfa9f3c4483f7724eb20fb6f2c00ad36fc5f005 100644 (file)
@@ -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.