python-info-dedenter-opening-block-positions: Fix to support "bare" match
* lisp/progmodes/python.el (python-info-dedenter-opening-block-positions): Make the check stricter. Require that block starts only at indentation. * test/lisp/progmodes/python-tests.el (python-indent-after-bare-match): Another test (bug#62031).
This commit is contained in:
parent
01b65d442a
commit
29228e24f2
2 changed files with 17 additions and 1 deletions
|
@ -5792,7 +5792,9 @@ likely an invalid python file."
|
||||||
(while (python-nav--syntactically
|
(while (python-nav--syntactically
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(cl-loop while (re-search-backward (python-rx block-start) nil t)
|
(cl-loop while (re-search-backward (python-rx block-start) nil t)
|
||||||
if (memq (char-before) '(nil ?\s ?\t ?\n))
|
if (save-match-data
|
||||||
|
(looking-back (rx line-start (* whitespace))
|
||||||
|
(line-beginning-position)))
|
||||||
return t))
|
return t))
|
||||||
#'<)
|
#'<)
|
||||||
(let ((indentation (current-indentation)))
|
(let ((indentation (current-indentation)))
|
||||||
|
|
|
@ -1994,6 +1994,20 @@ def test_re(string):
|
||||||
(python-tests-look-at "else:")
|
(python-tests-look-at "else:")
|
||||||
(should (= (python-indent-calculate-indentation) 4))))
|
(should (= (python-indent-calculate-indentation) 4))))
|
||||||
|
|
||||||
|
(ert-deftest python-indent-after-bare-match ()
|
||||||
|
"Test BUG 62031 regression."
|
||||||
|
(python-tests-with-temp-buffer
|
||||||
|
"
|
||||||
|
from re import match
|
||||||
|
|
||||||
|
def test_re(string):
|
||||||
|
if match('^[a-c]+$', string):
|
||||||
|
print('yes')
|
||||||
|
else:
|
||||||
|
"
|
||||||
|
(python-tests-look-at "else:")
|
||||||
|
(should (= (python-indent-calculate-indentation) 4))))
|
||||||
|
|
||||||
|
|
||||||
;;; Filling
|
;;; Filling
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue