[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: re-builder highlighting incorrect for more than 3 groupings
From: |
martin rudalics |
Subject: |
Re: re-builder highlighting incorrect for more than 3 groupings |
Date: |
Thu, 27 Apr 2006 10:55:07 +0200 |
User-agent: |
Mozilla Thunderbird 1.0 (Windows/20041206) |
You can add as many deffaces
(defface reb-match-4 ...
(defface reb-match-5 ...
Can we do something so that it cycles thru the provided faces
once it has used them all?
The attached patch tries to do that.
2006-04-27 Martin Rudalics <address@hidden>
* emacs-lisp/re-builder.el (reb-update-overlays):
Cycle thru provided faces once they have been used all.
*** re-builder.el Sat Nov 5 19:44:46 2005
--- re-builder.el Thu Apr 27 10:35:20 2006
***************
*** 112,118 ****
(if (not (fboundp 'make-overlay))
(require 'overlay))
! ;; User costomizable variables
(defgroup re-builder nil
"Options for the RE Builder."
:group 'lisp
--- 112,118 ----
(if (not (fboundp 'make-overlay))
(require 'overlay))
! ;; User customizable variables
(defgroup re-builder nil
"Options for the RE Builder."
:group 'lisp
***************
*** 627,637 ****
beg (match-end 0)))
i))
-
(defun reb-update-overlays (&optional subexp)
"Switch to `reb-target-buffer' and mark all matches of `reb-regexp'.
If SUBEXP is non-nil mark only the corresponding sub-expressions."
-
(let* ((re (reb-target-binding reb-regexp))
(subexps (reb-count-subexps re))
(matches 0)
--- 627,635 ----
***************
*** 645,668 ****
(or (not reb-auto-match-limit)
(< matches reb-auto-match-limit)))
(if (= 0 (length (match-string 0)))
! (error "Empty regular expression!"))
! (let ((i 0))
(setq matches (1+ matches))
(while (<= i subexps)
(if (and (or (not subexp) (= subexp i))
(match-beginning i))
(let ((overlay (make-overlay (match-beginning i)
(match-end i)))
! (face-name (format "reb-match-%d" i)))
! (if (not firstmatch)
! (setq firstmatch (match-data)))
(setq reb-overlays (cons overlay reb-overlays)
submatches (1+ submatches))
! (overlay-put
! overlay 'face
! (or (intern-soft face-name)
! (error "Too many subexpressions - face `%s' not defined"
! face-name )))
(overlay-put overlay 'priority i)))
(setq i (1+ i))))))
(let ((count (if subexp submatches matches)))
--- 643,677 ----
(or (not reb-auto-match-limit)
(< matches reb-auto-match-limit)))
(if (= 0 (length (match-string 0)))
! (error "Empty regular expression!"))
! (let ((i 0)
! suffix max-suffix)
(setq matches (1+ matches))
(while (<= i subexps)
(if (and (or (not subexp) (= subexp i))
(match-beginning i))
(let ((overlay (make-overlay (match-beginning i)
(match-end i)))
! ;; When we have exceeded the number of provided faces,
! ;; cycle thru them where `max-suffix' denotes the maximum
! ;; suffix for `reb-match-*' that has been defined and
! ;; `suffix' the suffix calculated for the current match.
! (face
! (cond
! (max-suffix
! (if (= suffix max-suffix)
! (setq suffix 1)
! (setq suffix (1+ suffix)))
! (intern-soft (format "reb-match-%d" suffix)))
! ((intern-soft (format "reb-match-%d" i)))
! ((setq max-suffix (1- i))
! (setq suffix 1)
! ;; `reb-match-1' must exist.
! 'reb-match-1))))
! (unless firstmatch (setq firstmatch (match-data)))
(setq reb-overlays (cons overlay reb-overlays)
submatches (1+ submatches))
! (overlay-put overlay 'face face)
(overlay-put overlay 'priority i)))
(setq i (1+ i))))))
(let ((count (if subexp submatches matches)))
- re-builder highlighting incorrect for more than 3 groupings, Christian Plate, 2006/04/25
- Re: re-builder highlighting incorrect for more than 3 groupings, martin rudalics, 2006/04/26
- Re: re-builder highlighting incorrect for more than 3 groupings, Richard Stallman, 2006/04/27
- Re: re-builder highlighting incorrect for more than 3 groupings,
martin rudalics <=
- Re: re-builder highlighting incorrect for more than 3 groupings, Juanma Barranquero, 2006/04/27
- Re: re-builder highlighting incorrect for more than 3 groupings, Adrian Aichner, 2006/04/28
- Re: re-builder highlighting incorrect for more than 3 groupings, Juanma Barranquero, 2006/04/28
- Re: re-builder highlighting incorrect for more than 3 groupings, Richard Stallman, 2006/04/29
- Re: re-builder highlighting incorrect for more than 3 groupings, Juanma Barranquero, 2006/04/29
- Re: re-builder highlighting incorrect for more than 3 groupings, Adrian Aichner, 2006/04/29
- Re: re-builder highlighting incorrect for more than 3 groupings, martin rudalics, 2006/04/29
- Re: re-builder highlighting incorrect for more than 3 groupings, Juanma Barranquero, 2006/04/29
- Re: re-builder highlighting incorrect for more than 3 groupings, Richard Stallman, 2006/04/29