Format sql files using the sql-formatter npm package
forked from 'lea21st.vscode-sql-formatter'
Install
Open VS Code and press F1 or Ctrl + Shift + P to open command palette, select Install Extension and type genone.hyshin-sqlformatter
. Or launch VS Code Quick Open (Ctrl + P), paste the following command, and press enter.
ext install genone.hyshin-sqlformatter
Options
"editor.formatOnSave": true,
"sql-formatter.dialect": "postgresql",
"sql-formatter.commaPosition": "before",
"sql-formatter.indentStyle": "tabularRight",
"sql-formatter.logicalOperatorNewline": "before",
"sql-formatter.newlineBeforeSemicolon": true,
"sql-formatter.tabulateAlias": true,
"sql-formatter.uppercase": true,
"sql-formatter.paramTypes": { "named": [":"] },
"[sql]": {
"editor.defaultFormatter": "genone.hyshin-sqlformatter"
}
"sql"
- (default) [Standard SQL][]
"bigquery"
- [GCP BigQuery][]
"db2"
- [IBM DB2][]
"hive"
- [Apache Hive][]
"mariadb"
- [MariaDB][]
"mysql"
- [MySQL][]
"n1ql"
- [Couchbase N1QL][]
"plsql"
- [Oracle PL/SQL][]
"postgresql"
- [PostgreSQL][]
"redshift"
- [Amazon Redshift][]
"singlestoredb"
- [SingleStoreDB][]
"snowflake"
- [Snowflake][]
"spark"
- [Spark][]
"sqlite"
- [SQLite][sqlite]
"transactsql"
or "tsql"
- [SQL Server Transact-SQL][tsql]
"trino"
- [Trino][] (should also work for [Presto][], which is very similar dialect, though technically different)
Configuration
sql-formatter.dialect
: Defaults to "sql" (see the above list of supported dialects)
sql-formatter.uppercase
: Defaults to false (not safe to use when SQL dialect has case-sensitive identifiers)
sql-formatter.indentStyle
: Defaults to standard, Switches between different indentation styles.(standard / tabularLeft / tabularRight)
sql-formatter.commaPosition
: Defaults to before, Defines where to place commas in lists of columns.(before / after / tabular)
sql-formatter.logicalOperatorNewline
: Defaults to before, Decides newline placement before or after logical operators (AND, OR, XOR).(before / after)
sql-formatter.tabulateAlias
: Defaults to false, Aligns column aliases into a single column. Does not effect table name aliases.
sql-formatter.linesBetweenQueries
: Number of linebreaks between queries. Defaults to 2.
sql-formatter.newlineBeforeSemicolon
: Defaults to true, Whether to place query separator (;) on a separate line.
sql-formatter.paramTypes
: Defaults to null, Specifies parameter types to support when parsing SQL prepared statements.