1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-23 10:34:07 +00:00

Fix two js indentation problems

Fix intentation problems reported in
https://github.com/mooz/js2-mode/issues/463.
* lisp/progmodes/js.el (js--continued-expression-p):
Check syntax state after /.
(js--multi-line-declaration-indentation):
Check syntax state before "const".
This commit is contained in:
Dmitry Gutov 2017-10-26 02:43:33 +03:00
parent b8cf159bbc
commit e562356c3f
2 changed files with 24 additions and 6 deletions

View File

@ -1834,10 +1834,15 @@ This performs fontification according to `js--class-styles'."
(save-excursion
(back-to-indentation)
(if (js--looking-at-operator-p)
(or (not (memq (char-after) '(?- ?+)))
(progn
(forward-comment (- (point)))
(not (memq (char-before) '(?, ?\[ ?\()))))
(if (eq (char-after) ?/)
(prog1
(not (nth 3 (syntax-ppss (1+ (point)))))
(forward-char -1))
(or
(not (memq (char-after) '(?- ?+)))
(progn
(forward-comment (- (point)))
(not (memq (char-before) '(?, ?\[ ?\())))))
(and (js--find-newline-backward)
(progn
(skip-chars-backward " \t")
@ -1972,8 +1977,12 @@ statement spanning multiple lines; otherwise, return nil."
(save-excursion
(back-to-indentation)
(when (not (looking-at js--declaration-keyword-re))
(when (looking-at js--indent-operator-re)
(goto-char (match-end 0)))
(let ((pt (point)))
(when (looking-at js--indent-operator-re)
(goto-char (match-end 0)))
;; The "operator" is probably a regexp literal opener.
(when (nth 3 (syntax-ppss))
(goto-char pt)))
(while (and (not at-opening-bracket)
(not (bobp))
(let ((pos (point)))

View File

@ -7,6 +7,9 @@ let c = 1,
var e = 100500,
+ 1;
// Don't misinterpret "const"
/const/
function test ()
{
return /[/]/.test ('/') // (bug#19397)
@ -135,6 +138,12 @@ if (1) {
: 4
}
// Regexp is not a continuation
bar(
"string arg1",
/abc/
)
// Local Variables:
// indent-tabs-mode: nil
// js-indent-level: 2