SQL 코드 자동 형식화


15

SQL에 대해 잘 알려진 일반적인 코딩 표준 과 스타일이 있습니다 (예 : 예약어를 대문자로하거나 주요 키워드를 다른 줄에 배치하는 등).

Emacs에는이를위한 모드가 있습니까? 아니면 일반적인 표준을 준수하도록 SQL을 형식화하기위한 패키지가 있습니까?


답변:



3

파이썬 프로세스를 호출하는 것이 마음에 들지 않으면 작동합니다 ( 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

귀하의 질문에 대한 완전한 답변은 아니지만 예약어를 대문자로 사용하기 위해 abbrev 정의가 있습니다. 다음은 간단한 예약 예입니다 (예약 된 모든 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) 를 사용하여 외부 린터를 정의 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.