summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesús Leganés Combarro "Piranna" <piranna@gmail.com>2012-06-10 14:04:58 +0200
committerJesús Leganés Combarro "Piranna" <piranna@gmail.com>2012-06-10 14:04:58 +0200
commit378f7a4b1f0b7a63e19075b9007aae25f272f344 (patch)
tree4ecb8158f880382874875b52640a54bf6df25900
parent54cd5c95d9af7037e1b96a726506ceb5df4f43a5 (diff)
downloadsqlparse-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.py31
-rw-r--r--tests/issues/test_issue_06.py2
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")