This Emacs library provides commands and a minor mode for easily reformatting SQL using any one of several popular SQL formatters (see Usage below for a list).
If you choose not to use one of the convenient
packages in MELPA, you'll need to
add the directory containing sqlformat.el to your load-path, and
then (require 'sqlformat).
To set your preferred formatter, customise the sqlformat-command variable or set it as a file/directory local variable.
The variable should be assigned one of the following symbol values:
For example, to use pgformatter (i.e., the pg_format command) with
two-character indent and no statement grouping,
(setq sqlformat-command 'pgformatter)
;; Optional additional args
(setq sqlformat-args '("-s2" "-g"))Then call sqlformat, sqlformat-buffer or sqlformat-region as convenient.
Enable sqlformat-on-save-mode in SQL buffers like this:
(add-hook 'sql-mode-hook 'sqlformat-on-save-mode)or locally to your project with a form in your .dir-locals.el like this:
((sql-mode
(mode . sqlformat-on-save)))You might like to bind sqlformat or sqlformat-buffer to a key,
e.g. with:
(define-key sql-mode-map (kbd "C-c C-f") 'sqlformat)