summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Gutov <dgutov@yandex.ru>2023-03-09 17:24:54 +0200
committerDmitry Gutov <dgutov@yandex.ru>2023-03-09 17:31:21 +0200
commit29228e24f20954b93dccef4ac5d704ca31daa80c (patch)
treee691567c2a92435c4313774c5478a86bf5eeae2e
parent01b65d442ad681e6fef0db76451e668125a17038 (diff)
downloademacs-29228e24f20954b93dccef4ac5d704ca31daa80c.tar.gz
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).
-rw-r--r--lisp/progmodes/python.el4
-rw-r--r--test/lisp/progmodes/python-tests.el14
2 files changed, 17 insertions, 1 deletions
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 5b11d204de1..1980815bae9 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -5792,7 +5792,9 @@ likely an invalid python file."
(while (python-nav--syntactically
(lambda ()
(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))
#'<)
(let ((indentation (current-indentation)))
diff --git a/test/lisp/progmodes/python-tests.el b/test/lisp/progmodes/python-tests.el
index 7e2f66e9095..2568299bb66 100644
--- a/test/lisp/progmodes/python-tests.el
+++ b/test/lisp/progmodes/python-tests.el
@@ -1994,6 +1994,20 @@ def test_re(string):
(python-tests-look-at "else:")
(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