Formatear automáticamente el código SQL


15

Existen algunos estándares y estilos generales de codificación bien conocidos para SQL (por ejemplo, capitalizar palabras reservadas, colocar palabras clave principales en diferentes líneas, etc.).

¿Emacs viene con algún modo para esto, o hay algún paquete para formatear SQL para que se adhiera a los estándares comunes?


Respuestas:



3

Si no le importa llamar a un proceso de Python, entonces esto 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))

1

No es una respuesta completa a su consulta, pero para capitalizar palabras reservadas, tengo algunas definiciones abreviadas. Aquí hay un breve ejemplo para mostrarle (sin incluir todas las palabras 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" )
))

0

Desde la versión 21.4a, Emacs viene con sql-mode(sql.el) que hace sangría automática y bloqueo de fuente. Sin linting incorporado, pero le permite definir un linter externo con la variable personalizable sql-linter-program( M-x customize-group SQL)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.