# HG changeset patch # User Juri Linkov # Date 1111140003 0 # Node ID 438b974e257cb0d8aa03187dfacfabec8b892caf # Parent 77391bae98f130ef8b43c4a2fb0f93277deb2fba (ispell-lazy-highlight): New defcustom. (ispell-highlight-face): Set default face to `isearch' when lazy highlighting is enabled. (ispell-highlight-spelling-error-overlay): Set `ispell-overlay' priority to 1. Add lazy highlighting. (ispell-highlight-spelling-error-xemacs): Remove obsolete arg from `isearch-dehighlight'. diff -r 77391bae98f1 -r 438b974e257c lisp/textmodes/ispell.el --- a/lisp/textmodes/ispell.el Fri Mar 18 09:59:45 2005 +0000 +++ b/lisp/textmodes/ispell.el Fri Mar 18 10:00:03 2005 +0000 @@ -238,7 +238,17 @@ :type '(choice (const block) (const :tag "off" nil) (const :tag "on" t)) :group 'ispell) -(defcustom ispell-highlight-face 'highlight +(defcustom ispell-lazy-highlight (boundp 'lazy-highlight-cleanup) + "*Controls the lazy-highlighting of spelling errors. +When non-nil, all text in the buffer matching the current spelling +error is highlighted lazily using isearch lazy highlighting (see +`lazy-highlight-initial-delay' and `lazy-highlight-interval')." + :type 'boolean + :group 'lazy-highlight + :group 'ispell + :version "22.1") + +(defcustom ispell-highlight-face (if ispell-lazy-highlight 'isearch 'highlight) "*The face used for Ispell highlighting. For Emacses with overlays. Possible values are `highlight', `modeline', `secondary-selection', `region', and `underline'. @@ -2160,7 +2170,7 @@ otherwise it is displayed normally." (if highlight (isearch-highlight start end) - (isearch-dehighlight t)) + (isearch-dehighlight)) ;;(sit-for 0) ) @@ -2174,8 +2184,23 @@ (if highlight (progn (setq ispell-overlay (make-overlay start end)) + (overlay-put ispell-overlay 'priority 1) ;higher than lazy overlays (overlay-put ispell-overlay 'face ispell-highlight-face)) - (delete-overlay ispell-overlay))) + (delete-overlay ispell-overlay)) + (if (and ispell-lazy-highlight (boundp 'lazy-highlight-cleanup)) + (if highlight + (let ((isearch-string + (concat + "\\b" + (regexp-quote (buffer-substring-no-properties start end)) + "\\b")) + (isearch-regexp t) + (isearch-case-fold-search nil)) + (isearch-lazy-highlight-new-loop + (if (boundp 'reg-start) reg-start) + (if (boundp 'reg-end) reg-end))) + (lazy-highlight-cleanup lazy-highlight-cleanup) + (setq isearch-lazy-highlight-last-string nil)))) (defun ispell-highlight-spelling-error (start end &optional highlight refresh)