]> git.eshelyaron.com Git - emacs.git/commitdiff
(font-lock-regexp-backslash)
authorJuri Linkov <juri@jurta.org>
Mon, 6 Jun 2005 12:02:35 +0000 (12:02 +0000)
committerJuri Linkov <juri@jurta.org>
Mon, 6 Jun 2005 12:02:35 +0000 (12:02 +0000)
(font-lock-regexp-backslash-construct): New faces.
(lisp-font-lock-keywords-2): Use new faces.  Match `?:' only
after `('.  Add `while-no-input' to control structures.

lisp/font-lock.el

index 1e4e0d188ad8dc0a1536c59bdac54ea250194d86..f75c08151e86b8f00726e03d3779a344a8e15509 100644 (file)
@@ -905,7 +905,7 @@ The value of this variable is used when Font Lock mode is turned on."
                        'font-lock-after-change-function t)
           (set (make-local-variable 'font-lock-fontify-buffer-function)
                'jit-lock-refontify)
-          ;; Don't fontify eagerly (and don't abort is the buffer is large).
+          ;; Don't fontify eagerly (and don't abort if the buffer is large).
           (set (make-local-variable 'font-lock-fontified) t)
           ;; Use jit-lock.
           (jit-lock-register 'font-lock-fontify-region
@@ -1826,6 +1826,17 @@ Sets various variables using `font-lock-defaults' (or, if nil, using
   "Font Lock mode face used to highlight preprocessor directives."
   :group 'font-lock-highlighting-faces)
 
+(defface font-lock-regexp-backslash
+  '((((class color) (min-colors 16)) :inherit escape-glyph)
+    (t :inherit bold))
+  "Font Lock mode face used to highlight a backslash in Lisp regexps."
+  :group 'font-lock-highlighting-faces)
+
+(defface font-lock-regexp-backslash-construct
+  '((t :inherit bold))
+  "Font Lock mode face used to highlight `\' constructs in Lisp regexps."
+  :group 'font-lock-highlighting-faces)
+
 ;;; End of Colour etc. support.
 \f
 ;;; Menu support.
@@ -2019,7 +2030,7 @@ This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item."
      `(;; Control structures.  Emacs Lisp forms.
        (,(concat
          "(" (regexp-opt
-              '("cond" "if" "while" "let" "let*"
+              '("cond" "if" "while" "while-no-input" "let" "let*"
                 "prog" "progn" "progv" "prog1" "prog2" "prog*"
                 "inline" "lambda" "save-restriction" "save-excursion"
                 "save-window-excursion" "save-selected-window"
@@ -2075,16 +2086,14 @@ This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item."
        ;; Make regexp grouping constructs bold, so they stand out, but only
        ;; in strings.
        ((lambda (bound)
-         (if (re-search-forward "\\(\\\\\\\\\\)\\([(|)]\\)\\(\\?:\\)?" bound t)
+         (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)))))
-        ;; Should we introduce a lowlight face for this?
-        ;; Ideally that would retain the color, dimmed.
-       (1 font-lock-comment-face prepend)
-       (2 'bold prepend)
-       (3 font-lock-type-face prepend t))
+       (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.