IT系フリーランスの技術備忘録

日々の業務で学んだ事の覚書やフィードバックなど。たまに関係ない記事も。

【サクラエディタのマクロ】作成したPL/SQLのコードから空白行とコメントブロックを削除する

今回は、teratailのこちらの質問に関する回答です。

teratail.com

質問者様はサクラエディタを使用との事でしたので、サクラエディタのマクロで、空白行とコメント行を削除するマクロを作成しました。

// 選択範囲の文字列の中で、空白行とコメント行を飛ばす、
// ※コメント行・・・先頭が'--'で始まる行
function line_shaping(text) {

    var text  = text.replace(/\r\n|\r/g, "\n");

    var lines = text.split( '\n' );
    var outArray = new Array();

    for ( var i = 0; i < lines.length; i++ ) {

        // 空行と先頭が"--"で始まる行は飛ばす
        if ( lines[i] == '' || lines[i].indexOf("--") === 0) {
            continue;
        }
 
        outArray.push( lines[i] );
    }

    str = outArray.join('\r\n');
    return str;

}

// 選択範囲のテキストを取得
var text = Editor.GetSelectedString(0);
// 変換後のテキストを出力
if ( text !== "" ) Editor.InsText(line_shaping(text));

上記のソースをline_shaping.jpなどの名前で保存し、サクラエディタのマクロとして登録して下さい。

変換したい範囲を選択し、マクロとして実行すると、選択範囲の文字列の空白行とコメント行が削除されます。
(毎回選択しないといけないのは使いにくいかな。。。)

サクラエディタのマクロの登録方法がわからない場合はこちらの記事が参考になるかと思います。
(というか、マクロ自体もこの記事内の大文字・小文字変換マクロを参考に作成致しました)