sakura-editor / sakura

SAKURA Editor (Japanese text editor for MS Windows)
https://sakura-editor.github.io/
Other
1.23k stars 162 forks source link

GREP置換ダイアログを出すコマンドラインオプションが実装されていない。 #385

Open ds14050 opened 6 years ago

ds14050 commented 6 years ago

ふぁんくらぶ part18から転載です。

コマンドラインオプションで -grepmode -grepr="hoge" -grepdlg -gcode=99 -gopt=SLPW1H -gfolder=c:\hoge ってやるとGREP置換ダイアログが出ることを期待しているのですが GREP検索ダイアログが出ます GREP置換ダイアログはどうやったら出るのでしょう?

GREP置換ダイアログが出るべきだと考えられるので、単純に実装が漏れているようです。ダイアログなしでコマンドラインから実行する場合は、DoGrep を呼び出すまでは一本道ですが、その内部で検索と置換が分岐して対応していました。

着手は、していません。

berryzplus commented 6 years ago

現状の実装では「出せません」が回答例な気がします。 が、コマンドラインから置換ダイアログを出せるようにしてもいいと思います。

というか、ぼくその書込みにレス付けた気がしないでもないです。 (このネタ何度も書き込まれてるので、昔レス付けた、という話です。)

ds14050 commented 6 years ago

タイトルが混乱していました。マクロは関係ありません。

出せない理由を教えてもらえると省ける時間があると思いますが、いかがですか?

berryzplus commented 6 years ago

出せない理由を教えてもらえると省ける時間があると思いますが、いかがですか?

-grepdlg はGREPダイアログを出すためのものだからです。 サクラエディタには「GREPダイアログを出す」コマンドがありますが、 コマンドラインから起動する場合にダイアログ出す処理はそれを使っていません。

https://github.com/sakura-editor/sakura/blob/4c58aeb2fda06c5bc966a14233fc99cde351f774/sakura_core/_main/CNormalProcess.cpp#L277-L278

現状のコードを基にGREP置換のダイアログを出す実装をするなら、 pEditWnd->m_cDlgGrepReplace.DoModal を呼ぶための条件分岐を増やすことになると思います。 「出せません」は「現状では出せません」です。 この条件分岐追加を「足せばいいだけじゃん」と見るなら、足してもいいと思います。

ds14050 commented 6 years ago

出せない特別な理由があるわけではなく、出していないだけということなら現状認識は一致します。

「これを指定すると置換になる」とヘルプで説明されている -GREPR オプションが追加された際に、-GREPDLG オプションが GREP 置換ダイアログを表示できるように拡張されていればよかったのだと思います。

m-tmatma commented 6 years ago

410 を検討しているのですが、-GREPR= は置換文字列を指定するものなので

何も置換文字列を指定せずにダイアログを表示できるように (参考: https://github.com/sakura-editor/sakura/issues/410#issuecomment-419089113)

-GREPREPLACEDLG とか別のオプションを用意する (-GREPDLG と両方指定された場合は -GREPREPLACEDLG を優先する)

するというのがいいと思います。

他のオプションは単語区切りがないので合わせるなら -GREPREPLACEDLG だが -GREPREPLACEDLG は単語の区切りがわかりにくいので -GREP-REPLACE-DLG みたいに したいところだが、

ds14050 commented 6 years ago

-GREPR= でも -GREPR="" でも有効なオプションでした。

コマンドラインを呼び出す人に形式的な作業(ダイアログを出したいだけなのに2種類のオプションを使い分けるなど)を強いないようにしたいですが、実際の使用場面を知りません。

m-tmatma commented 6 years ago

-GREPR= でも -GREPR="" でも有効なオプションでした。

はい。上記が有効そうなのは、 #403 の調査をしている中で確認しました。

「これを指定すると置換になる」とヘルプで説明されている -GREPR オプションが追加された際に、-GREPDLG オプションが GREP 置換ダイアログを表示できるように拡張されていればよかったのだと思います。

これでいいと思います。