A VS Code extension that formats PostgreSQL SQL, using the Perl based pgFormatter tool developed by Gilles Darold.
- Supports keywords from SQL-92, SQL-99, SQL-2003, SQL-2008, SQL-2011 and PostgreSQL specifics keywords
- Provides configuration to control formatting style
pgFormatter requires Perl to be installed and available. You can either add it to your PATH or set the pgFormatter.perlBinPath configuration setting.
To install this extension:
- Press
Ctrl + Shift + X(Cmd + Shift + Xon macOS), wait a moment while the list of available extensions is populated - Type
pgFormatterand Click "Install"
This extension is made available to files recognized as "SQL" language files in VS Code. Generally, files with the .sql extension will be recognized as SQL files. You can use the files.associations setting to customize which files are recognized as SQL files.
To use pgFormatter, you simply need to run the editor.action.formatDocument command which is, by default, mapped to the Ctrl + K, Ctrl + D (Cmd + K, Cmd + D on macOS) keyboard shortcut.
pgFormatter also works with the "editor.formatOnSave": true setting so that when when saving your file, formatting will be automatically performed.
This extension has the following configuration settings:
pgFormatter.spaces- Number of spaces to indent the code (Default: 2 or fromeditor.tabSizeoption)pgFormatter.tabs- Use tabs to indent code instead of spaces (Default: false or fromeditor.insertSpacesconfiguration)pgFormatter.commaStart- Use preceding comma in parameter list (Default: false)pgFormatter.commaBreak- In insert statement, add a newline after each comma (Default: false)pgFormatter.commaEnd- Use trailing comma in parameter list (Default: true)pgFormatter.noComment- Remove any comments (Default: false)pgFormatter.functionCase- Case of the function names (Options: ["unchanged", "lowercase", "uppercase", "capitalize"]; Default: "unchanged")pgFormatter.noGrouping- Add a newline between statements in transaction regroupement (Default: false)pgFormatter.keywordCase- Case of the reserved keywords (Options: ["unchanged", "lowercase", "uppercase", "capitalize"]; Default: "uppercase")pgFormatter.formatType- Use another formatting type for some statements (Default: false)pgFormatter.wrapLimit- Wrap queries at a certain lengthpgFormatter.placeholder- Regex to find code that must not be changedpgFormatter.extraFunction- Path to file containing a list of function names to use the same formatting as PostgreSQL internal functionspgFormatter.pgFormatterPath- Path to custom pg_format versionpgFormatter.configFile- Path to a pg_format config filepgFormatter.perlBinPath- The path to the perl executable (Default: "perl")
To ignore a file and prevent it from being formatted, you can simply add a comment on the first line of the file with the contents: "pgFormatter-ignore". For example:
-- pgFormatter-ignore
select id from people;