From: Carlos Pita <carlosjosepita@gmail.com>
To: 37726@debbugs.gnu.org
Subject: bug#37726:
Date: Sun, 13 Oct 2019 15:35:32 -0300 [thread overview]
Message-ID: <CAELgYhdGFr1=zBAC+J_+8snzHs6i4sNuoMAZ3Mw+JvxoUP+CHQ@mail.gmail.com> (raw)
In-Reply-To: <CAELgYhe_QAfnD+qyviajUj0r8_mB1PtRRRPkbLrYRLoPbzF63Q@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 91 bytes --]
Here is a version of the patch rebased on top of emacs-26 (the other
was for master / 27).
[-- Attachment #2: 0001-Indent-python-multiline-strings-to-start-and-previou.patch --]
[-- Type: text/x-patch, Size: 2115 bytes --]
From 1890c032210a022b9a0b928e37707e71b074e135 Mon Sep 17 00:00:00 2001
From: memeplex <carlosjosepita@gmail.com>
Date: Sun, 13 Oct 2019 14:29:55 -0300
Subject: [PATCH] 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. This is useful when writing
docstrings in numpy/google formats.
---
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 8e7d9f2..9432bc3 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1035,19 +1035,20 @@ possibilities can be narrowed to specific indentation points."
(`(:no-indent . ,_) (prog-first-column)) ; usually 0
(`(,(or :after-line
:after-comment
- :inside-string
:after-backslash
:inside-paren-at-closing-paren
:inside-paren-at-closing-nested-paren) . ,start)
;; Copy previous indentation.
(goto-char start)
(current-indentation))
- (`(:inside-docstring . ,start)
- (let* ((line-indentation (current-indentation))
- (base-indent (progn
- (goto-char start)
- (current-indentation))))
- (max line-indentation base-indent)))
+ (`(,(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 :after-block-start
:after-backslash-first-line
:after-backslash-assignment-continuation
--
2.20.1
next prev parent reply other threads:[~2019-10-13 18:35 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-13 4:29 bug#37726: [PATCH] Indent python multiline strings to start and previous levels Carlos Pita
2019-10-13 5:04 ` bug#37726: Carlos Pita
2019-10-13 18:35 ` Carlos Pita [this message]
2019-10-13 19:06 ` bug#37726: Carlos Pita
2019-10-19 8:32 ` bug#37726: Carlos Pita
2019-10-23 0:25 ` bug#37726: [PATCH] Indent python multiline strings to start and previous levels Noam Postavsky
2020-08-09 18:46 ` bug#37726: Lars Ingebrigtsen
2020-08-09 21:44 ` bug#37726: Glenn Morris
2020-08-09 21:50 ` bug#37726: Lars Ingebrigtsen
2020-08-09 21:54 ` bug#37726: Lars Ingebrigtsen
2020-10-13 3:56 ` bug#37726: Lars Ingebrigtsen
2019-10-23 0:34 ` bug#37726: [PATCH] Indent python multiline strings to start and previous levels Noam Postavsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAELgYhdGFr1=zBAC+J_+8snzHs6i4sNuoMAZ3Mw+JvxoUP+CHQ@mail.gmail.com' \
--to=carlosjosepita@gmail.com \
--cc=37726@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).