sakura
sakura copied to clipboard
「検索マークの切り替え」をすると検索ダイアログの検索設定が変わってしまう
問題内容
題名のとおりの現象です。
例として「単語単位で検索」のチェックボックスが解除されてしまう様子を動画にしました。
普段使っている中で少し煩雑さを感じる部分です。
いちユーザーの感覚からすると「検索ダイアログ」と「検索マークの切り替え」とは直接つながりのない機能に見えるので、検索設定は維持されるのが自然なのではと思いました。
※ヘルプにはオフになることが明記されていますので仕様通りの動作ではあります。 https://sakura-editor.github.io/help/HLP000136.html
再現手順
- 検索ダイアログを開き、「単語単位で検索」または「正規表現」にチェックを入れて検索を行う。
- メニューから「検索」→「検索マークの切り替え」を実行する。
- 検索ダイアログを開くと「単語単位で検索」または「正規表現」のチェックが解除されている。 ★発生
再現頻度
100%
問題のカテゴリ
- 仕様の問題
- プログラムの動作上の問題
環境情報
- OS バージョン Windows 10 Home 64bit
- サクラエディタバージョン
サクラエディタ v2.4.2.0 32bit dev
(GitHash 062cda8052a9e25488ac2990b3d5b1050452d2fb)
(GitURL [email protected]:suconbu/sakura.git)
Compile Info: V1928 WPR WIN601/I800/C000/N601
Last Modified: 2021/5/26 01:39:54
スクリーンショット
検索機能は共有メモリ(≒グローバル変数)を経由して実現されているので、 現状では「仕様なのでしゃあないっす」が一時回答になると思います。
「その仕様、おかしくね?」という意見はあってしかるべきですが、 たぶん「おかしくね?」を言うには代案を提示する責任がある気がするのでどうでしょう?です。
「その仕様、おかしくね?」という意見はあってしかるべきですが、 たぶん「おかしくね?」を言うには代案を提示する責任がある気がするのでどうでしょう?です。
問題内容の下の方にちょっと書きましたが、「検索マークの切り替えをした後でも検索ダイアログの設定は以前のものが維持される」が使いやすいのではと思いました。
共有メモリ上の検索設定を直接書き換えているのではなく、一旦 CViewCommander のメンバーとしてコピー後、書き換えをしているようでした。 これなら共有メモリ側の検索設定は変わらないはずですが……
https://github.com/sakura-editor/sakura/blob/5135813a52b3339eb94462c66dab6407ac666a9c/sakura_core/cmd/CViewCommander_Search.cpp#L1520-L1524
その直後で共有メモリの側へ書き戻しがされていました。
https://github.com/sakura-editor/sakura/blob/5135813a52b3339eb94462c66dab6407ac666a9c/sakura_core/cmd/CViewCommander_Search.cpp#L1523-L1530
お試しで 1529 行目をコメントアウトすると自分の期待する動作にはなったのですが、 意図的にされているように見えるので、もしかすると書き戻しをしなければいけない理由が何かあるのかもしれないですね。