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