OT: This Swift thing
Terry Reedy
tjreedy at udel.edu
Wed Jun 4 22:43:05 EDT 2014
On 6/4/2014 7:23 PM, Mark H Harris wrote:
> On 6/4/14 5:18 PM, Terry Reedy wrote:
>> On 6/4/2014 10:53 AM, Mark H Harris wrote:
>>> The primary paradigm on this topic locally is that
>>> indents are bad because malformed or mangled code cannot be reformatted
>>> easily (if at all).
>>
>> Begin solution:':' as the end of a line means 'begin block; indent next
>> line'. If one is using tools that mangle, one can add end-of-block
>> comments: '# end, # end if, # if (end implied), or even just ##. In any
>> case, the stylized comment could mean 'dedent' and code could be
>> reconstituted with all indents stripped. There are probably programs on
>> PyPI to do that. End of excuse.
>>
>
> Yup. Well, I've only been doing python coding for ~9-10 years, but
> I've never had this formatting problem.
The only problem I have seen is when people post code here with \t for
indent. Many mail readers treat \t as a null char since it actually has
no standard translation into screen space. This is one reason why PEP8
recommends using spaces rather than \t for indent. On today's systems,
the space saved with \t is not worth the trouble.
> I viewed the entire debate as
> 'an excuse'. I'm going to do some looking on PyPI-- it would be nice to
> point folks to something concrete. If its an excuse, then that puts an
> end to it.
>
> As long as I'm addressing an IDLE guy, what would you think of a
> feature for IDLE that would format python code with block delimiters
> automatically and visa versa ?
I would not include it by default, as I would not want to encourage
block-commenting Python code. However, anyone could write an extension
that would add 3 menu items: BlockIn (add block comment), BlockDent
(re-indent according to block markers), and BlockOut (remove block
comments). The editor Format menu would be the obvious place. One would
not have to parse; instead let tokenize do that. Then BlockIn: add Block
comment and Newline tokens before Dedent tokens; BlockDent: replace
BlockComment Newline with Dedent. In either case, follow with
untokenize. Simply removing block markers could be done directly. The
block comment could even be user configurable.
(At the moment, untokenize does not properly reconstitue files indented
with \t.)
--
Terry Jan Reedy
More information about the Python-list
mailing list