fc2ブログ

>> 古い記事: 電子書籍メモ
<< 新しい記事: 日本のネットレーベルのポッドキャスト配信状況を調べてみた

(書きかけ)EmacsでSQLの整形(要Ruby)

SQL崩しとも言うようです。 すごく適当なメモです。気が向いたら修正などするかもです。

sonota's anbt-sql-formatter at master - GitHub
ここからアーカイブをダウンロードして展開して適当なところに置く。

以下では、展開して出てきたフォルダを ~/anbt-sql-formatter となるように置き、
その中に bin, lib, ... がある状態にしたとして進める。

テストがしたければ
$ cd ~/anbt-sql-formatter
$ ruby setup.rb test
しなくてもOK。

動作確認(これも必須ではない)
$ cd ~/anbt-sql-formatter
$ ruby bin/anbt-sql-formatter sample.sql
(サンプルSQLを整形した結果が出力される)

.emacs.el に以下を追加

(defvar anbt-sql-formatter:formatter-path
  "~/anbt-sql-formatter/bin/anbt-sql-formatter")

(defun anbt-sql-formatter:format ()
  "Format SQL on specified region."
  (interactive)

  (let ((beg)
        (end))
    (if mark-active
        (setq beg (region-beginning)
              end (region-end))
      (setq beg (point-min)
            end (point-max)))
    (save-excursion
      (shell-command-on-region
       beg end
       (format "ruby %s" anbt-sql-formatter:formatter-path) nil t))))

(add-hook 'sql-mode-hook
          (lambda ()
            (define-key sql-mode-map (kbd "C-S-f") 'anbt-sql-formatter:format)))
リージョンを指定して
M-x anbt-sql-formatter:format RET
または
C-S-f
で整形できる。

リージョンが指定されていない場合はバッファ全体を整形する。

----

インデントの幅や改行などの整形ルールや
関数名として扱うキーワードなどもカスタマイズできますが説明は割愛。
とりあえず bin/anbt-sql-formatter をコピーして bin/my-sql-formatter を作って
そっちでゴニョゴニョやる、という方法を推奨しておきます。

関連記事

参考(外部リンク)

>> 古い記事: 電子書籍メモ
<< 新しい記事: 日本のネットレーベルのポッドキャスト配信状況を調べてみた
** ホームに戻る

コメント

コメントの投稿

管理者にだけ表示を許可する

|