Expand description
CST-based SQL formatter following sqlstyle.guide conventions.
This crate provides SQL formatting that preserves the structure of the original code while applying consistent style rules.
§Stability
Pre-1.0. The intended public surface is the format / format_sqlstyle /
format_with_pgformatter entry points, the edit helpers (format_edits,
format_range, diff_edits, TextEdit) and the config types
(FormatConfig, PgFormatterConfig, …). Printer internals may change
without a semver bump.
§Features
- River alignment for keyword alignment
- Configurable keyword case (UPPER, lower, Preserve)
- Leading or trailing comma style
- Proper indentation for subqueries and CTEs
- Comment preservation
- Error node preservation (malformed SQL preserved as-is)
§Usage
ⓘ
use banshee_format::{format, FormatConfig};
let sql = "select id,name from users where active=true";
let formatted = format(sql, &FormatConfig::sqlstyle());
println!("{}", formatted);
// Output:
// SELECT id
// , name
// FROM users
// WHERE active = TRUERe-exports§
pub use config::CommaStyle;pub use config::FormatConfig;pub use config::FormatStyle;pub use config::IdentifierCase;pub use config::IndentStyle;pub use config::KeywordCase;pub use edits::TextEdit;pub use edits::diff_edits;pub use edits::format_edits;pub use edits::format_range;pub use format::format;pub use pg_format::PgPrinter;pub use pg_formatter::CaseOption;pub use pg_formatter::PgFormatterConfig;pub use pg_formatter::PgFormatterError;pub use printer::Printer;pub use validate::FormatError;pub use validate::FormatResult;pub use validate::ValidationReport;pub use validate::check_idempotent;pub use validate::count_tokens;pub use validate::format_pgformatter_validated;pub use validate::format_validated;pub use validate::normalize;pub use validate::semantically_equal;pub use validate::validate_comprehensive;pub use validate::validate_format;
Modules§
- config
- Format configuration for SQL formatting.
- edits
- Edit-producing formatting.
- format
- SQL formatting implementation.
- pg_
format - pgFormatter-style SQL formatting implementation.
- pg_
formatter - pgFormatter-compatible configuration.
- printer
- Core printer for SQL formatting output.
- rules
- Formatting rules for SQL.
- validate
- Formatter validation to ensure formatting preserves query semantics.
Functions§
- format_
compact - Formats SQL using compact style.
- format_
pgformatter - Formats SQL using pgFormatter-compatible defaults.
- format_
sqlstyle - Formats SQL using sqlstyle.guide defaults.
- format_
with_ pgformatter - Formats SQL using pgFormatter configuration.