Skip to content

m-ahmadkhan/bq-formatter

Repository files navigation

BQ Formatter

Formats SQL (default dialect: bigquery-sql) files using the sql-formatter library.

Supported SQL dialects: sql, bigquery, db2, hive, mariadb, mysql, n1ql, plsql, postgresql, redshift, spark, sqlite, tsql

Issues

Please report issues here: https://github.com/m-ahmadkhan/bq-formatter/issues

Configuration

bq-formatter.language: Uses custom SQL Flavour to format sql files.

Possible values: sql, bigquery, db2, hive, mariadb, mysql, n1ql, plsql, postgresql, redshift, spark, sqlite, tsql.

Defaults to bigquery if no VSCode language is found.

bq-formatter.tabWidth: (number) bq-formatter.tabWidth gets preference over editor.tabSize if specified. Default: 2.

bq-formatter.useTabs: (boolean) If not specified, !editor.insertSpaces is used in its place. Default: false.

bq-formatter.keywordCase: Whether to print keywords in UPPERCASE, lowercase, or preserve existing.

Possible values: (preserve, lower, upper). Default: upper.

bq-formatter.indentStyle: Whether to indent keywords or not.

Possible values: (standard, tabularLeft, tabularRight). Default: standard.

bq-formatter.logicalOperatorNewline: Whether to break before or after logical operators (AND, OR, etc.)

Possible values: (before, after). Default: before.

bq-formatter.aliasAs: Where to use AS in column or table aliases.

Possible values: (preserve, always, select, never). Default: always.

bq-formatter.tabulateAlias: (boolean) Whether to right-align aliases to the longest line in the SELECT clause. Default: false.

bq-formatter.commaPosition: Where to place commas for SELECT and GROUP BY clauses.

Possible values: (before, after, tabular). Default: after.

bq-formatter.expressionWidth: (number) Number of characters allowed in each line before breaking. Default: 50.

bq-formatter.linesBetweenQueries: (number) How many newlines to place between each query / statement. Default: 2.

bq-formatter.denseOperators: (boolean) Strip whitespace around operators such as + or >=. Default: false.

bq-formatter.newlineBeforeSemicolon: (boolean) Whether to place semicolon on its own line or on previous line. Default: false.

bq-formatter.insertFinalNewline: (boolean) Whether to insert a final newline at the end of the file or not. Default: true.

@no-format comment

If you don't want to format an SQL file, you can include the @no-format comment at the top of the file.

-- @no-format

select * from mytable;

OR

/*
@no-format
*/

select * from mytable;