From 61f3a4b4fcc43241caaac63195205774ab1a5732 Mon Sep 17 00:00:00 2001 From: Reuben Thomas Date: Mon, 10 Sep 2018 15:06:02 +0100 Subject: [PATCH] Add flyspell option to ignore duplicates of different case * lisp/textmodes/flyspell.el (flyspell-case-fold-duplications): Add option. --- etc/NEWS | 7 +++++++ lisp/textmodes/flyspell.el | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/etc/NEWS b/etc/NEWS index 9ab26222ec2..fa93112c91d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -231,6 +231,13 @@ characters that quote text "like this" are replaced by double typographic quotes, “like this”, in text modes, and in comments in non-text modes. +--- +** New user option 'flyspell-case-fold-duplications'. +This option controls whether Flyspell mode considers consecutive words +to be duplicates if they are not in the same case. If non-nil, the +default, words are considered to be duplicates even if their letters' +case does not match. + --- ** 'write-abbrev-file' now includes special properties. 'write-abbrev-file' now writes special properties like ':case-fixed' diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index f6a809b18ee..e5a7639e204 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -68,6 +68,12 @@ Detection of repeated words is not implemented in :group 'flyspell :type 'boolean) +(defcustom flyspell-case-fold-duplications t + "Non-nil means Flyspell matches duplicate words case-insensitively." + :group 'flyspell + :type 'boolean + :version 27.1) + (defcustom flyspell-mark-duplications-exceptions '((nil . ("that" "had")) ; Common defaults for English. ("\\`francais" . ("nous" "vous"))) @@ -1154,7 +1160,8 @@ spell-check." (- (save-excursion (skip-chars-backward " \t\n\f"))))) (p (when (>= bound (point-min)) - (flyspell-word-search-backward word bound t)))) + (flyspell-word-search-backward + word bound flyspell-case-fold-duplications)))) (and p (/= p start))))) ;; yes, this is a doublon (flyspell-highlight-incorrect-region start end 'doublon) -- 2.39.2