Tự động định dạng mã SQL


15

Có một số tiêu chuẩn và kiểu mã hóa nổi tiếng chung cho SQL (ví dụ: viết hoa các từ dành riêng, đặt các từ khóa chính trong các dòng khác nhau, v.v.).

Emacs có đi kèm với bất kỳ chế độ nào cho việc này không, hoặc có gói nào để định dạng SQL để làm cho nó tuân thủ các tiêu chuẩn chung không?


Câu trả lời:



3

Nếu bạn không ngại gọi ra một quy trình python, thì nó hoạt động ( 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

Không phải là một câu trả lời đầy đủ cho truy vấn của bạn, nhưng để viết hoa các từ dành riêng, tôi có một số định nghĩa viết tắt. Dưới đây là một ví dụ ngắn chỉ để cho bạn thấy (không bao gồm tất cả các từ sql dành riêng)

(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

Từ phiên bản 21.4a, Emacs đi kèm với sql-mode(sql.el) có chức năng thụt lề tự động và khóa phông chữ. Không tích hợp linting, nhưng nó cho phép bạn xác định một kẻ nói dối bên ngoài với biến tùy chỉnh sql-linter-program( M-x customize-group SQL)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.