|
タラすけさん、こんばんは。初めまして。にひらと申します。
先日は私が半年以上前に書きました「マクロってすごいですね」に
レスをつけて戴きましてありがとうございました(^^)。あれから
マクロを書きつづけております〜(^^;)。
タラすけさんが書かれたPerlの文法チェックマクロを少々
いじってみました。よかったらお使い戴けたらと思います(^^)。
-----------------------------------------------------------
// perlの文法チェックのマクロ
// タラすけさん(秀丸エディタマクロ作者会議室発言)
// run "perl -c " + filename + " >error.msg";
// openfile "error.msg";
//以下にひら変更。
// 【優先度】
// 1.環境変数TEMPを指定してある場合はそこに。
// 2.環境変数TMPを指定してある場合はそこに。
// 3.秀丸のバックアップフォルダを指定してある場合はそこに。
// 4.以上3つに当てはまらない場合はソースと同じフォルダに。
// ※1〜3の利点:デバッグ用に出力したファイルが一箇所に一ファイル残るだけ。
$tmp = getenv("TEMP") + "\\";
if(!result) $tmp = getenv("TMP") + "\\";
if(!result) {
call SubIntensiveChk;
if (#intensive) {
call SubBackupPath;
$tmp = $$return + "\\";
} else { $tmp = ""; }
run "perl -wc " + filename + " >" + $tmp + "errmsg.tmp";
openfile $tmp + "errmsg.tmp";
endmacro;
SubIntensiveChk:
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
#intensive = getregnum( "IntensiveBackup" );
closereg;
return;
SubBackupPath:
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
$$backpath = getregstr( "BackupPath" );
closereg;
//ルートかどうかチェック
##n = strstr(rightstr($$backpath,1),"\\");
if (##n == -1) {
$$backpath = $$backpath + "\\";
}
return $$backpath;
-----------------------------------------------------------
タラすけさんが書かれていた2行だけですと、チェックするたびその
フォルダにチェックした残骸が残ってしまうと思いましたので以上の
ようなマクロを書いてみました。こうしますと1〜3にあてはまった
場合は一箇所に一ファイル残るだけになる…筈(^^;)。
perlのオプションにwも一応つけてみました。
いかがでしょ。お役にたてば幸いです(^^)。
|
|