Автоматическое форматирование кода SQL


15

Существуют некоторые общеизвестные стандарты и стили кодирования для SQL (например, использование заглавных слов в заглавных буквах, размещение ключевых слов в разных строках и т. Д.).

Есть ли в Emacs какие-либо режимы для этого или есть пакеты для форматирования SQL, чтобы он соответствовал общим стандартам?


Ответы:



3

Если вы не возражаете вызывать процесс Python, то это работает ( 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

Не полный ответ на ваш запрос, но для заглавных слов у меня есть несколько сокращенных определений. Вот краткий пример, чтобы показать вам (не включая все зарезервированные слова 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" )
))

0

Начиная с версии 21.4a, Emacs поставляется с sql-mode(sql.el), который выполняет автоматический отступ и блокировку шрифта. Нет встроенного линтинга, но он позволяет вам определять внешний линтер с помощью настраиваемой переменной sql-linter-program( M-x customize-group SQL)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.