IntelliJ IDEA プラグイン - SQL Formatter をつくってみた

2018/07/21   #IntelliJ  #Java 
このエントリーをはてなブックマークに追加

いつも JSON をちょちょいときれいに整形して見るときにはコレ

potterhsu/JsonViewer: JetBrains IDE plugin for viewing formatted JSON text on tool window.

を使っているのだが、これの SQL 版がほしいと思った。

ニーズは SQL を整形して見たいだけ、
巷のオンラインで SQL 整形する系のサービスでは、なんとなく業務で扱う SQL を貼りつけるのは抵抗がある、
手元でちょちょいとやりたい。

というわけで、 IntelliJ のプラグインとしてつくってみた。
(すでにあるのかもしれんけどチャチャッとつくれそうだったので・・・)

(ちなみにコマンドラインで SQL 整形するのには darold/pgFormatter を使っている)

プラグイン開発環境を整える

Plugin Devkit

IntelliJ の Plugin Devkit が有効になっている必要がある。
Preferences - Plugins で確認し、有効になっていない場合は有効化する。

UI Designer

また、UI のあるプラグインをつくる場合は UI Designer というプラグインもインストールしておく必要がある。
これがあると .form ファイルからソースを生成してくれるっぽい。

IntelliJ Plugin Development introduction: GUI form designing

こちらにあるように、 Preferences - Editor - GUI Designer で、
Generate GUI infoJava source code に変更しておく。

プラグインのコードを書く

処理は Java で書くようです。
UI は XML 。

今回作ったものはこちら。

roundrop/intellij-plugin-SQLFormatter: JetBrains IDE plugin for viewing formatted SQL text on tool window.

ほとんど JSONViewer の真似。正味30分もかからず。

プラグインを公開する

プラグインを jar ファイルに固める

Build - Prepare Plugin Module 'XXXXXXXX' For Deployment を選択する。

Prepare Plugin Module

プロジェクト直下に jar ファイルが出来上がる。

JetBrains のサイトで登録

JetBrains アカウントでログインした状態で JetBrains Plugin Repository にいく。
右上のメニューから Upload plugin を選ぶ。

Upload plugin

Upload new update JAR/ZIP to repository: とあり、
Upload fileGet file from URL か選べる。
zip の作り方がわからなかったので、なんとなく jar ファイルをアップロードするほうを選択。
プラグインカテゴリ( 今回は Viewer とした )を選んでサブミットする。

いったんサブミットすると、プラグイン情報の Edit 画面になる。
あとは必要な情報を入れていったり、スクリーンショットをアップロードしたりする。
PLUGIN TYPE は Opensource に、ライセンスは内部で hibernate-orm のコードを使わせてもらっている関係上 LGPL にしました。

最終的にはこのような感じに。

SQL Formatter :: JetBrains Plugin Repository