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

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

[elpa] master b2af331 083/110: Special-case unary + and -


From: Dmitry Gutov
Subject: [elpa] master b2af331 083/110: Special-case unary + and -
Date: Thu, 23 Jun 2016 01:13:01 +0000 (UTC)

branch: master
commit b2af3314dbc039f2f34c27b725f7e32dd7b5bd1a
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    Special-case unary + and -
    
    Fixes #322
---
 js2-old-indent.el |   24 ++++++++++--------------
 tests/indent.el   |    7 +++++++
 2 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/js2-old-indent.el b/js2-old-indent.el
index d855b9e..d8932d6 100644
--- a/js2-old-indent.el
+++ b/js2-old-indent.el
@@ -239,20 +239,16 @@ and comments have been removed."
   "Return non-nil if the current line continues an expression."
   (save-excursion
     (back-to-indentation)
-    (or (js2-looking-at-operator-p)
-        (when (catch 'found
-                (while (and (re-search-backward "\n" nil t)
-                            (let ((state (syntax-ppss)))
-                              (when (nth 4 state)
-                                (goto-char (nth 8 state))) ;; skip comments
-                              (skip-chars-backward " \t")
-                              (if (bolp)
-                                  t
-                                (throw 'found t))))))
-          (backward-char)
-          (when (js2-looking-at-operator-p)
-            (backward-char)
-            (not (looking-at "\\*\\|\\+\\+\\|--\\|/[/*]")))))))
+    (if (js2-looking-at-operator-p)
+        (or (not (memq (char-after) '(?- ?+)))
+            (progn
+              (forward-comment (- (point)))
+              (not (memq (char-before) '(?, ?\[ ?\()))))
+      (forward-comment (- (point)))
+      (or (bobp) (backward-char))
+      (when (js2-looking-at-operator-p)
+        (backward-char)
+        (not (looking-at "\\*\\|\\+\\+\\|--\\|/[/*]"))))))
 
 (defun js2-end-of-do-while-loop-p ()
   "Return non-nil if word after point is `while' of a do-while
diff --git a/tests/indent.el b/tests/indent.el
index b0235ff..91b8656 100644
--- a/tests/indent.el
+++ b/tests/indent.el
@@ -179,6 +179,13 @@
   |}"
   :bind ((js2-indent-switch-body t)))
 
+(js2-deftest-indent continued-expression-vs-unary-minus
+  "var arr = [
+  |  -1, 2,
+  |  -3, 4 +
+  |    -5
+  |];")
+
 (js2-deftest-indent jsx-one-line
   "var foo = <div></div>;")
 



reply via email to

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