js--re-search-backward-inner: Fix infloop
Fix JS indentation infloop reported in https://github.com/mooz/js2-mode/issues/513. * lisp/progmodes/js.el (js--re-search-backward-inner): Account for multiline string literals. * test/manual/indent/js.js: New test example.
This commit is contained in:
parent
47679e6323
commit
b01a4295c2
2 changed files with 8 additions and 8 deletions
|
@ -785,7 +785,6 @@ macro as normal text."
|
|||
(defun js--re-search-backward-inner (regexp &optional bound count)
|
||||
"Auxiliary function for `js--re-search-backward'."
|
||||
(let ((parse)
|
||||
str-terminator
|
||||
(orig-macro-start
|
||||
(save-excursion
|
||||
(and (js--beginning-of-macro)
|
||||
|
@ -796,13 +795,7 @@ macro as normal text."
|
|||
(save-excursion (backward-char) (looking-at "/[/*]")))
|
||||
(forward-char))
|
||||
(setq parse (syntax-ppss))
|
||||
(cond ((setq str-terminator (nth 3 parse))
|
||||
(when (eq str-terminator t)
|
||||
(setq str-terminator ?/))
|
||||
(re-search-backward
|
||||
(concat "\\([^\\]\\|^\\)" (string str-terminator))
|
||||
(point-at-bol) t))
|
||||
((nth 7 parse)
|
||||
(cond ((nth 8 parse)
|
||||
(goto-char (nth 8 parse)))
|
||||
((or (nth 4 parse)
|
||||
(and (eq (char-before) ?/) (eq (char-after) ?*)))
|
||||
|
|
|
@ -144,6 +144,13 @@ bar(
|
|||
/abc/
|
||||
)
|
||||
|
||||
// No infloop inside js--re-search-backward-inner
|
||||
let b = {
|
||||
a : `
|
||||
//1
|
||||
`
|
||||
}
|
||||
|
||||
// Local Variables:
|
||||
// indent-tabs-mode: nil
|
||||
// js-indent-level: 2
|
||||
|
|
Loading…
Add table
Reference in a new issue