bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#36884: Default python mode with electric-indent-mode sometimes inden


From: Andreas Röhler
Subject: bug#36884: Default python mode with electric-indent-mode sometimes indents empty lines
Date: Fri, 2 Aug 2019 12:39:17 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:60.0) Gecko/20100101 Thunderbird/60.8.0

All you need probably is calling C-j, not RET

There is certain confusion IMO in recent design, as

C-j is bound to electric-newline-and-maybe-indent

which works as I would expect from newline.


On 02.08.19 07:08, Jarosław Rzeszótko wrote:
Perhaps this behavior exists because there can also be a situation like this:

def test():
    print("test")
[cursor, on empty line in middle of indented block]
    print("test")

where what electric indent does after pressing RET (creates new line aligned to the print statements) makes sense. I think it is mostly irritating though, and editors I tested, Vim and Sublime Text, do not automatically indent in any of the situations I mentioned.

FWIW this works as a workaround for me:

(setq electric-indent-functions
      '((lambda (inserted-char)
          (when (eq major-mode 'python-mode)
            ;; Do not auto-indent after inserting any empty line
            (when (save-excursion
                    (previous-line)
                    (beginning-of-line)
                    (looking-at "^\s*$"))
              'no-indent)))))

Cheers,
Jarek

On Fri, Aug 2, 2019 at 3:26 AM Noam Postavsky <address@hidden> wrote:
Andreas Röhler <address@hidden> writes:

> AFAIU electric-indent-mode doesn't run a timer, cursor position alone
> would not trigger it.

electric-indent-mode works from post-self-insert-hook.  Not sure how
cursor position and timers are related.




reply via email to

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