Make the tab width used for whitespace checks configurable
A new whitespace "rule" is added that sets the tab width to use for whitespace checks and fix-ups and replaces the hard-coded constant 8. Since the setting is part of the rules, it can be set per file using .gitattributes. The new configuration is backwards compatible because older git versions simply ignore unknown whitespace rules. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
dee40e5178
commit
f4b05a4947
@ -344,6 +344,13 @@ test_expect_success 'check spaces as indentation (indent-with-non-tab: on)' '
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'ditto, but tabwidth=9' '
|
||||
|
||||
git config core.whitespace "indent-with-non-tab,tabwidth=9" &&
|
||||
git diff --check
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'check tabs and spaces as indentation (indent-with-non-tab: on)' '
|
||||
|
||||
git config core.whitespace "indent-with-non-tab" &&
|
||||
@ -352,6 +359,20 @@ test_expect_success 'check tabs and spaces as indentation (indent-with-non-tab:
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'ditto, but tabwidth=10' '
|
||||
|
||||
git config core.whitespace "indent-with-non-tab,tabwidth=10" &&
|
||||
test_must_fail git diff --check
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'ditto, but tabwidth=20' '
|
||||
|
||||
git config core.whitespace "indent-with-non-tab,tabwidth=20" &&
|
||||
git diff --check
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'check tabs as indentation (tab-in-indent: off)' '
|
||||
|
||||
git config core.whitespace "-tab-in-indent" &&
|
||||
@ -376,6 +397,13 @@ test_expect_success 'check tabs and spaces as indentation (tab-in-indent: on)' '
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'ditto, but tabwidth=1 (must be irrelevant)' '
|
||||
|
||||
git config core.whitespace "tab-in-indent,tabwidth=1" &&
|
||||
test_must_fail git diff --check
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'check tab-in-indent and indent-with-non-tab conflict' '
|
||||
|
||||
git config core.whitespace "tab-in-indent,indent-with-non-tab" &&
|
||||
|
Reference in New Issue
Block a user