]> code.delx.au - gnu-emacs-elpa/commitdiff
Improve `js-multiline-decl-indentation'
authorDmitry Gutov <dgutov@yandex.ru>
Mon, 25 Apr 2011 22:29:44 +0000 (02:29 +0400)
committerDmitry Gutov <dgutov@yandex.ru>
Mon, 25 Apr 2011 22:45:32 +0000 (02:45 +0400)
* Top-level let/var/const form could be indented to infinity
* Support declarations without assignment

js2-mode.el

index 205cd2597f911090f4dcf4ff03316b1c4d07afb1..5f1e3bc9ac638ae2583d308bc625293c2e88f417 100644 (file)
@@ -9934,18 +9934,20 @@ var o = {                               var bar = 2,
         at-opening-bracket)
     (save-excursion
       (back-to-indentation)
-      (when (looking-at (concat js2-mode-identifier-re "[ \t]*=[^=]"))
+      (when (and (not (looking-at js-declaration-keyword-re))
+                 (looking-at (concat js2-mode-identifier-re
+                                     "[ \t]*\\(?:=[^=]\\|\\,\\|;\\|$\\)")))
         (while (not (save-excursion
                       ;; unary ops
                       (skip-chars-backward "-+~! \t")
                       (or at-opening-bracket
                           ;; explicit semicolon
                           (save-excursion (js2-backward-sws)
-                                          (= (char-before) ?\;))
+                                          (eq (char-before) ?\;))
                           ;; implicit semicolon
                           (and (bolp)
                                (progn (js2-backward-sws)
-                                      (/= (char-before) ?,))
+                                      (not (eq (char-before) ?,)))
                                (progn (skip-chars-backward "[[:punct:]]")
                                       (not (looking-at js-indent-operator-re)))))))
           (condition-case err