Fix Python indentation of block continuation
* lisp/progmodes/python.el (python-indent--calculate-indentation): Fix indentation of :after-backslash-block-continuation. * test/lisp/progmodes/python-tests.el (python-indent-after-backslash-6): New test (bug#57262).
This commit is contained in:
parent
74e830768d
commit
b9c6c0fb7b
2 changed files with 26 additions and 1 deletions
|
@ -1238,8 +1238,14 @@ possibilities can be narrowed to specific indentation points."
|
|||
;; Add one indentation level.
|
||||
(goto-char start)
|
||||
(+ (current-indentation) python-indent-offset))
|
||||
(`(:after-backslash-block-continuation . ,start)
|
||||
(goto-char start)
|
||||
(let ((column (current-column)))
|
||||
(if (= column (+ (current-indentation) python-indent-offset))
|
||||
;; Add one level to avoid same indent as next logical line.
|
||||
(+ column python-indent-offset)
|
||||
column)))
|
||||
(`(,(or :inside-paren
|
||||
:after-backslash-block-continuation
|
||||
:after-backslash-dotted-continuation) . ,start)
|
||||
;; Use the column given by the context.
|
||||
(goto-char start)
|
||||
|
|
|
@ -1250,6 +1250,25 @@ def delete_all_things():
|
|||
:after-backslash-dotted-continuation))
|
||||
(should (= (python-indent-calculate-indentation) 16))))
|
||||
|
||||
(ert-deftest python-indent-after-backslash-6 ()
|
||||
"Backslash continuation from for block."
|
||||
(python-tests-with-temp-buffer
|
||||
"
|
||||
for long_variable_name \\
|
||||
in (1, 2):
|
||||
print(long_variable_name)
|
||||
"
|
||||
(python-tests-look-at "for long_variable_name \\")
|
||||
(should (eq (car (python-indent-context)) :no-indent))
|
||||
(should (= (python-indent-calculate-indentation) 0))
|
||||
(python-tests-look-at "in (1, 2):")
|
||||
(should (eq (car (python-indent-context))
|
||||
:after-backslash-block-continuation))
|
||||
(should (= (python-indent-calculate-indentation) 8))
|
||||
(python-tests-look-at "print(long_variable_name)")
|
||||
(should (eq (car (python-indent-context)) :after-block-start))
|
||||
(should (= (python-indent-calculate-indentation) 4))))
|
||||
|
||||
(ert-deftest python-indent-block-enders-1 ()
|
||||
"Test de-indentation for pass keyword."
|
||||
(python-tests-with-temp-buffer
|
||||
|
|
Loading…
Add table
Reference in a new issue