Open ds14050 opened 6 years ago
現状の実装では「出せません」が回答例な気がします。 が、コマンドラインから置換ダイアログを出せるようにしてもいいと思います。
というか、ぼくその書込みにレス付けた気がしないでもないです。 (このネタ何度も書き込まれてるので、昔レス付けた、という話です。)
タイトルが混乱していました。マクロは関係ありません。
出せない理由を教えてもらえると省ける時間があると思いますが、いかがですか?
出せない理由を教えてもらえると省ける時間があると思いますが、いかがですか?
-grepdlg
はGREPダイアログを出すためのものだからです。
サクラエディタには「GREPダイアログを出す」コマンドがありますが、
コマンドラインから起動する場合にダイアログ出す処理はそれを使っていません。
現状のコードを基にGREP置換のダイアログを出す実装をするなら、
pEditWnd->m_cDlgGrepReplace.DoModal
を呼ぶための条件分岐を増やすことになると思います。
「出せません」は「現状では出せません」です。
この条件分岐追加を「足せばいいだけじゃん」と見るなら、足してもいいと思います。
出せない特別な理由があるわけではなく、出していないだけということなら現状認識は一致します。
「これを指定すると置換になる」とヘルプで説明されている -GREPR オプションが追加された際に、-GREPDLG オプションが GREP 置換ダイアログを表示できるように拡張されていればよかったのだと思います。
-GREPR=
は置換文字列を指定するものなので何も置換文字列を指定せずにダイアログを表示できるように (参考: https://github.com/sakura-editor/sakura/issues/410#issuecomment-419089113)
-GREPREPLACEDLG
とか別のオプションを用意する
(-GREPDLG
と両方指定された場合は -GREPREPLACEDLG
を優先する)
するというのがいいと思います。
他のオプションは単語区切りがないので合わせるなら -GREPREPLACEDLG
だが
-GREPREPLACEDLG
は単語の区切りがわかりにくいので -GREP-REPLACE-DLG
みたいに
したいところだが、
-GREPR=
でも -GREPR=""
でも有効なオプションでした。
コマンドラインを呼び出す人に形式的な作業(ダイアログを出したいだけなのに2種類のオプションを使い分けるなど)を強いないようにしたいですが、実際の使用場面を知りません。
-GREPR= でも -GREPR="" でも有効なオプションでした。
はい。上記が有効そうなのは、 #403 の調査をしている中で確認しました。
「これを指定すると置換になる」とヘルプで説明されている -GREPR オプションが追加された際に、-GREPDLG オプションが GREP 置換ダイアログを表示できるように拡張されていればよかったのだと思います。
これでいいと思います。
ふぁんくらぶ part18から転載です。
GREP置換ダイアログが出るべきだと考えられるので、単純に実装が漏れているようです。ダイアログなしでコマンドラインから実行する場合は、DoGrep を呼び出すまでは一本道ですが、その内部で検索と置換が分岐して対応していました。
着手は、していません。