4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #21341

    tabby
    Participant

    その 1。
    カーソル位置の文字列を検索対象にする「検索‐検索文字列を設定」を実行すると、
    検索ダイアログの「検索‐正規表現を使用する」のチェックが外れます。
    まずはこれが発端です。

    その 2。
    これを解決すべくあがいた時の事です。
     editor.ExecuteCommandByID(4325); // 検索文字列を取得
    だけを呼び出すマクロを実行すると、前述の通り検索ダイアログの
    「検索‐正規表現を使用する」のチェックが外れます。
    ここで直後に
     editor.ExecuteCommandByID(4574); // 正規表現を使用する
    を実行すれば、前者でオフ、後者でトグルなので、結果としてオンになる事を期待したのですが、
    実際には実行する度にオンとオフを繰り返します。

    調べてみると、検索ダイアログの「検索‐正規表現を使用する」がオンの状態で
     editor.ExecuteCommandByID(4325); // 検索文字列を取得
    を呼び出した直後に
     editor.QueryStatusByID(4574); // 正規表現を使用する
    を実行すると、取得した数値の上では eeStatusLatched が立っているのに、
    検索ダイアログを開くと正規表現がオフになっています。
    正しい状態が得られません。
    まるでバッファリングをして直前の状態を返しているかの様な挙動です。

    環境は EmEditor Professional (64bit) v14.8.1 on Windows 8.1 64bit です。

    #21342

    Yutaka Emura
    Keymaster

    tabby 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    次のバージョンでは、[検索文字列を取得] コマンドで、正規表現を使用するのチェックが外れないようにしました。ご意見ありがとうございました。
    公開されたらお試しください。

    後者のご質問について、これは、検索ツール バーが表示されている場合など、いろいろな条件で複雑になります。マクロのこのような設定の変更は完全にはサポートしていません。ご了承ください。

    今後もよろしくお願い申し上げます。

    #21344

    tabby
    Participant

    関連しそうな問題がありました。
    正規表現で検索するパターンをファイル中に例えば
     \beditor
    と書いておいて、範囲選択して検索文字列を取得すると、よく使う正規表現を
    いちいち打ち込まなくて済むので、よくこの方法を使います。
    この時、検索ダイアログの「正規表現を使用する」がオン、「エスケープシーケンスを使用する」がオフでも、
    検索文字列を取得すると先頭の“\”につられるのか
    「正規表現を使用する」がオフ、「エスケープシーケンスを使用する」がオンになってしまい、
    取得した文字列も「\\beditor」になります。

    元の正規表現フラグがオフになる問題と合わせて考えると、「検索文字列を取得」が何か自動判定をしているのでしょうか。
    できれば検索ダイアログの設定を維持していて欲しいです。

    #21348

    Yutaka Emura
    Keymaster

    tabby 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    先ほど公開した beta 2

    https://jp.emeditor.com/forums/topic/emeditor-v14-9-0-beta-2-%E3%82%92%E5%85%AC%E9%96%8B%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F/

    で対応いたしました。

    ご意見ありがとうございました。

    今後もよろしくお願い申し上げます。

4件の投稿を表示中 - 1 - 4件目 (全4件中)

このトピックに返信するにはログインが必要です。

友達に知らせる... Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone