|
From: | Jarosław Rzeszótko |
Subject: | bug#36884: Default python mode with electric-indent-mode sometimes indents empty lines |
Date: | Fri, 2 Aug 2019 16:55:03 +0200 |
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 <npostavs@gmail.com> wrote:
Andreas Röhler <andreas.roehler@easy-emacs.de> 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.
[Prev in Thread] | Current Thread | [Next in Thread] |