Open6

Macで選択範囲のSQLをシュッとフォーマットする方法(Alfred Workflow)

sho-hatasho-hata

やりたいこと

SQLをフォーマットしたいことが往々にしてある。例えば予約後の小文字->大文字変換。

- select *
+ SELECT *

RedashやMetabaseなどのBIツールにはSQLフォーマッタがついていることが多いが、インデントを直してくれても、予約語を小文字->大文字にしてくれなかったりする。

VSCodeなどのエディタで、拡張機能や矩形選択を駆使してフォーマットする方法もある。が、いちいちエディタやツールを開いたりしたくない。
理想的なのは、どこでも、どのような状況でも、選択した範囲をワンコマンドで変更できること。そうすればBIツールやエディタのみならず、SlackやGitHubのコメントでSQLを貼り付ける際にもストレスなく使うことができる。

sho-hatasho-hata

やらないこと

  • エディタやツールを開いたりしない。
  • 反応速度重視。
    • そのためSQLFormatter APIといったネットワークが挟まって欲しくない
    • LLMの速度も現段階では及第点ではない
  • 機密情報も扱うため、ローカルで完結したい
sho-hatasho-hata

以下のようなフローのAlfred workflowを自作する。まことに簡単。

  1. 範囲を選択
  2. キーボードショートカット
  3. sqlparseのsqlformatコマンドを実行
  4. クリップボードに貼り付け

全体像

Run Scriptの中身

sho-hatasho-hata

結果

image

選択した範囲がシュッとフォーマットされる。便利。

sho-hatasho-hata

まとめ

Alfred Workflow、コマンドラインツールをクリップボードなどを経由することでより便利なインターフェースに楽に組み込めるので便利。