Formatage automatique du code SQL


15

Il existe des normes et des styles de codage généraux bien connus pour SQL (par exemple, la mise en majuscule des mots réservés, le placement des mots clés principaux sur différentes lignes, etc.).

Emacs est-il fourni avec des modes pour cela, ou existe-t-il des packages de formatage SQL pour le faire adhérer aux normes communes?


Réponses:



3

Si cela ne vous dérange pas d'appeler un processus python, alors cela fonctionne ( 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

Pas une réponse complète à votre question, mais pour mettre en majuscule les mots réservés, j'ai quelques définitions abrégées. Voici un court exemple juste pour vous montrer (n'incluant pas tous les mots sql réservés)

(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

À partir de la version 21.4a, Emacs est fourni avec sql-mode(sql.el) qui effectue l'indentation automatique et le verrouillage des polices. Pas de peluchage intégré, mais il vous permet de définir un linter externe avec la variable personnalisable sql-linter-program( M-x customize-group SQL)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.