Mercurial > emacs
changeset 63911:954c9ade6e2b
(font-lock-regexp-grouping-backslash): Rename from
font-lock-regexp-backslash. Doc fix.
(font-lock-regexp-backslash-grouping-construct): Rename from
font-lock-regexp-backslash-construct. Doc fix.
(lisp-font-lock-keywords-2): Fix highlighting of ELisp regexp
grouping constructs.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 02 Jul 2005 09:40:42 +0000 |
parents | d9fbcc67ef0d |
children | 12f374b6c866 |
files | lisp/font-lock.el |
diffstat | 1 files changed, 19 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/font-lock.el Sat Jul 02 09:17:47 2005 +0000 +++ b/lisp/font-lock.el Sat Jul 02 09:40:42 2005 +0000 @@ -1825,15 +1825,15 @@ "Font Lock mode face used to highlight preprocessor directives." :group 'font-lock-highlighting-faces) -(defface font-lock-regexp-backslash +(defface font-lock-regexp-grouping-backslash '((((class color) (min-colors 16)) :inherit escape-glyph) (t :inherit bold)) - "Font Lock mode face used to highlight a backslash in Lisp regexps." + "Font Lock mode face for backslashes in Lisp regexp grouping constructs." :group 'font-lock-highlighting-faces) -(defface font-lock-regexp-backslash-construct +(defface font-lock-regexp-backslash-grouping-construct '((t :inherit bold)) - "Font Lock mode face used to highlight `\' constructs in Lisp regexps." + "Font Lock mode face used to highlight grouping constructs in Lisp regexps." :group 'font-lock-highlighting-faces) ;;; End of Colour etc. support. @@ -2082,22 +2082,22 @@ ("\\<:\\sw+\\>" 0 font-lock-builtin-face) ;; ELisp and CLisp `&' keywords as types. ("\\&\\sw+\\>" . font-lock-type-face) - ;; Make regexp grouping constructs bold, so they stand out, but only - ;; in strings. + ;; ELisp regexp grouping constructs ((lambda (bound) - (if (re-search-forward "\\(\\\\\\\\\\)\\((\\(?:?:\\)?\\|[|)]\\)" bound t) - (let ((face (get-text-property (1- (point)) 'face))) - (if (listp face) - (memq 'font-lock-string-face face) - (eq 'font-lock-string-face face))))) - (1 'font-lock-regexp-backslash prepend) - (2 'font-lock-regexp-backslash-construct prepend)) - - ;; Underline innermost grouping, so that you can more easily see what - ;; belongs together. 2005-05-12: Font-lock can go into an - ;; unbreakable endless loop on this -- something's broken. - ;;("[\\][\\][(]\\(?:\\?:\\)?\\(\\(?:[^\\\"]+\\|[\\]\\(?:[^\\]\\|[\\][^(]\\)\\)+?\\)[\\][\\][)]" - ;;1 'underline prepend) + (catch 'found + ;; The following loop is needed to continue searching after matches + ;; that do not occur in strings. The associated regexp matches one + ;; of `\\\\' `\\(' `\\(?:' `\\|' `\\)'. `\\\\' has been included to + ;; avoid highlighting, for example, `\\(' in `\\\\('. + (while (re-search-forward "\\(\\\\\\\\\\)\\(?:\\(\\\\\\\\\\)\\|\\((\\(?:\\?:\\)?\\|[|)]\\)\\)" bound t) + (unless (match-beginning 2) + (let ((face (get-text-property (1- (point)) 'face))) + (when (or (and (listp face) + (memq 'font-lock-string-face face)) + (eq 'font-lock-string-face face)) + (throw 'found t))))))) + (1 'font-lock-regexp-grouping-backslash prepend) + (3 'font-lock-regexp-grouping-construct prepend)) ;;; This is too general -- rms. ;;; A user complained that he has functions whose names start with `do' ;;; and that they get the wrong color.