Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [RFC 1/1] Add new indent-with-tab whitespace check

From: Chris Webb <hidden>
Date: 2016-06-15 22:48:32

Hi. Thanks for the detailed feedback.

Junio C Hamano [off-list ref] writes:
This sounds more like "tab-in-indent".  Naming the option that way would
give it an added benefit of allowing it to be abbreviated to "tab" by the
parser.
Yes that's nice: much harder to confuse with indent-with-non-tab that way.
I think WS_TAB_IN_INDENT are incompatible with either WS_SPACE_BEFORE_TAB
or WS_INDENT_WITH_TAB.  Don't we want to notice such a combination as an
error?
Oh yes, that has to be the right behaviour for the finished feature here. (I
guess strictly they could coexist with the meaning 'no indented lines
allowed at all' but I don't think that's useful or sensible.)
I'll queue this with s/indent-with-tab/tab-in-indent/ tweak to 'pu' but
the topic would need:

 - detecting incompatible settings;
 - tests;
 - docs;
 - matching change to apply --whitespace=fix;

before moving to 'next', I think.
Are you happy with my suggestion in [0/1] to replumb ws_fix_copy() to take a
strbuf as dst rather than a char *, to deal with the fact that whitespace
can grow with --whitespace=fix and WS_TAB_IN_INDENT?

If so, I'll polish up the existing patch as you suggest in your first three
points above, and then make this change to the way ws_fix_copy() works so I
can do the right thing in whitespace=fix.
There is another issue with this change.  Because "whitespace" without any
string in .gitattributes are defined to cause all the whitespace breakages
known to git to be caught, and tab-in-indent is inherently incompatible
with indent-with-non-tab, this cannot be supported without changing the
definition of "default set of whitespace breakage classes".
Ah, this was a behaviour I didn't know about. I should probably put your
patch (without the WS_TAB_IN_INDENT line) as the first one in the series,
before I introduce WS_TAB_IN_INDENT, so we don't break this wildcard
whitespace behaviour at any point in the series.

Cheers,

Chris.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help