sakura:sql_formatter.mac

// ---------------------------------------------------------------------
// SQL文をフォーマットします。(6割くらいはきれいになると思います)
// 文字列キーワードは、大文字変換するようにしています。
// 
// 以下は、TIPSです。
// サクラエディタの強調表示と組み合わせるとより見やすくなると思います。
// ショートカットなどを設定するとさらに使い勝手は良くなります。
// → https://qiita.com/t_o01/items/6ad844ab04fc0170b4eb
// ---------------------------------------------------------------------


// --- キーワードを指定して、フォーマットしています ----
S_ReplaceAll('AND', '\r\n\tAND', 28).toUpperCase();    // 改行+TAB
S_ReplaceAll('ON', '\r\n\tON', 28).toUpperCase();   // 改行+TAB

S_ReplaceAll(',', '\r\n\t,', 28);   // 改行・・・SELECT節が、カンマ頭で改行されることを想定
S_ReplaceAll('WHERE', '\r\nWHERE', 28).toUpperCase(); // 改行
S_ReplaceAll(';', '\r\n;', 28).toUpperCase();    // 改行
S_ReplaceAll('FROM', '\r\nFROM', 28).toUpperCase();   // 改行
S_ReplaceAll('UNION', '\r\nUNION', 28).toUpperCase(); // 改行
S_ReplaceAll('GROUP BY', '\r\nGROUP BY', 28).toUpperCase(); // 改行
S_ReplaceAll('ORDER BY', '\r\nORDER BY', 28).toUpperCase(); // 改行
S_ReplaceAll('LEFT JOIN', '\r\nLEFT JOIN', 28).toUpperCase();   // 改行
S_ReplaceAll('INNER JOIN', '\r\nINNER JOIN', 28).toUpperCase(); // 改行


// --- ここは、大文字変換のみ実行してます ----
S_ReplaceAll('SELECT', 'SELECT', 28).toUpperCase();
S_ReplaceAll('AS', 'AS', 28).toUpperCase();
S_ReplaceAll('COUNT', 'COUNT', 28).toUpperCase();
S_ReplaceAll('MAX', 'MAX', 28).toUpperCase();
S_ReplaceAll('MIN', 'MIN', 28).toUpperCase();
S_ReplaceAll('AVG', 'AVG', 28).toUpperCase();
S_ReplaceAll('CASE', 'CASE', 28).toUpperCase();
S_ReplaceAll('WHEN', 'WHEN', 28).toUpperCase();
S_ReplaceAll('THEN', 'THEN', 28).toUpperCase();
S_ReplaceAll('ELSE', 'ELSE', 28).toUpperCase();
S_ReplaceAll('END', 'END', 28).toUpperCase();


// --- 以下はコメント ---

//S_ReplaceAll('\(', '\r\n\t(', 28);   // カッコで改行
//S_ReplaceAll('\)', '\r\n\t)', 28);   // カッコで改行

//S_ReplaceAll('OR', '\r\nOR', 28).toUpperCase();   // 改行
//S_ReplaceAll('OR', '\r\nOR', 28).toUpperCase();   // 改行

//S_ReplaceAll('AND', '\r\n  AND', 28).toUpperCase();    // 改行+半角2つ 

//S_ReplaceAll('\( SELECT', '\r\n\( SELECT', 28).toUpperCase();   // 改行+カッコ+半角+SELECTにしている。想定は、サブクエリとか
//S_ReplaceAll('\(SELECT', '\r\n\( SELECT', 28).toUpperCase();   // 改行+カッコ+半角+SELECTにしている。想定は、サブクエリとか

//S_ReplaceAll(']   params:', '\r\n\r\n\r\n', 28);    // すべて置換
//S_ReplaceAll('?', '■', 1);  // すべて置換


// 再描画
S_ReDraw(0);