[wingide-users] Indent analysis confused

Michael Foord fuzzyman at voidspace.org.uk
Wed Nov 4 12:21:36 MST 2009


Wingware Support wrote:
> Tom Stambaugh wrote:
>> PyDoc and the various other tools that use docstrings (such as the 
>> "Source Assistant" of WingIDE) are likely to at least be stressed if 
>> not broken, because I would expect the un-indented second line of 
>> hashes to potentially violate the syntactically-significant 
>> whitespace grammar of Python. I know that comments are supposed to be 
>> invisible, but as you can see from the indent manager they really 
>> aren't.
>
> The reason we chose to pay attention to comment position in the indent
> manager (for auto-indent only, I believe) was that _usually_ the 
> comment's
> position is significant and using it is preferable to requiring the user
> to dedent twice for example in:
>
> if x:
>   pass
>
> # comment (had to dedent here)
> <don't want to have to dedent again here!>
>
> This is a very common case in coding so I think what we're doing is
> in general correct.  The algorithm is actually more complex that just
> looking at comments all the time (e.g. it ignores block comments in
> certain cases).  As I noted earlier, I think we can enhance this to work
> OK in the case Michael reported w/o really breaking anything.  It's
> (probably) reasonable enough to stubbornly indent again for any first
> non-comment line in a code block.  Most comments here will already be
> indented to the "right" position.

Cool. It could be a good rule of thumb that if the indent analysis 
suggests an indent location that results in invalid syntax then it is 
probably wrong. :-)

A specific rule for this situation would be good though.

>
> This is good example of how being "smarter" in an IDE can backfire.  
> There
> is an unavoidable tension between doing more than just being a plain text
> editor and sometimes doing too much.
>
> BTW, it's useful to get feedback like this.  A lot of the value in Wing
> is from long years of tweaking in response to user reports.

It is amazing how much effort you have to put in just for your user to 
*not* notice what you are doing. :-)

Many thanks,

Michael

-- 
http://www.ironpythoninaction.com/



More information about the wingide-users mailing list