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?


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))

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" )
))

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.