Subject: bug#36884: Default python mode with electric-indent-mode sometimes indents empty lines

From: Andreas Röhler <[email-masked]>
Date: Thu, 1 Aug 2019 09:56:53 +0200

On 01.08.19 09:06, Jarosław Rzeszótko wrote:
> When pressing enter with the cursor like this:
>
> def test():
>     print("test")
> [cursor]
>
> Emacs (26.1) correctly just inserts a blank line. However, with this:
>
> def test():
>     if True:
>           print("test")
> [cursor]
>
> Emacs inserts a blank line and indents it one level. With this:
>
> def test():
>     if True:
>         if False:
>               print("test")
> [cursor]
>
> it inserts a blank line and indents it two levels, etc. Moreover, with 
> two methods like this:
>
> def test1():
>     if True:
>           print("test")
>
> [cursor]def test2():
>     if True:
>           print("test")
>
> pressing enter will also indent the def block, instead of just 
> inserting the empty line.

Hi Jarosław,

python-mode.el developer here, just being interested.

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

Assume there is a command used from pos. Which? BTW the key alone 
doesn't tell enough, as RET and C-j changed binding recently. Reporting 
Emacs version will be useful.

Thanks,

Andreas