]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix indentation for multi-line block start in Python mode
authorkobarity <kobarity@gmail.com>
Mon, 7 Nov 2022 13:24:44 +0000 (22:24 +0900)
committerEli Zaretskii <eliz@gnu.org>
Thu, 10 Nov 2022 10:23:52 +0000 (12:23 +0200)
* lisp/progmodes/python.el
(python-info-dedenter-opening-block-positions): Fix for multi-line
block start.
* test/lisp/progmodes/python-tests.el
(python-info-dedenter-opening-block-positions-6): New test. (Bug#59009)

lisp/progmodes/python.el
test/lisp/progmodes/python-tests.el

index cec0d54a447bbfd4e62f10604142a8a16aa720d2..a734e06149e3235359c6033cd17f0b85319d1511 100644 (file)
@@ -5377,6 +5377,7 @@ likely an invalid python file."
                            ;; block and the current line, otherwise it
                            ;; is not an opening block.
                            (save-excursion
+                             (python-nav-end-of-statement)
                              (forward-line)
                              (let ((no-back-indent t))
                                (save-match-data
index 8330525394cd54a7aec6f425f447e5009b6022ae..f871b7bc7d9039dfffb670f82487dbebe7b889a6 100644 (file)
@@ -5592,6 +5592,23 @@ else:
      (equal (list (python-tests-look-at "else:" -1 t))
             (python-info-dedenter-opening-block-positions)))))
 
+(ert-deftest python-info-dedenter-opening-block-positions-6 ()
+  "Test multiline block start."
+  (python-tests-with-temp-buffer
+   "
+def func():
+    if (
+        cond1 or
+        cond2
+    ):
+        something()
+        else
+"
+   (python-tests-look-at "else\n")
+    (should
+     (equal (list (python-tests-look-at "if (" -1 t))
+            (python-info-dedenter-opening-block-positions)))))
+
 (ert-deftest python-info-dedenter-opening-block-message-1 ()
   "Test dedenters inside strings are ignored."
   (python-tests-with-temp-buffer