diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2011-04-03 16:59:45 -0400 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2011-04-03 16:59:45 -0400 |
commit | c11325f772dc87f055996b3c196ce0f388fab976 (patch) | |
tree | d496badcbcefdd7b28c89ee6cbebc8c92da7139a /lisp/textmodes/flyspell.el | |
parent | ef3862adbd5ec284cd55006caaf012aef5e5b4bb (diff) | |
download | emacs-c11325f772dc87f055996b3c196ce0f388fab976.tar.gz |
Improvements to flyspell-mark-duplications-exceptions.
* lisp/textmodes/flyspell.el (flyspell-word): Recognize default
dictionary case for flyspell-mark-duplications-exceptions. Use
regexp matching for languages.
(flyspell-mark-duplications-exceptions): Add "that" and "had" for
default dictionary (Bug#7926).
Diffstat (limited to 'lisp/textmodes/flyspell.el')
-rw-r--r-- | lisp/textmodes/flyspell.el | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index 3c9a4570248..99c9a83e4fb 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -71,13 +71,23 @@ Detection of repeated words is not implemented in :type 'boolean) (defcustom flyspell-mark-duplications-exceptions - '(("francais" . ("nous" "vous"))) + '((nil . ("that" "had")) ; Common defaults for English. + ("\\`francais" . ("nous" "vous"))) "A list of exceptions for duplicated words. -It should be a list of (LANGUAGE . EXCEPTION-LIST). LANGUAGE is matched -against the current dictionary and EXCEPTION-LIST is a list of strings. -The duplicated word is downcased before it is compared with the exceptions." +It should be a list of (LANGUAGE . EXCEPTION-LIST). + +LANGUAGE is nil, which means the exceptions apply regardless of +the current dictionary, or a regular expression matching the +dictionary name (`ispell-local-dictionary' or +`ispell-dictionary') for which the exceptions should apply. + +EXCEPTION-LIST is a list of strings. The checked word is +downcased before comparing with these exceptions." :group 'flyspell - :type '(alist :key-type string :value-type (repeat string))) + :type '(alist :key-type (choice (const :tag "All dictionaries" nil) + string) + :value-type (repeat string)) + :version "24.1") (defcustom flyspell-sort-corrections nil "Non-nil means, sort the corrections alphabetically before popping them." @@ -1044,12 +1054,14 @@ misspelling and skips redundant spell-checking step." (not (memq (char-after (1- start)) '(?\} ?\\))))) flyspell-mark-duplications-flag (not (catch 'exception - (dolist (except flyspell-mark-duplications-exceptions) - (and (string= (or ispell-local-dictionary - ispell-dictionary) - (car except)) - (member (downcase word) (cdr except)) - (throw 'exception t))))) + (let ((dict (or ispell-local-dictionary + ispell-dictionary))) + (dolist (except flyspell-mark-duplications-exceptions) + (and (or (null (car except)) + (and (stringp dict) + (string-match (car except) dict))) + (member (downcase word) (cdr except)) + (throw 'exception t)))))) (save-excursion (goto-char start) (let* ((bound |