56 lines
1.6 KiB
Go
56 lines
1.6 KiB
Go
// Package config defines PgTidy's formatter (and, later, linter) configuration.
|
|
//
|
|
// Defaults encode the project house style reverse-engineered from the corpus.
|
|
// A future change will load/merge these from a discovered .pgtidy.yaml file.
|
|
package config
|
|
|
|
// Case controls keyword/identifier casing.
|
|
type Case string
|
|
|
|
const (
|
|
CaseUpper Case = "upper"
|
|
CaseLower Case = "lower"
|
|
// CasePreserve leaves the token text unchanged.
|
|
CasePreserve Case = "preserve"
|
|
)
|
|
|
|
// CommaStyle controls where separators sit in multi-line lists.
|
|
type CommaStyle string
|
|
|
|
const (
|
|
// CommaLeading puts the comma at the start of the continuation line
|
|
// (",col"), the house style.
|
|
CommaLeading CommaStyle = "leading"
|
|
// CommaTrailing puts the comma at the end of the preceding line ("col,").
|
|
CommaTrailing CommaStyle = "trailing"
|
|
)
|
|
|
|
// Style is the formatter configuration.
|
|
type Style struct {
|
|
// Indent is one indentation level (default two spaces).
|
|
Indent string
|
|
// Newline is the line terminator emitted by the formatter.
|
|
Newline string
|
|
// KeywordCase controls SQL keyword casing (types excluded — see TypeCase).
|
|
KeywordCase Case
|
|
// IdentCase controls unquoted identifier casing (quoted identifiers are
|
|
// never touched).
|
|
IdentCase Case
|
|
// TypeCase controls built-in type-name casing.
|
|
TypeCase Case
|
|
// Commas controls list separator placement.
|
|
Commas CommaStyle
|
|
}
|
|
|
|
// Default returns the house-style configuration.
|
|
func Default() Style {
|
|
return Style{
|
|
Indent: " ",
|
|
Newline: "\n",
|
|
KeywordCase: CaseUpper,
|
|
IdentCase: CaseLower,
|
|
TypeCase: CaseLower,
|
|
Commas: CommaLeading,
|
|
}
|
|
}
|