Is there an easy way to control indents in Python

Terry Reedy tjreedy at udel.edu
Wed Oct 15 13:12:51 EDT 2014


On 10/15/2014 10:32 AM, Chris “Kwpolska” Warrick wrote:
> On Wed, Oct 15, 2014 at 9:27 AM, alex23 <wuwei23 at gmail.com> wrote:
>> On 15/10/2014 12:23 PM, Juan Christian wrote:
>>>
>>> Using PyCharm is easy:
>>>
>>> File > Settings > (IDE Settings) Editor > Smart Keys > Reformat on paste
>>>   > choose "Reformat Block"
>>
>>
>>
>> This isn't as straight forward as you imply. Say I have misindented code
>> like this:
>>
>>      if True:
>>      print 'true'
>>      else:
>>      print 'false'
>>      print 'done'
>>
>> If I select this block in PyCharm and reformat it, I get:
>>
>>      if True:
>>          print 'true'
>>      else:
>>      print 'false'
>>      print 'done'
>>
>> Which is still invalid. Even if it did work more fully, though, how would it
>> determine the correct placement of the last line of code?
>> --
>> https://mail.python.org/mailman/listinfo/python-list
>
> It should parse this as
>
> else:
>      print 'false'
>      print 'done'
>
> Why?  Because things like `print 'done'` usually have an empty line before it:

There is no such rule in Python so it hardly dependable for auto indenting.


> if True:
> print 'true'
> else:
> print 'false'
>
> print 'done'
>
> That should be parsed the way you want it done.  Makes perfect sense
> when you look at it.
>


-- 
Terry Jan Reedy





More information about the Python-list mailing list