From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Carlos Pita Newsgroups: gmane.emacs.bugs Subject: bug#37726: [PATCH] Indent python multiline strings to start and previous levels Date: Sun, 13 Oct 2019 01:29:26 -0300 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000f364600594c332a7" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="179378"; mail-complaints-to="usenet@blaine.gmane.org" To: 37726@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Oct 13 06:30:15 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iJVWG-000kW2-Ey for geb-bug-gnu-emacs@m.gmane.org; Sun, 13 Oct 2019 06:30:12 +0200 Original-Received: from localhost ([::1]:37512 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iJVWE-00063E-JX for geb-bug-gnu-emacs@m.gmane.org; Sun, 13 Oct 2019 00:30:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34836) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iJVW8-00062f-Bb for bug-gnu-emacs@gnu.org; Sun, 13 Oct 2019 00:30:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iJVW7-0007TP-99 for bug-gnu-emacs@gnu.org; Sun, 13 Oct 2019 00:30:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54158) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iJVW7-0007TL-61 for bug-gnu-emacs@gnu.org; Sun, 13 Oct 2019 00:30:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iJVW6-0004LK-Va for bug-gnu-emacs@gnu.org; Sun, 13 Oct 2019 00:30:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Carlos Pita Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 13 Oct 2019 04:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 37726 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.157094098516643 (code B ref -1); Sun, 13 Oct 2019 04:30:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 13 Oct 2019 04:29:45 +0000 Original-Received: from localhost ([127.0.0.1]:34746 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iJVVp-0004KN-54 for submit@debbugs.gnu.org; Sun, 13 Oct 2019 00:29:45 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:48238) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iJVVm-0004KE-Jh for submit@debbugs.gnu.org; Sun, 13 Oct 2019 00:29:43 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34797) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iJVVl-0005yq-Ce for bug-gnu-emacs@gnu.org; Sun, 13 Oct 2019 00:29:42 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iJVVk-0007M9-49 for bug-gnu-emacs@gnu.org; Sun, 13 Oct 2019 00:29:41 -0400 Original-Received: from mail-yb1-xb2c.google.com ([2607:f8b0:4864:20::b2c]:44896) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iJVVj-0007KR-Vj for bug-gnu-emacs@gnu.org; Sun, 13 Oct 2019 00:29:40 -0400 Original-Received: by mail-yb1-xb2c.google.com with SMTP id v1so4403881ybo.11 for ; Sat, 12 Oct 2019 21:29:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=eDIPTbj6q3hGg1t0g5duE8eVy1NSFPqEqH+PN1AVj4Q=; b=nkck72V3Hu0gjk0uAPV1aemx1LSo+36iUjuFvrepQSUus0vdpLvbSiAmPFy84sb+81 n6W8v9ZUeZ8IWzbrh3XvCufjeq65WIOfN6l0t/Ol9rwkV+rmqfDAH8EkP6ZQfrSjQSQV DPGMpfEnksF97N0ROC1hiP/oovZ6l4+V150vutNh1e23mmXI+OwpEBzx6jVMTwLdnqFi UcXKsgUmZ5La6sRsgqEWVYLrG1xHzb1nHBTmVTrC7LNQCFX3VdPY+nIqtzL8VpRSIgsJ xTFDoNrb2MAeK4U7F2RRMFEOs7IZbnrh35uYxzisvKAJvg32vtwK5cGB0NF6Byy5AXHi lPNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=eDIPTbj6q3hGg1t0g5duE8eVy1NSFPqEqH+PN1AVj4Q=; b=c59iPUzYysOL5jXyjoRYuHVB4knV1FfpVB8xm47jCrbb2XHUdjMO5a83TbaHShpiAP A3xZBvfaI0Wlpoer24P27uekBDKpe3TnQHWdkzFcEpHe71Zr5v8JZ+Wbuzcj+9GcaMLU q4rHmY9bzPpd3EvRR3qC0A+XMXLz0GqfqCPMw6+Wwyqm3K+efO3T6LIQKhXeud7zAhOo zjbsxPgXZGWZBAEvRDT7ObkGvOFQ8pIBUKDsVURh/3pMLnmjESw+Pqi7JTcTNHdSyLM0 Ks3GAqZzPJqRkBKVLR6F4bfVKoDgqx3p/cubIViaywB4dvthiB2U5zBYWuHuuAEv7zsY ObDg== X-Gm-Message-State: APjAAAWF7kxYVyd55VS2pueCtAEt5VfeYsG5fqNeyXnrsaiXVK2/S/Aj r9VAUVrODj/xeFLdj/IRn7TAAqRTFc+vHg4nMsdATEENDUA= X-Google-Smtp-Source: APXvYqxdCo4flkreM5CCB1ROpKvXDgejj4ufcLCbg1wOo8lDXfPaXp5UKxKAQ1ZV6Yb9f0H7Q06v5razpTsGIN02rSw= X-Received: by 2002:a25:be48:: with SMTP id d8mr16071369ybm.353.1570940977890; Sat, 12 Oct 2019 21:29:37 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:169096 Archived-At: --000000000000f364600594c332a7 Content-Type: text/plain; charset="UTF-8" This adds an additional indentation level that matches 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 that use indentation to convey meaning. For example: 0 4 8 This is the first item This is a sub item > > > Then pressing Tab while in the third line will iterate between 0, 4 and 8, starting in 8, then 4, then 0. Compare with the current implementation which will jump just between 0 and 4, which is not convenient when the subitem is more than one line. A cursory google/reddit search will show that this is a problem for some people. Best regards -- Carlos --000000000000f364600594c332a7 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Indent-python-multiline-strings-to-start-and-previou.patch" Content-Disposition: attachment; filename="0001-Indent-python-multiline-strings-to-start-and-previou.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1ohmqzq0 RnJvbSAyMjgwMzA2N2Y5MTE3NzcyZjk1NGFhNWFiZWM0NDg3ZDIzNGRmMmE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtZW1lcGxleCA8Y2FybG9zam9zZXBpdGFAZ21haWwuY29tPgpE YXRlOiBTYXQsIDEyIE9jdCAyMDE5IDE3OjA0OjAxIC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gSW5k ZW50IHB5dGhvbiBtdWx0aWxpbmUgc3RyaW5ncyB0byBzdGFydCBhbmQgcHJldmlvdXMgbGV2ZWxz CgoqIHByb2dtb2Rlcy9weXRob24uZWwgKHB5dGhvbi1pbmRlbnQtLWNhbGN1bGF0ZS1pbmRlbnRh dGlvbik6IGFkZCBhbgphZGRpdGlvbmFsIGluZGVudGF0aW9uIHBvaW50IHRvIG1hdGNoIGluZGVu dGF0aW9uIG9mIHByZXZpb3VzIGxpbmUgaW4KYSBtdWx0aWxpbmUgc3RyaW5nLiBUaGVuIFRhYiBp dGVyYXRlcyBiZXR3ZWVuIDAsIHRoZSBzdGFydCBpbmRlbnRhdGlvbgpsZXZlbCBhbmQgdGhlIHBy ZXZpb3VzIGxpbmUgbGV2ZWwuIFRoaXMgaXMgdXNlZnVsIHdoZW4gd3JpdGluZwpkb2NzdHJpbmdz IGluIG51bXB5L2dvb2dsZSBmb3JtYXRzLgotLS0KIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCB8 IDE4ICsrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks IDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIGIv bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IGFlNWFmZjMuLmYyYTg4ZjkgMTAwNjQ0Ci0t LSBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9weXRob24u ZWwKQEAgLTEsMyArMSw0IEBACisKIDs7OyBweXRob24uZWwgLS0tIFB5dGhvbidzIGZseWluZyBj aXJjdXMgc3VwcG9ydCBmb3IgRW1hY3MgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KIAogOzsg Q29weXJpZ2h0IChDKSAyMDAzLTIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBA IC0xMDY5LDExICsxMDcwLDIwIEBAIHB5dGhvbi1pbmRlbnQtLWNhbGN1bGF0ZS1pbmRlbnRhdGlv bgogICAgICAgICAoYCg6bm8taW5kZW50IC4gLF8pIChwcm9nLWZpcnN0LWNvbHVtbikpIDsgdXN1 YWxseSAwCiAgICAgICAgIChgKCwob3IgOmFmdGVyLWxpbmUKICAgICAgICAgICAgICAgICA6YWZ0 ZXItY29tbWVudAotICAgICAgICAgICAgICAgIDppbnNpZGUtc3RyaW5nCiAgICAgICAgICAgICAg ICAgOmFmdGVyLWJhY2tzbGFzaCkgLiAsc3RhcnQpCiAgICAgICAgICA7OyBDb3B5IHByZXZpb3Vz IGluZGVudGF0aW9uLgogICAgICAgICAgKGdvdG8tY2hhciBzdGFydCkKICAgICAgICAgIChjdXJy ZW50LWluZGVudGF0aW9uKSkKKyAgICAgICAgKGAoLChvciA6aW5zaWRlLXN0cmluZworICAgICAg ICAgICAgICAgIDppbnNpZGUtZG9jc3RyaW5nKSAuICxzdGFydCkKKyAgICAgICAgIDs7IENvcHkg cHJldmlvdXMgaW5kZW50YXRpb24gaW5zaWRlIHN0cmluZworICAgICAgICAgKGxldCAoKHByZXYg KHByb2duIChmb3J3YXJkLWxpbmUgLTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1 cnJlbnQtaW5kZW50YXRpb24pKSkKKyAgICAgICAgICAgICAgIChiYXNlIChwcm9nbiAoZ290by1j aGFyIHN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVudGF0 aW9uKSkpKQorICAgICAgICAgICAoaWYgKC89IHByZXYgYmFzZSkKKyAgICAgICAgICAgICAgIChz b3J0IChsaXN0IDAgcHJldiBiYXNlKSAjJzwpCisgICAgICAgICAgICAgYmFzZSkpKQogICAgICAg ICAoYCgsKG9yIDppbnNpZGUtcGFyZW4tYXQtY2xvc2luZy1wYXJlbgogICAgICAgICAgICAgICAg IDppbnNpZGUtcGFyZW4tYXQtY2xvc2luZy1uZXN0ZWQtcGFyZW4pIC4gLHN0YXJ0KQogICAgICAg ICAgKGdvdG8tY2hhciAoKyAxIHN0YXJ0KSkKQEAgLTEwODIsMTIgKzEwOTIsNiBAQCBweXRob24t aW5kZW50LS1jYWxjdWxhdGUtaW5kZW50YXRpb24KICAgICAgICAgICAgICAoY3VycmVudC1pbmRl bnRhdGlvbikKICAgICAgICAgICAgOzsgQWxpZ24gd2l0aCBvcGVuaW5nIHBhcmVuLgogICAgICAg ICAgICAoY3VycmVudC1jb2x1bW4pKSkKLSAgICAgICAgKGAoOmluc2lkZS1kb2NzdHJpbmcgLiAs c3RhcnQpCi0gICAgICAgICAobGV0KiAoKGxpbmUtaW5kZW50YXRpb24gKGN1cnJlbnQtaW5kZW50 YXRpb24pKQotICAgICAgICAgICAgICAgIChiYXNlLWluZGVudCAocHJvZ24KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHN0YXJ0KQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjdXJyZW50LWluZGVudGF0aW9uKSkpKQotICAgICAgICAgICAobWF4IGxp bmUtaW5kZW50YXRpb24gYmFzZS1pbmRlbnQpKSkKICAgICAgICAgKGAoLChvciA6YWZ0ZXItYmxv Y2stc3RhcnQKICAgICAgICAgICAgICAgICA6YWZ0ZXItYmFja3NsYXNoLWZpcnN0LWxpbmUKICAg ICAgICAgICAgICAgICA6YWZ0ZXItYmFja3NsYXNoLWFzc2lnbm1lbnQtY29udGludWF0aW9uCi0t IAoyLjIwLjEKCg== --000000000000f364600594c332a7--