|
以下が多分ちゃんと動作しないと思います。
// ---- HmAnotherIndent.mac
jsmode "JScript\\" + currentmacrofilename;
js {
debuginfo(2);
function insertAnotherIndent() {
var orgIndent = getconfig("Indent");
try {
// インデント有効なら
if (orgIndent > 0) {
// ただの改行挿入
insert("\n");
// インデント無効なら
} else {
insert("\n", 2, 0x0001|0x0010); // ★ ここが実行される時であっても有効な改行が入らない。
}
} catch(e) {
console.log(e);
}
}
insertAnotherIndent();
}
// -------------------------------------------------
次のように insert を(ネイティブではなく)マクロ本来の insert 挙動に戻すと機能するので、なんかどっかでバグっているかと。
// ---- HmAnotherIndent.mac
jsmode "JScript\\" + currentmacrofilename;
js {
var gtv = hidemaru.getVar;
var evm = hidemaru.evalMacro;
var st1s="var s=m+' ';for(var i=0;i<arguments.length;i++){if(i>0)s+=',';var a=arguments[i];if(i==0||typeof(a)=='string'){s+='R\"\xFF('+a+')\xFF\"';}else{s+=a;}}evm(s+';###=result;');var r=gtv('###');";
insert = function(){var m="insert";eval(st1s);return r;}; // ★ insertをネイティブではなく、元来のマクロの挙動にする
debuginfo(2);
function insertAnotherIndent() {
console.log("OK");
var orgIndent = getconfig("Indent");
try {
// インデント有効なら
if (orgIndent > 0) {
// ただの改行挿入
insert("\n");
// インデント無効なら
} else {
insert("\n", 2, 0x0001|0x0010); // これは大丈夫。機能する
}
} catch(e) {
console.log(e);
}
}
insertAnotherIndent();
}
|
|