emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master a4a136c 74/79: Refactor defun / defadvice name handling.


From: Jackson Ray Hamilton
Subject: [elpa] master a4a136c 74/79: Refactor defun / defadvice name handling.
Date: Sun, 14 Jun 2015 00:05:48 +0000

branch: master
commit a4a136c4d800d9f0ffb18da45634e36bb3dfceed
Author: Jackson Ray Hamilton <address@hidden>
Commit: Jackson Ray Hamilton <address@hidden>

    Refactor defun / defadvice name handling.
---
 context-coloring.el |   62 ++++++++++++++++++++------------------------------
 1 files changed, 25 insertions(+), 37 deletions(-)

diff --git a/context-coloring.el b/context-coloring.el
index b1bede5..77c2d55 100644
--- a/context-coloring.el
+++ b/context-coloring.el
@@ -641,8 +641,9 @@ no header, skip past the sexp at START."
     (goto-char start)
     (context-coloring-elisp-forward-sexp))))
 
-(defun context-coloring-elisp-colorize-defun ()
-  "Color the `defun' at point."
+(defun context-coloring-elisp-colorize-defun-like (callback)
+  "Color the defun-like function at point, parsing the header
+with CALLBACK."
   (let ((start (point)))
     (context-coloring-elisp-colorize-scope
      (lambda ()
@@ -655,48 +656,35 @@ no header, skip past the sexp at START."
                  (point))
           0)
          (context-coloring-elisp-forward-sws)
-         (context-coloring-elisp-parse-header
-          'context-coloring-elisp-parse-arglist start))
+         (context-coloring-elisp-parse-header callback start))
         (t
          ;; Skip it.
          (goto-char start)
          (context-coloring-elisp-forward-sexp)))))))
 
+(defun context-coloring-elisp-colorize-defun ()
+  "Color the `defun' at point."
+  (context-coloring-elisp-colorize-defun-like
+   'context-coloring-elisp-parse-arglist))
+
 (defun context-coloring-elisp-colorize-defadvice ()
   "Color the `defadvice' at point."
-  (let ((start (point)))
-    (context-coloring-elisp-colorize-scope
-     (lambda ()
-       (cond
-        ((context-coloring-elisp-identifier-p 
(context-coloring-get-syntax-code))
-         ;; Color the advised function's name with the top-level color.
-         (context-coloring-colorize-region
-          (point)
-          (progn (forward-sexp)
-                 (point))
-          0)
-         (context-coloring-elisp-forward-sws)
-         (context-coloring-elisp-parse-header
-          (lambda ()
-            (let (syntax-code)
-              ;; Enter.
-              (forward-char)
-              (while (/= (setq syntax-code (context-coloring-get-syntax-code))
-                         context-coloring-CLOSE-PARENTHESIS-CODE)
-                (cond
-                 ((= syntax-code context-coloring-OPEN-PARENTHESIS-CODE)
-                  (context-coloring-elisp-parse-arglist))
-                 (t
-                  ;; Ignore artifacts.
-                  (context-coloring-elisp-forward-sexp)))
-                (context-coloring-elisp-forward-sws))
-              ;; Exit.
-              (forward-char)))
-          start))
-        (t
-         ;; Skip it.
-         (goto-char start)
-         (context-coloring-elisp-forward-sexp)))))))
+  (context-coloring-elisp-colorize-defun-like
+   (lambda ()
+     (let (syntax-code)
+       ;; Enter.
+       (forward-char)
+       (while (/= (setq syntax-code (context-coloring-get-syntax-code))
+                  context-coloring-CLOSE-PARENTHESIS-CODE)
+         (cond
+          ((= syntax-code context-coloring-OPEN-PARENTHESIS-CODE)
+           (context-coloring-elisp-parse-arglist))
+          (t
+           ;; Ignore artifacts.
+           (context-coloring-elisp-forward-sexp)))
+         (context-coloring-elisp-forward-sws))
+       ;; Exit.
+       (forward-char)))))
 
 (defun context-coloring-elisp-colorize-lambda-like (callback)
   "Color the lambda-like function at point, parsing the header



reply via email to

[Prev in Thread] Current Thread [Next in Thread]