|
IKKI です。お世話になっております。
# なんか当初の問題がうやむやになっている気がするので、もう一度。
β13の仕様ではマクロ実行後に意図しない文字列が強調されることがあります。
以下に例を挙げます。
-------- sample.txt --------
hajime
mohan
tenuki
-------- mohan.mac --------
// 初期状態を記憶
#x = x;
#y = y;
$s = searchbuffer;
#f = searchoption;
// 検索を使った処理
setsearch "mohan", 0x03;
finddown;
// 初期状態を復元
moveto #x, #y;
setsearch $s, #f;
以下、強調表示の状態(画面上で検索文字列が強調表示されているかどうか)を
hilighting と書きます。
■手順
0. sample.txt を開く
1. 検索ダイアログで [検索文字列の強調] を ON にして "hajime" を検索
2. [Esc] を押す(hilighting を OFF にする)
3. mohan.mac を実行
■期待される結果
2.の時点の状態に戻る。 hilighting は OFF.
■実際の結果
"mohan" が強調表示される。検索バッファには "hajime" が入っている。
■問題点
・従来のマクロでは hilighting が保存されない
(勝手に OFF になるならまだしも、勝手に ON になるのは困る)
・強調文字列と検索バッファの内容が異なる
■意見
「マクロを実行したら hilighting が ON になる」というのは
従来のマクロにとって想定外の状態です。
新機能の追加にあたってマクロの互換性を重視するのであれば、
実行結果がなるべく想定内の状態になるようにしてほしいです。
■提案
解決策を具体的にどうするかは秀丸担当さんの判断事項になると思いますが、
私も turukame.3:07083 を踏まえてもう一度考えてみました:
・searchdown 等は hilight/nohilight を付けないかぎり hilighting を
変えない。
・setsearch は強調文字列を更新し、 hilighting が ON なら再描画を行う。
hilighting は変えない。
・finddown 等は hilighting を変えない。変えたいときは hilightfound 文
を併用する。
これだと、マクロで hilighting を ON にする方法は次のいずれかになります。
-------- a.mac --------
searchdown "hoge", hilight;
-------- b.mac --------
setsearch "hoge", 0x00;
finddown;
hilightfound 1;
これ以外で hilighting が ON になることはありませんから、従来のマクロは
hilighting に影響を与えません。
うーん、なにか見落としがあるかな?
|
|