From: Carlos Pita <carlosjosepita@gmail.com>
To: 37726@debbugs.gnu.org
Subject: bug#37726:
Date: Sun, 13 Oct 2019 02:04:21 -0300 [thread overview]
Message-ID: <CAELgYhe_QAfnD+qyviajUj0r8_mB1PtRRRPkbLrYRLoPbzF63Q@mail.gmail.com> (raw)
In-Reply-To: <CAELgYhc7+VfVBSwKcsLJ9O16xXBZWAegrTBL5XGCmqxQdHswPw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 298 bytes --]
I've amended the previous patch so that it more conveniently align
string continuations to opening quotes, for example:
x = """aaaa
bbbb
> > >
If you prefer I could also add an extra level:
x = """aaaa
bbbb
> > > >
in order to support other styles of indentation.
[-- Attachment #2: 0001-Indent-python-multiline-strings-to-start-and-previou.patch --]
[-- Type: text/x-patch, Size: 2469 bytes --]
From f6aaefe6d1bf023e9f8a189bc4a497dcdd7e0211 Mon Sep 17 00:00:00 2001
From: memeplex <carlosjosepita@gmail.com>
Date: Sat, 12 Oct 2019 17:04:01 -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 | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index ae5aff3..33837f5 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1,3 +1,4 @@
+
;;; python.el --- Python's flying circus support for Emacs -*- lexical-binding: t -*-
;; Copyright (C) 2003-2019 Free Software Foundation, Inc.
@@ -1069,11 +1070,18 @@ python-indent--calculate-indentation
(`(: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))
@@ -1082,12 +1090,6 @@ python-indent--calculate-indentation
(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
--
2.20.1
next prev parent reply other threads:[~2019-10-13 5:04 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 ` Carlos Pita [this message]
2019-10-13 18:35 ` bug#37726: Carlos Pita
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=CAELgYhe_QAfnD+qyviajUj0r8_mB1PtRRRPkbLrYRLoPbzF63Q@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).