From: Carlos Pita Date: Sun, 9 Aug 2020 18:44:50 +0000 (+0200) Subject: Indent python multiline strings to start and previous levels X-Git-Tag: emacs-28.0.90~6722 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b78583cde7d8aaa1fa19c20975c03d689c78baef;p=emacs.git Indent python multiline strings to start and previous levels * progmodes/python.el (python-indent--calculate-indentation): Add an additional indentation point to match indentation of previous line in a multiline string. Then Tab iterates between 0, the start indentation level and the previous line level (bug#37726). --- diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 3af55be4a19..dcdadae0c4b 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1070,11 +1070,18 @@ possibilities can be narrowed to specific indentation points." (`(:no-indent . ,_) (prog-first-column)) ; usually 0 (`(,(or :after-line :after-comment - :inside-string :after-backslash) . ,start) ;; Copy previous indentation. (goto-char start) (current-indentation)) + (`(,(or :inside-string + :inside-docstring) . ,start) + ;; Copy previous indentation inside string + (let ((prev (progn (forward-line -1) + (current-indentation))) + (base (progn (goto-char start) + (current-column)))) + (sort (delete-dups (list 0 prev base)) #'<))) (`(,(or :inside-paren-at-closing-paren :inside-paren-at-closing-nested-paren) . ,start) (goto-char (+ 1 start)) @@ -1083,12 +1090,6 @@ possibilities can be narrowed to specific indentation points." (current-indentation) ;; Align with opening paren. (current-column))) - (`(:inside-docstring . ,start) - (let* ((line-indentation (current-indentation)) - (base-indent (progn - (goto-char start) - (current-indentation)))) - (max line-indentation base-indent))) (`(,(or :after-block-start :after-backslash-first-line :after-backslash-assignment-continuation