置換を。。。
置換ですが、とりあえず選択範囲内の置換ができないと不便です。それから、置換のダイアログが検索にヒットするたびに生成・破棄を繰り返していて、表示がちらつくのがやな感じなのでそれも修正してみます。
後者からいじってみようかな。
まず置換のシーケンスですが、スクリプト側でいう Caret.Replace() は、萌ディタ内部ではキャレットではなくビューが持つメソッドになっています。これは、検索のオプションで「すべてのバッファを対象」というのがあって、検索の途中でキャレットが切り替わってしまう可能性があるためです。
そいで、実際に検索/置換する処理自体はキャレットが持ってて、逐次ビューから呼ばれるようになっている。その中で、検索にヒットした場合置換ダイアログを生成して表示して。。。とやっています。つまり、ダイアログは呼び出しの最後の最後ということです。
置換ダイアログをちらつかないようにするには、置換を開始したらダイアログを表示しっぱなしにしておけばよさそうですが。ダイアログがモーダルなので、ダイアログ側に処理の主導権を握られてしまう。ダイアログをまず表示して、そこから検索/置換を制御する形になる。そうすると置換のシーケンスがごっそり変わってしまいます。
どうするかというと、ごっそり変えます。
by knife37
| 2004-12-15 18:29
| 妄想を申そう
| Top
|