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).
This commit is contained in:
Chong Yidong 2011-04-03 16:59:45 -04:00
parent ef3862adbd
commit c11325f772
2 changed files with 31 additions and 11 deletions

View file

@ -1,3 +1,11 @@
2011-04-03 Chong Yidong <cyd@stupidchicken.com>
* 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).
2011-04-02 Chong Yidong <cyd@stupidchicken.com>
* emacs-lisp/package.el (package--with-work-buffer): Recognize

View file

@ -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