Formatar automaticamente o código SQL

Respostas:

3

Se você não se importa em chamar um processo python, isso funciona ( pip install sqlparse):

(defun sqlparse-region (beg end)
  (interactive "r")
  (shell-command-on-region
   beg end
   "python -c 'import sys, sqlparse; print(sqlparse.format(sys.stdin.read(), reindent=True))'"
   t t))
ded7
fonte
1

Não é uma resposta completa à sua consulta, mas, para colocar em maiúscula as palavras reservadas, tenho algumas definições abreviadas. Aqui está um pequeno exemplo apenas para mostrar a você (sem incluir todas as palavras sql reservadas)

(define-abbrev-table 'sql-mode abbrev-table 
(mapcar #'(lambda (v) (list v (upcase v) nil 1))
'("absolute" "action" "add" "after" "all" "allocate" "alter" "and" "any" "are" "array" "as" "asc" "asensitive" )
))
Nsukami _
fonte
0

A partir da versão 21.4a, o Emacs vem com sql-mode(sql.el) que faz recuo automático e bloqueio de fonte. Sem fiapos embutidos, mas permite definir um linter externo com a variável personalizável sql-linter-program( M-x customize-group SQL)

dcorking
fonte