Subject: Re: bug#19691: closed (24.4; python.el: indentation RFE)

From: Carlos Pita <[email-masked]>
Date: Fri, 30 Jan 2015 07:18:13 -0300

Hi Fabian,

I was thinking a bit more about this after my report and I concluded
that a simpler approach based on the recommendations of pep8 could fit
the bill: two consecutive blank lines can be considered as an
"indentation context" that finishes a top level definition, so the
next line will have no indentation at all. I've already implemented
this and could post a patch later if you want, but it's a pretty
trivial one and I'm sure you would do it better than me.

Cheers
--
Carlos

On Fri, Jan 30, 2015 at 12:53 AM, GNU bug Tracking System
<[email-masked]> wrote:
> Your bug report
>
> #19691: 24.4; python.el: indentation RFE
>
> which was filed against the emacs package, has been closed.
>
> The explanation is attached below, along with your original report.
> If you require more details, please reply to [email-masked].
>
> --
> 19691: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19691
> GNU Bug Tracking System
> Contact [email-masked] with problems
>
>
> ---------- Forwarded message ----------
> From: "Fabián Ezequiel Gallina" <[email-masked]>
> To: [email-masked]
> Cc:
> Date: Fri, 30 Jan 2015 00:52:32 -0300
> Subject: 24.4; python.el: indentation RFE
> tags 19691 + notabug
> quit
>
>
> Hi Carlos,
>
> The functionality already exists, it's a matter of toggling
> `electric-indent-mode` OR alternate between using RET and `C-j` for
> creating a newline (depending the case).
>
> When `electric-indent-mode` is enabled, you can achieve what you want by
> using `C-j`, while RET would indent just like you see right now.
>
> When `electric-indent-mode` is disabled, you can achieve what you want
> by using RET, and `C-j` would indent.
>
> If what you want is to keep the current column in places where there are
> several indentation levels involved, then `C-a C-j` or `C-a RET`
> (depending on the status `electric-indent-mode`) will help.
>
>
>
> Cheers,
> Fabián
>
>
>
> ---------- Forwarded message ----------
> From: Carlos Pita <[email-masked]>
> To: [email-masked]
> Cc: [email-masked]
> Date: Mon, 26 Jan 2015 11:25:18 -0300
> Subject: 24.4; python.el: indentation RFE
> When you're in a blank line and press Enter, IMHO it would be better if
> python.el kept the cursor column position, instead of restoring the last
> non-blank line indentation level.
>
> For example, say the cursor is X:
>
> def f():
>     pass
> X
>
> When I press Enter most often I don't want to get:
>
> def f():
>     pass
>
>     X
>
> Instead, I think a more sensible default behaviour would be:
>
> def f():
>     pass
>
> X
>
> That is, to keep the cursor vertical position. This is consistent with
> the criterion of auto-indenting up to the indentation of last (both
> blank or non-blank) line, except for the technicality that a blank last
> line is not really indented... although you still have a point position
> there to infer desired indentation for the new line.
>
> Maybe this should be made a customizable option.
>
> What do you think? I'll try to submit a patch later today.
>
>
>