Formattazione automatica del codice SQL


15

Esistono alcuni standard e stili di codifica ben noti generali per SQL (ad es. Capitalizzazione di parole riservate, collocazione delle parole chiave principali in righe diverse, ecc.).

Emacs ha qualche modalità per questo, o ci sono pacchetti per la formattazione di SQL per renderlo conforme agli standard comuni?


Risposte:



3

Se non ti dispiace chiamare a un processo Python, allora funziona ( 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

Non è una risposta completa alla tua domanda, ma per scrivere in maiuscolo le parole riservate, ho alcune definizioni abbreviate. Ecco un breve esempio solo per mostrarti (non includere tutte le parole sql riservate)

(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

Dalla versione 21.4a, Emacs viene fornito con sql-mode(sql.el) che esegue il rientro automatico e il blocco dei caratteri. Nessuna lanugine incorporata, ma consente di definire una linter esterna con la variabile personalizzabile sql-linter-program( M-x customize-group SQL)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.