From 5e4ab4e4d9a98a44896c80a998111d768e959686 Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Fri, 25 Apr 2014 00:37:28 +0200 Subject: [PATCH] Improve Scheme font-locking for (define ((foo ...) ...) ...). * lisp/progmodes/scheme.el (scheme-font-lock-keywords-1): To find the declared object, ignore zero or more parens, not zero or one. --- lisp/ChangeLog | 7 +++++++ lisp/progmodes/scheme.el | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6e5ad6ba29b..f1128b0f98d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2014-04-25 Thien-Thi Nguyen + + Improve Scheme font-locking for (define ((foo ...) ...) ...). + + * progmodes/scheme.el (scheme-font-lock-keywords-1): To find + the declared object, ignore zero or more parens, not zero or one. + 2014-04-24 Leo Liu * progmodes/xscheme.el (xscheme-expressions-ring) diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index 67374dd4c6c..14f8dd65083 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -284,7 +284,9 @@ See `run-hooks'." "\\|-module" "\\)\\)\\>" ;; Any whitespace and declared object. - "[ \t]*(?" + ;; The "(*" is for curried definitions, e.g., + ;; (define ((sum a) b) (+ a b)) + "[ \t]*(*" "\\(\\sw+\\)?") '(1 font-lock-keyword-face) '(6 (cond ((match-beginning 3) font-lock-function-name-face) -- 2.39.2