]> code.delx.au - gnu-emacs-elpa/commitdiff
New option: js2-imenu-split-string-identifiers
authorDmitry Gutov <dgutov@yandex.ru>
Mon, 18 Nov 2013 23:16:20 +0000 (01:16 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Mon, 18 Nov 2013 23:16:34 +0000 (01:16 +0200)
#123

js2-imenu-extras.el

index 4136291d0f8dc1c43e5f22e3c490ba53a6f75eaf..a431989317285e16123c0aece9fdf2d77de5b3a3 100644 (file)
@@ -100,6 +100,12 @@ prefix any functions defined inside the IIFE with the module name."
   :type 'boolean\r
   :group 'js2-imenu)\r
 \r
+(defcustom js2-imenu-split-string-identifiers t\r
+  "When non-nil, split string identifiers on dots.\r
+Currently used for jQuery widgets, Dojo and Enyo declarations."\r
+  :type 'boolean\r
+  :group 'js2-imenu)\r
+\r
 ;;;###autoload\r
 (defun js2-imenu-extras-setup ()\r
   (when js2-imenu-enabled-frameworks\r
@@ -137,7 +143,10 @@ prefix any functions defined inside the IIFE with the module name."
 (defun js2-imenu-record-string-declare ()\r
   (js2-imenu-record-extend-first-arg\r
    (1- (point)) 'js2-string-node-p\r
-   (lambda (node) (split-string (js2-string-node-value node) "\\." t))))\r
+   (lambda (node)\r
+     (if js2-imenu-split-string-identifiers\r
+         (split-string (js2-string-node-value node) "\\." t)\r
+       (list (js2-string-node-value node))))))\r
 \r
 (defun js2-imenu-record-extend-first-arg (point pred qname-fn)\r
   (let* ((node (js2-node-at-point point))\r
@@ -183,7 +192,10 @@ prefix any functions defined inside the IIFE with the module name."
                                 (js2-string-node-p value))\r
                        (js2-string-node-value value))))))\r
         (when name-value\r
-          (js2-record-object-literal options (split-string name-value "\\.")\r
+          (js2-record-object-literal options\r
+                                     (if js2-imenu-split-string-identifiers\r
+                                         (split-string name-value "\\.")\r
+                                       (list name-value))\r
                                      (js2-node-abs-pos options)))))))\r
 \r
 (defun js2-imenu-walk-ast ()\r