emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master b78583c: Indent python multiline strings to start and previous le


From: Lars Ingebrigtsen
Subject: master b78583c: Indent python multiline strings to start and previous levels
Date: Sun, 9 Aug 2020 14:45:02 -0400 (EDT)

branch: master
commit b78583cde7d8aaa1fa19c20975c03d689c78baef
Author: Carlos Pita <carlosjosepita@gmail.com>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    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).
---
 lisp/progmodes/python.el | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 3af55be..dcdadae 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]