On Jan 17, 2010, at 2:37 PM, Joshua Kolden wrote:
If it hasn't already been suggested I think elastic tabstops would be a good feature:
An interesting idea, and it'd be fun to try it out, but in playing with the java demo on that page, I hit a couple of places where the behavior was not what I expected. Eventually I understood why it was happening, but I predict that it would generate a lot of support calls if there was not a lot of documentation about "quirks".
The basic problem is that a table formatting scheme is very limiting, particularly with automatically detecting table boundaries. Sometimes "in the middle of a table" you'll want to change the column widths -- essentially, you really want to end the previous table and start a new one. I think inserting a blank line may accomplish that, but, as I say, it'll take some practice, and there was something strange about how his demo handled blank lines, because it didn't always do what I expected..
I hit the problem in the code. If you do something like (tabs represented by '>'):
...
if( some test) { > /* special case */
doit_now(x)
}>/* all done */
...
you have a two column table and are probably happy with the comments, but will be very frustrated when the "doit_now(x)" line, instead of being 'properly' indented, goes into the comment column.
Instead of one table there, you probably want 3, or a 3-column table, with two tabs before the comment. And, of course it gets nastier if you need doubly indented blocks.
joe