SQL-Code automatisch formatieren

15

Es gibt einige allgemein bekannte Codierungsstandards und -stile für SQL (z. B. Großschreibung reservierter Wörter, Platzierung der Hauptschlüsselwörter in verschiedenen Zeilen usw.).

Gibt es in Emacs Modi dafür oder gibt es Pakete zum Formatieren von SQL, damit es den gängigen Standards entspricht?

Amelio Vazquez-Reina
quelle

Antworten:

3

Wenn es Ihnen nichts ausmacht, einen Python-Prozess aufzurufen, dann funktioniert dies ( 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
quelle
1

Keine vollständige Antwort auf Ihre Frage, aber zur Großschreibung reservierter Wörter habe ich einige Abkürzungsdefinitionen. Hier ist ein kurzes Beispiel, um es Ihnen zu zeigen (ohne alle reservierten SQL-Wörter)

(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 _
quelle
0

Ab Version 21.4a enthält Emacs sql-mode(sql.el) , das die automatische Einrückung und Schriftsperre vornimmt . Keine eingebauten Flusen, aber Sie können einen externen Linter mit der anpassbaren Variablen sql-linter-program( M-x customize-group SQL) definieren

Entkorken
quelle