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


Reply via email to