Automatyczne formatowanie kodu SQL

15

Istnieją pewne ogólne dobrze znane standardy i style kodowania SQL (np. Pisanie wielkich słów zarezerwowanych, umieszczanie głównych słów kluczowych w różnych wierszach itp.).

Czy Emacs ma do tego jakieś tryby, czy też są jakieś pakiety do formatowania SQL, aby był zgodny ze standardowymi standardami?

Amelio Vazquez-Reina
źródło

Odpowiedzi:

3

Jeśli nie masz nic przeciwko wywoływaniu procesu python, to działa ( 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
źródło
1

Nie jest to kompletna odpowiedź na twoje zapytanie, ale dla wielkich słów zastrzeżonych mam kilka definicji skrótów. Oto krótki przykład, aby Ci pokazać (nie uwzględniając wszystkich zastrzeżonych słów SQL)

(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 _
źródło
0

Od wersji 21.4a Emacs jest wyposażony w sql-mode(sql.el), który wykonuje automatyczne wcięcia i blokadę czcionek. Brak wbudowanych włókien, ale pozwala zdefiniować zewnętrzną warstwę z dostosowywalną zmienną sql-linter-program( M-x customize-group SQL)

dorking
źródło