From f8df45f853752bb842af453dd05ccb64d990b767 Mon Sep 17 00:00:00 2001 From: kobarity Date: Mon, 7 Nov 2022 22:24:44 +0900 Subject: [PATCH] Fix indentation for multi-line block start in Python mode * 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 | 1 + test/lisp/progmodes/python-tests.el | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index cec0d54a447..a734e06149e 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -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 diff --git a/test/lisp/progmodes/python-tests.el b/test/lisp/progmodes/python-tests.el index 8330525394c..f871b7bc7d9 100644 --- a/test/lisp/progmodes/python-tests.el +++ b/test/lisp/progmodes/python-tests.el @@ -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 -- 2.39.5