prettier-plugin-bq
v1.0.5
Published
`prettier-plugin-bq` is a [prettier](https://prettier.io/) plugin for **GoogleSQL**, which is a dialect of BigQuery.
Readme
prettier-plugin-bq
prettier-plugin-bq is a prettier plugin for GoogleSQL, which is a dialect of BigQuery.
Features
- support pipe syntax
- support procedural language (a.k.a BigQuery Scripting)
- try to handle jinja templates (see below)
SELECT
-- OK! `foo * {{i}}` and `bar * {{i}}` are valid SQL expressions (alias is also allowed).
{% for i in range(10) %}
foo * {{i}} as `f_{{i}}`,
bar * {{i}} as `b_{{i}}`,
{% endfor %}
FROM tabelname
WHERE
-- OK! `CURRENT_DATE() - 3 <= dt` and `TRUE` are valid SQL expressions.
{% target.name == 'dev' %} CURRENT_DATE() - 3 <= dt {% else %} TRUE {% endif %}
;SELECT *
FROM tabelname
-- Error! WHERE clause is not valid SQL expression.
{% target.name == 'dev' %} WHERE CURRENT_DATE() - 3 <= dt {% endif %}
;Playground
You can try prettier-plugin-bq online.
https://kitta65.github.io/prettier-plugin-bq/
Install
npm install --save-dev prettier prettier-plugin-bqUsage
You can format .sql and .bq file by the following command.
npx prettier --write ./xxx.sql --plugin=prettier-plugin-bqIf you want to omit --plugin=prettier-plugin-bq, add the plugin to your .prettierrc.
// .prettierrc
{
"plugins": ["prettier-plugin-bq"]
}For more information, please read the prettier document.
Configuration
prettier-plugin-bq supports the options below.
| API Option | CLI Option | Default | Description |
| ------------------------ | ---------------------------- | ------- | -------------------------------------------------------------------------------------------------------------- |
| indentCte | indent-cte | true | Indent CTEs in with clause. |
| printBlankLineAfterCte | print-blank-line-after-cte | false | Print blank line after CTE in with clause. |
| printKeywordsInUpperCase | print-keywords-in-upper-case | true | Print keywords, built-in functions and pseudo columns (e.g. _PARTITIONDATE, _PARTITIONTIME) in upper case. |
[!NOTE]
printPseudoColumnsInUpperCasewas merged into printKeywordsInUpperCase.
Coding style
This plugin doesn't follow any famous style guides, because none of them account for GoogleSQL's latest syntax (such as pipe syntax).
Feedback
I'm not ready to accept pull requests, but your feedback is always welcome. If you find any bugs, please feel free to create an issue.
