diff options
author | Jesús Leganés Combarro "Piranna" <piranna@gmail.com> | 2012-06-10 14:04:58 +0200 |
---|---|---|
committer | Jesús Leganés Combarro "Piranna" <piranna@gmail.com> | 2012-06-10 14:04:58 +0200 |
commit | 378f7a4b1f0b7a63e19075b9007aae25f272f344 (patch) | |
tree | 4ecb8158f880382874875b52640a54bf6df25900 | |
parent | 54cd5c95d9af7037e1b96a726506ceb5df4f43a5 (diff) | |
download | sqlparse-378f7a4b1f0b7a63e19075b9007aae25f272f344.tar.gz |
Fixed issue #6
It needs a "hack" at first identifier since we can't be able to access
to it's previous whitespace, and also we would need more work to get the
offset taking in account the previous tokens, so by the moment we leave
only normal whitespaces.
-rw-r--r-- | sqlparse/filters.py | 31 | ||||
-rw-r--r-- | tests/issues/test_issue_06.py | 2 |
2 files changed, 20 insertions, 13 deletions
diff --git a/sqlparse/filters.py b/sqlparse/filters.py index 401c436..762f6ef 100644 --- a/sqlparse/filters.py +++ b/sqlparse/filters.py @@ -476,20 +476,27 @@ class ReindentFilter: for token in identifiers: if not ignore and not token.ttype: prev = tlist.token_prev(token, False) - if prev and prev.ttype == T.Whitespace: - value = prev.value - - spaces = 0 - while value and value[-1] == ' ': - value = value[:-1] - spaces += 1 - - value += self._gentabs(spaces + offset) - prev.value = value + if prev: + if prev.ttype == T.Whitespace: + value = prev.value + + spaces = 0 + while value and value[-1] == ' ': + value = value[:-1] + spaces += 1 + + value += self._gentabs(spaces + offset) + prev.value = value + else: + ws = sql.Token(T.Whitespace, + self._gentabs(offset)) + tlist.insert_before(token, ws) + + # Just first identifier else: - ws = sql.Token(T.Whitespace, - self._gentabs(offset)) + ws = sql.Token(T.Whitespace, ' ' * offset) tlist.insert_before(token, ws) + ignore = token.ttype # Decrease offset the size of the first token diff --git a/tests/issues/test_issue_06.py b/tests/issues/test_issue_06.py index 809cd4a..6226c90 100644 --- a/tests/issues/test_issue_06.py +++ b/tests/issues/test_issue_06.py @@ -13,7 +13,7 @@ class Issue_06(TestCase): def test_issue(self): result = format("SELECT foo, null bar, car FROM dual", reindent=True, indent_tabs=True) - self.assertEqual(result, "SELECT\t\t\tfoo,\n" + self.assertEqual(result, "SELECT foo,\n" "\t\t\t null bar,\n" "\t\t\t\t\t\tcar\n" "FROM dual") |