]> code.delx.au - gnu-emacs-elpa/commitdiff
Add support for React classes in js2-imenu-extras
authorJohn Mastro <john.b.mastro@gmail.com>
Sun, 19 Jan 2014 20:29:17 +0000 (12:29 -0800)
committerJohn Mastro <john.b.mastro@gmail.com>
Sun, 19 Jan 2014 20:29:17 +0000 (12:29 -0800)
Reuse the recorder function already present for Backbone extends. Rename
that function to js2-imenu-record-backbone-or-react and define
js2-imenu-record-backbone-extend and js2-imenu-record-react-class as
aliases of it.

js2-imenu-extras.el

index 3052cafedc12ab2960e5f0b5bfdf769cf547f6cd..19f2b510b1507e5c035eae5f7a5e0f1cdfa2794a 100644 (file)
 \r
     (:framework enyo\r
      :call-re   "\\_<enyo\\.kind\\s-*("\r
-     :recorder  js2-imenu-record-enyo-kind))\r
+     :recorder  js2-imenu-record-enyo-kind)\r
+\r
+    (:framework react\r
+     :call-re "\\_<React\\.createClass\\s-*("\r
+     :recorder js2-imenu-record-react-class))\r
   "List of JavaScript class definition or extension styles.\r
 \r
 :framework is a valid value in `js2-imenu-enabled-frameworks'.\r
@@ -158,7 +162,7 @@ Currently used for jQuery widgets, Dojo and Enyo declarations."
             do (js2-record-object-literal\r
                 arg (funcall qname-fn subject) (js2-node-abs-pos arg))))))\r
 \r
-(defun js2-imenu-record-backbone-extend ()\r
+(defun js2-imenu-record-backbone-or-react ()\r
   (let* ((node (js2-node-at-point (1- (point))))\r
          (args (js2-call-node-args node))\r
          (methods (first args))\r
@@ -173,6 +177,10 @@ Currently used for jQuery widgets, Dojo and Enyo declarations."
                                      (js2-compute-nested-prop-get subject)\r
                                      (js2-node-abs-pos methods)))))))\r
 \r
+(defalias 'js2-imenu-record-backbone-extend 'js2-imenu-record-backbone-or-react)\r
+\r
+(defalias 'js2-imenu-record-react-class 'js2-imenu-record-backbone-or-react)\r
+\r
 (defun js2-imenu-record-enyo-kind ()\r
   (let* ((node (js2-node-at-point (1- (point))))\r
          (args (js2-call-node-args node))\r