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)