summaryrefslogtreecommitdiff
path: root/sqlparse
diff options
context:
space:
mode:
authorAndi Albrecht <albrecht.andi@gmail.com>2012-04-19 22:02:08 +0200
committerAndi Albrecht <albrecht.andi@gmail.com>2012-04-19 22:02:08 +0200
commite4bccf45a6e82d4738aab1b5eded3fa208a76875 (patch)
tree499b8ee1754c9cd0ba5134db28f2dd9ce105c9ad /sqlparse
parent508db7329f05362a47a0ed9f93d0ae8d9e42dcc8 (diff)
downloadsqlparse-e4bccf45a6e82d4738aab1b5eded3fa208a76875.tar.gz
Pretty format comments in identifier lists (fixes issue59).
Diffstat (limited to 'sqlparse')
-rw-r--r--sqlparse/engine/grouping.py30
-rw-r--r--sqlparse/filters.py3
-rw-r--r--sqlparse/sql.py8
3 files changed, 27 insertions, 14 deletions
diff --git a/sqlparse/engine/grouping.py b/sqlparse/engine/grouping.py
index b0c6c2c..499ba8c 100644
--- a/sqlparse/engine/grouping.py
+++ b/sqlparse/engine/grouping.py
@@ -197,6 +197,7 @@ def group_identifier_list(tlist):
lambda t: t.ttype == T.Number.Integer,
lambda t: t.ttype == T.String.Single,
lambda t: isinstance(t, sql.Comparison),
+ lambda t: isinstance(t, sql.Comment),
]
tcomma = tlist.token_next_match(idx, T.Punctuation, ',')
start = None
@@ -314,18 +315,19 @@ def group_functions(tlist):
def group(tlist):
- for func in [group_parenthesis,
- group_functions,
- group_comments,
- group_where,
- group_case,
- group_identifier,
- group_typecasts,
- group_as,
- group_aliased,
- group_assignment,
- group_comparison,
- group_identifier_list,
- group_if,
- group_for]:
+ for func in [
+ group_comments,
+ group_parenthesis,
+ group_functions,
+ group_where,
+ group_case,
+ group_identifier,
+ group_typecasts,
+ group_as,
+ group_aliased,
+ group_assignment,
+ group_comparison,
+ group_identifier_list,
+ group_if,
+ group_for]:
func(tlist)
diff --git a/sqlparse/filters.py b/sqlparse/filters.py
index 3d2355a..bfa757d 100644
--- a/sqlparse/filters.py
+++ b/sqlparse/filters.py
@@ -332,6 +332,9 @@ class ReindentFilter(Filter):
self.offset += num_offset
for token in identifiers[1:]:
tlist.insert_before(token, self.nl())
+ for token in tlist.tokens:
+ if isinstance(token, sql.Comment):
+ tlist.insert_after(token, self.nl())
self.offset -= num_offset
self._process_default(tlist)
diff --git a/sqlparse/sql.py b/sqlparse/sql.py
index 72609e2..3ea1c6f 100644
--- a/sqlparse/sql.py
+++ b/sqlparse/sql.py
@@ -322,6 +322,14 @@ class TokenList(Token):
"""Inserts *token* before *where*."""
self.tokens.insert(self.token_index(where), token)
+ def insert_after(self, where, token):
+ """Inserts *token* after *where*."""
+ next_token = self.token_next(where)
+ if next_token is None:
+ self.tokens.append(token)
+ else:
+ self.tokens.insert(self.token_index(next_token), token)
+
def has_alias(self):
"""Returns ``True`` if an alias is present."""
return self.get_alias() is not None