summaryrefslogtreecommitdiff
path: root/sqlparse/formatter.py
diff options
context:
space:
mode:
authorJohannes Hoff <johshoff@gmail.com>2017-06-20 20:18:15 -0700
committerJohannes Hoff <johshoff@gmail.com>2017-06-20 20:18:15 -0700
commit7cdefe9aa751fa54831cc1e64fbf4b16acc6c90e (patch)
treefe73b9a2cc3c66f70b66c21ac4122c61958409e0 /sqlparse/formatter.py
parentdc788ab5b1af2e2a4a988b31a09d8d6656853f76 (diff)
downloadsqlparse-7cdefe9aa751fa54831cc1e64fbf4b16acc6c90e.tar.gz
Option to indent after first line
This adds a command line argument `--indent_after_first` which sets the indentation of all lines after the first one, e.g. SELECT, UPDATE, etc. For example: $ sqlparse/__main__.py -r sample.sql UPDATE foo SET a = 1 WHERE a > 2 AND a < 10; $ sqlparse/__main__.py -r --indent_after_first sample.sql UPDATE foo SET a = 1 WHERE a > 2 AND a < 10;
Diffstat (limited to 'sqlparse/formatter.py')
-rw-r--r--sqlparse/formatter.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/sqlparse/formatter.py b/sqlparse/formatter.py
index a58d5af..b36fe56 100644
--- a/sqlparse/formatter.py
+++ b/sqlparse/formatter.py
@@ -70,6 +70,11 @@ def validate_options(options):
elif reindent_aligned:
options['strip_whitespace'] = True
+ indent_after_first = options.get('indent_after_first', False)
+ if indent_after_first not in [True, False]:
+ raise SQLParseError('Invalid value for indent_after_first: '
+ '{0!r}'.format(indent_after_first))
+
indent_tabs = options.get('indent_tabs', False)
if indent_tabs not in [True, False]:
raise SQLParseError('Invalid value for indent_tabs: '
@@ -153,6 +158,7 @@ def build_filter_stack(stack, options):
stack.stmtprocess.append(
filters.ReindentFilter(char=options['indent_char'],
width=options['indent_width'],
+ indent_after_first=options['indent_after_first'],
wrap_after=options['wrap_after'],
comma_first=options['comma_first']))