SqlFormatter
SQL整形で、オラクルの外部結合演算子"(+)"に対応しました。以下のように整形されます。
オラクル固有のコードを書くのは気が引けたのですが、「"(+)"の組み合わせだけに限れば、他のDBでもこれが害となることはないだろう」という判断です。
select a.emp_id ,a.dept_id ,b.dept_id ,b.dept_name from emp a ,dept b where a.dept_id = b.dept_id (+)
また、関数名はDatabaseMetaDataから取得するのではなく、ユーザが指定するようにしました。
そのためダイアログを別途用意しました。「ユーザが入力しなければ反映されない」というのは面倒ですが、逆に言えばDatabaseMetaDataが使えない状態でも(つまり、DBに接続しなくても)SQL整形できることになるので、そこはメリットになるでしょう。
それと、BlancoSqlEditorPluginはDB接続せずに使えるSQLエディタですから、同じことが実現できるハズです。
いがぴょんにもメールで送ってみました。