1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-04 11:40:22 +00:00

(js--continued-expression-p): Special-case unary plus and minus

* lisp/progmodes/js.el (js--continued-expression-p): Make an
effort to recognize unary plus and minus, in the contexts where
they make sense (https://github.com/mooz/js2-mode/issues/322).
This commit is contained in:
Dmitry Gutov 2016-04-02 03:02:03 +03:00
parent 2d02a5f729
commit c28f87a53d
2 changed files with 20 additions and 10 deletions

View File

@ -1770,16 +1770,20 @@ This performs fontification according to `js--class-styles'."
"Return non-nil if the current line continues an expression."
(save-excursion
(back-to-indentation)
(or (js--looking-at-operator-p)
(and (js--re-search-backward "\n" nil t)
(progn
(skip-chars-backward " \t")
(or (bobp) (backward-char))
(and (> (point) (point-min))
(save-excursion (backward-char) (not (looking-at "[/*]/")))
(js--looking-at-operator-p)
(and (progn (backward-char)
(not (looking-at "+\\+\\|--\\|/[/*]"))))))))))
(if (js--looking-at-operator-p)
(or (not (memq (char-after) '(?- ?+)))
(progn
(forward-comment (- (point)))
(not (memq (char-before) '(?, ?\[ ?\()))))
(and (js--re-search-backward "\n" nil t)
(progn
(skip-chars-backward " \t")
(or (bobp) (backward-char))
(and (> (point) (point-min))
(save-excursion (backward-char) (not (looking-at "[/*]/")))
(js--looking-at-operator-p)
(and (progn (backward-char)
(not (looking-at "+\\+\\|--\\|/[/*]"))))))))))
(defun js--end-of-do-while-loop-p ()

View File

@ -95,6 +95,12 @@ Foobar
console.log(num);
});
var arr = [
-1, 2,
-3, 4 +
-5
];
// Local Variables:
// indent-tabs-mode: nil
// js-indent-level: 2