|
ササキさん,こんばんは。
》もし、手を加えられるなら、要望なのですが、
乗りかかった舟で,やってみました。最初の意図から比べるとだいぶ大がかりに
なってしまいました。(^^; 試してみてください。
では, (^^)/~
山紫水明
//----- コメント整形.Mac -------------------------------------------//
// 秀丸マクロ用ですが,コメント符号を設定すれば,他にも利用すること
// ができます。
//オプション設定//
$comtop = "//"; //コメント符号を設定
#totab = 0; //スペースをタブに変換する場合は「1」
$searchbuffer = searchbuffer;
#searchoption = searchoption;
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
#cb = getregnum( "CRBurasage" );
closereg;
disabledraw;
menu "&1 全文で実行",
"&2 このコメントのみで実行",
"&3 全部取り消し",
"&4 新しい桁折りでやり直し";
#r = result;
if ( #r == 0 ) goto End;
else if( #r == 1 ) call AllReform;
else if( #r == 2 ) call Reform;
else if( #r == 3 ) call Cancel;
else {
call Cancel;
call AllReform;
}
End:
setsearch $searchbuffer, #searchoption;
endmacro;
AllReform:
gofiletop;
while( 1 ) {
searchdown $comtop;
if( !result ) break;
call Reform;
}
return;
Reform:
#n = 0; //新コメント
#line = lineno;
golineend2;
searchup $comtop;
#r = result;
if( #r == 0 || lineno < #line ) {
movetolineno 1, #line;
message "この行にはコメント符号がありません";
endmacro;
}
#x = x;
while( 1 ) {
golineend;
if( code == 0x0d || code == eof ) break;
if(#cb) right;
insert "\n";
if( #n == 0 ) call MakeSpace;
insert $s + $comtop;
if(#totab){
beginsel;
golinetop;
totab;
escape;
}
}
return;
MakeSpace:
$s = "";
while( ##i < #x ) {
$s = $s + " ";
##i = ##i + 1;
}
#n = 1;
return;
Cancel:
replaceallfast "[^\n]\\f\\n[ \t]+//\\f", "\\0\\2", regular;
return;
//----------------------------------------------------------//
|
|