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

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

[elpa] master 7001dce 201/271: Use js2-node-top-level-decl-p as a fast t


From: Jackson Ray Hamilton
Subject: [elpa] master 7001dce 201/271: Use js2-node-top-level-decl-p as a fast track.
Date: Thu, 05 Feb 2015 18:31:12 +0000

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

    Use js2-node-top-level-decl-p as a fast track.
---
 context-coloring.el |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/context-coloring.el b/context-coloring.el
index 283bddd..7005dcf 100644
--- a/context-coloring.el
+++ b/context-coloring.el
@@ -227,7 +227,6 @@ END (exclusive) with the face corresponding to LEVEL."
 
 ;;; js2-mode colorization
 
-;; TODO: Consider `js2-node-top-level-decl-p' as an optimization.
 (defsubst context-coloring-js2-scope-level (scope)
   "Gets the level of SCOPE."
   (let ((level 0)
@@ -244,6 +243,15 @@ END (exclusive) with the face corresponding to LEVEL."
       (setq scope enclosing-scope))
     level))
 
+(defsubst context-coloring-js2-name-node-level (node)
+  (cond ((js2-node-top-level-decl-p node)
+         0)
+        (t
+         (context-coloring-js2-scope-level
+          (js2-get-defining-scope
+           (js2-node-get-enclosing-scope node)
+           (js2-name-node-name node))))))
+
 (defsubst context-coloring-js2-local-name-node-p (node)
   "Determines if NODE is a js2-name-node representing a local
 variable."
@@ -283,10 +291,7 @@ generated by js2-mode."
           ((context-coloring-js2-local-name-node-p node)
            (context-coloring-js2-colorize-node
             node
-            (context-coloring-js2-scope-level
-             (js2-get-defining-scope
-              (js2-node-get-enclosing-scope node)
-              (js2-name-node-name node))))))
+            (context-coloring-js2-name-node-level node))))
          ;; The `t' indicates to search children.
          t)))))
 



reply via email to

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