サクラエディタでSQLを整形するマクロと謎html

概要

サクラエディタでたまにSQLの整形をする必要がある瞬間があるので置いておきます。
拡張子は「.mac」にして読み込ませます。

マクロファイルの中身

//キーボードマクロのファイル
S_ReplaceAll(',', ',\\r\\n', 28);	// すべて置換
S_ReplaceAll('WHERE', '\r\nWHERE', 28);	// すべて置換
S_ReplaceAll('AND', '\r\n AND', 28);	// すべて置換
S_ReplaceAll('FROM', '\r\nFROM', 28);	// すべて置換
S_ReplaceAll('SELECT', '\r\nSELECT', 28);	// すべて置換
S_ReplaceAll('UNION', '\r\nUNION', 28);	// すべて置換
S_ReplaceAll('ORDER', '\r\nORDER', 28);	// すべて置換
S_ReplaceAll(' LEFT ', '\r\n LEFT ', 28);	// すべて置換
S_ReplaceAll(' INNER ', '\r\n INNER ', 28);	// すべて置換
S_ReplaceAll(' ON ', '\r\n ON ', 28);	// すべて置換
S_ReplaceAll(' OR ', '\r\n OR ', 28);	// すべて置換
S_ReplaceAll(']   params:', '\r\n\r\n\r\n', 28);	// すべて置換
S_ReplaceAll('?', '■', 1);	// すべて置換
S_ReDraw(0);	// 再描画

謎html

上記で変換したSQLのプレースホルダに、配列に入れた値を入れたいとき用のhtmlです。
PREタグにSQLを入れると■の部分を配列の値と置き換えるだけのhtmlです

<button onclick = "copy()">
コピーする 
</button>
<PRE id="sql">
--ここにSQLを書く
SELECT * 
FROM TABLE_NAME 
WHERE ID = ■ 
AND MEMO = ■
</PRE>
<script>
var element = document.getElementById("sql").innerHTML ;
var index = 0;
var sql = "";

//SQL置換対象
var rep = 
['1',
'めも']
 ;

element = element.replace( 'sql:[', '' );

for(var i = 0; i < element.length; i++) {
  var text = element[i];
  if(text == "■"){
    text = "'" + rep[index] + "'";
    index++;
  }
  sql = sql + text;
}
document.getElementById("sql").innerHTML = sql

function copy() {
  var text = document.getElementById("sql").innerHTML; 
  var area = document.createElement("textarea");
  area.textContent = text;
  document.body.appendChild(area);
  area.select();
  document.execCommand("copy");
  document.body.removeChild(area);
}
</script>