From 66aa676278948368dff251dffd58c850cb8b889e Mon Sep 17 00:00:00 2001 From: Samuel Cormier-Iijima Date: Mon, 4 Feb 2019 21:55:01 -0500 Subject: [PATCH] Fix indent calculation with tabs when computing prefixes (#595) Closes #262 --- blib2to3/pgen2/driver.py | 4 +--- tests/test_black.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/blib2to3/pgen2/driver.py b/blib2to3/pgen2/driver.py index 72d9f47..6626c05 100644 --- a/blib2to3/pgen2/driver.py +++ b/blib2to3/pgen2/driver.py @@ -131,10 +131,8 @@ class Driver(object): current_line = "" current_column = 0 wait_for_nl = False - elif char == ' ': + elif char in ' \t': current_column += 1 - elif char == '\t': - current_column += 4 elif char == '\n': # unexpected empty line current_column = 0 diff --git a/tests/test_black.py b/tests/test_black.py index b3f1f82..92031ca 100644 --- a/tests/test_black.py +++ b/tests/test_black.py @@ -509,6 +509,19 @@ class BlackTestCase(unittest.TestCase): black.assert_equivalent(source, actual) black.assert_stable(source, actual, line_length=ll) + def test_comment_indentation(self) -> None: + contents_tab = "if 1:\n\tif 2:\n\t\tpass\n\t# comment\n\tpass\n" + contents_spc = "if 1:\n if 2:\n pass\n # comment\n pass\n" + + self.assertFormatEqual(fs(contents_spc), contents_spc) + self.assertFormatEqual(fs(contents_tab), contents_spc) + + contents_tab = "if 1:\n\tif 2:\n\t\tpass\n\t\t# comment\n\tpass\n" + contents_spc = "if 1:\n if 2:\n pass\n # comment\n pass\n" + + self.assertFormatEqual(fs(contents_tab), contents_spc) + self.assertFormatEqual(fs(contents_spc), contents_spc) + def test_report_verbose(self) -> None: report = black.Report(verbose=True) out_lines = [] -- 2.39.5