|
>beginlinesel, copyline, cutline でもできたらいいということで、同じように
>検討します。
よろしくお願いします。
>duplineについては、どういうものが期待される結果でしょうか。
私は下記の動作を考えていました。【〜】が選択範囲として、
実行前:
あああああ【ああああああああああああああ
ええええええええええええええ】えええええ
実行後:
あああああああああああああああああああ
えええええええええええええええええええ
【あああああああああああああああああああ
えええええええええええええええええええ】
>各行について2重になるとして、
もしかして秀丸担当さんは下記の動作を考えていらしたでしょうか?
実行前:
あああああ【ああああああああああああああ
ええええええええええええええ】えええええ
実行後:
あああああああああああああああああああ
あああああ【ああああああああああああああ】
えええええええええええええええええええ
【ええええええええええええええ】えええええ
>複数選択のことも考えるとちょっとややこしいことになりそうです。
たしかに、複数選択で行の二重化と言われても、ユーザーが何を期待しているのか明
確でないかもしれません。
とりあえずマクロを書いてみましたが、これが万人を納得させる動作かと言われると、
ちょっと自信がないです。
setcompatiblemode 0x12020F;
begingroupundo;
if (rectselecting) {
tomultiselect;
}
if (multiselecting) {
call MultiSelected;
} else if (selecting) {
call Selected;
} else {
call NoSelected;
}
endgroupundo;
endmacro;
NoSelected:
dupline;
return;
Selected:
selectline 1;
call Core;
return;
MultiSelected:
$$w1 = currentmacrobasename + "#selection1";
$$w2 = currentmacrobasename + "#selection2";
colormarker 0xFFFFFF, 0xFF6666, 11, 1, 0, $$w1;
##bx = seltopx;
##by = seltopy;
gofiletop;
nextcolormarker 0x09, 0, $$w1;
while (result) {
beginsel;
nextcolormarker 0x0A, 0, $$w1;
endsel;
question "ここ"; if (!result) endmacro;
selectline 1;
deletecolormarker $$w1;
call Core;
colormarker 0xFFFFFF, 0x993333, 11, 2, 0, $$w2;
nextcolormarker 0x01, 0, $$w1;
}
moveto ##bx, ##by;
selectcolormarker $$w2;
deletecolormarker $$w2;
return;
Core:
question "これ"; if (!result) endmacro;
##dx = selendx;
##dy = selendy;
$$text = gettext(seltopx, seltopy, selendx, selendy, false);
moveto ##dx, ##dy;
insert $$text;
beginsel;
moveto ##dx, ##dy;
endsel;
return;
|
|