Detect mixed usage of spaces and tabs.
2018-11-19 Martin Liska <mliska@suse.cz> * check_GNU_style_lib.py: Detect mixed usage of spaces and tabs. From-SVN: r266261
This commit is contained in:
parent
662076c9fa
commit
ca44d7f40a
@ -1,3 +1,8 @@
|
|||||||
|
2018-11-19 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
|
* check_GNU_style_lib.py: Detect mixed usage
|
||||||
|
of spaces and tabs.
|
||||||
|
|
||||||
2018-11-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
2018-11-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
* gcc_update (files_and_dependencies): Handle libphobos.
|
* gcc_update (files_and_dependencies): Handle libphobos.
|
||||||
|
|||||||
@ -99,6 +99,18 @@ class SpacesCheck:
|
|||||||
line.replace(self.expanded_tab, error_string(ws_char * ts)),
|
line.replace(self.expanded_tab, error_string(ws_char * ts)),
|
||||||
'blocks of 8 spaces should be replaced with tabs', i)
|
'blocks of 8 spaces should be replaced with tabs', i)
|
||||||
|
|
||||||
|
class SpacesAndTabsMixedCheck:
|
||||||
|
def __init__(self):
|
||||||
|
self.re = re.compile('\ \t')
|
||||||
|
|
||||||
|
def check(self, filename, lineno, line):
|
||||||
|
stripped = line.lstrip()
|
||||||
|
start = line[:len(line) - len(stripped)]
|
||||||
|
if self.re.search(line):
|
||||||
|
return CheckError(filename, lineno,
|
||||||
|
error_string(start.replace('\t', ws_char * ts)) + line[len(start):],
|
||||||
|
'a space should not precede a tab', 0)
|
||||||
|
|
||||||
class TrailingWhitespaceCheck:
|
class TrailingWhitespaceCheck:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.re = re.compile('(\s+)$')
|
self.re = re.compile('(\s+)$')
|
||||||
@ -236,12 +248,27 @@ class TrailingWhitespaceTest(unittest.TestCase):
|
|||||||
r = self.check.check('foo', 123, 'a = 123;\t')
|
r = self.check.check('foo', 123, 'a = 123;\t')
|
||||||
self.assertIsNotNone(r)
|
self.assertIsNotNone(r)
|
||||||
|
|
||||||
|
class SpacesAndTabsMixedTest(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self.check = SpacesAndTabsMixedCheck()
|
||||||
|
|
||||||
|
def test_trailing_whitespace_check_basic(self):
|
||||||
|
r = self.check.check('foo', 123, ' \ta = 123;')
|
||||||
|
self.assertEqual('foo', r.filename)
|
||||||
|
self.assertEqual(0, r.column)
|
||||||
|
self.assertIsNotNone(r.console_error)
|
||||||
|
r = self.check.check('foo', 123, ' \t a = 123;')
|
||||||
|
self.assertIsNotNone(r.console_error)
|
||||||
|
r = self.check.check('foo', 123, '\t a = 123;')
|
||||||
|
self.assertIsNone(r)
|
||||||
|
|
||||||
def check_GNU_style_file(file, file_encoding, format):
|
def check_GNU_style_file(file, file_encoding, format):
|
||||||
checks = [LineLengthCheck(), SpacesCheck(), TrailingWhitespaceCheck(),
|
checks = [LineLengthCheck(), SpacesCheck(), TrailingWhitespaceCheck(),
|
||||||
SentenceSeparatorCheck(), SentenceEndOfCommentCheck(),
|
SentenceSeparatorCheck(), SentenceEndOfCommentCheck(),
|
||||||
SentenceDotEndCheck(), FunctionParenthesisCheck(),
|
SentenceDotEndCheck(), FunctionParenthesisCheck(),
|
||||||
SquareBracketCheck(), ClosingParenthesisCheck(),
|
SquareBracketCheck(), ClosingParenthesisCheck(),
|
||||||
BracesOnSeparateLineCheck(), TrailinigOperatorCheck()]
|
BracesOnSeparateLineCheck(), TrailinigOperatorCheck(),
|
||||||
|
SpacesAndTabsMixedCheck()]
|
||||||
errors = []
|
errors = []
|
||||||
|
|
||||||
patch = PatchSet(file, encoding=file_encoding)
|
patch = PatchSet(file, encoding=file_encoding)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user