検索文字列の強調とマクロNo.06971
fleakflap さん 05/03/29 12:11
 
 「検索文字列の強調」をたいへん便利に使わせてもらっています。
ところが先日、検索系のマクロを実行したところ、画面がまっ黄色になって驚いてし
まいました。調べてみると、次のようなマクロ文が影響していることに気が付きまし
た。

searchdown "\.",regular;

 つまり、検索ダイアログボックスで「検索文字列の強調」をONにしている場合、マ
クロでsearch系文を実行すると、マクロ側から望むと望まないに関わらず、強制的に
検索文字列が強調されてしまう、というのが現状のようです。

 これは、マクロ側かららすれば非常にマズい仕様で、可能なら他のword,regular等
と同列の検索オプションとしてパラメタによる指定にした方が、マクロ仕様として統
一感があるように思われますが、いかがでしょうか?

[ ]
RE:06971 検索文字列の強調とマクロNo.06972
秀丸担当 さん 05/03/29 15:08
 

> これは、マクロ側かららすれば非常にマズい仕様で、可能なら他のword,regular等
>と同列の検索オプションとしてパラメタによる指定にした方が、マクロ仕様として統
>一感があるように思われますが、いかがでしょうか?

searchdown等のオプションは、regularなどと仕様を合わせるとしたら、検索ダ
イアログのチェックボックスの記憶状態と連動させることになります。

オプションを付け加えるとしたら、hilightとnohilightを追加して、従来のマク
ロでは、「検索文字列の強調」のチェック状態は変化させないようにするのが統
一感があると思います。
これを追加したとしても、黄色くなってビックリという状況は解決できません。


β10では、setsearchとfinddownを組み合わせて使ったマクロで、勝手に「検索
文字列の強調」のチェック状態が変わらないように修正しました。

これは従来のマクロで「検索文字列の強調」を無効にするための修正ではなく、
逆のことです
。従来のマクロでも、「検索文字列の強調」のチェック状態は勝手に変わること
のないようにした修正です。

[ ]
RE:06972 検索文字列の強調とマクロNo.06978
fleakflap さん 05/03/29 19:14
 
>searchdown等のオプションは、regularなどと仕様を合わせるとしたら、検索ダ
>イアログのチェックボックスの記憶状態と連動させることになります。

 あっ、秀丸の検索マクロは、検索ダイアログボックスの状態に影響していた
んですね。肝心なことを失念していましたm(_ _)m

>オプションを付け加えるとしたら、hilightとnohilightを追加して、従来のマク
>ロでは、「検索文字列の強調」のチェック状態は変化させないようにするのが統
>一感があると思います。
>これを追加したとしても、黄色くなってビックリという状況は解決できません。

 とりあえず、過去のマクロとの踏襲性をあまり気にすることもないですね。あま
り厳密にやるとなるとほぼ不可能というか、秀丸のバージョンをチェックして…な
んてことは、対投資効率的に無意味ですので。

 ただ単純に、検索ダイアログボックスにあるチェックボックスの指定は、マクロ
文の他のオプションがそうであるように、search系文のパラメタオプションとして
欲しいような気もします。ま、なくても、searchoptionでフラグを立てればいいよ
うです(少々面倒ですが…)。


>β10では、setsearchとfinddownを組み合わせて使ったマクロで、勝手に「検索
>文字列の強調」のチェック状態が変わらないように修正しました。

>。従来のマクロでも、「検索文字列の強調」のチェック状態は勝手に変わること
>のないようにした修正です。

 了解しました。どうりで、なんだか妙な動きをする場合があると、頭をひねってい
たところでした。
 いずれにしても、検索文字列の強調は、極めて便利でっす!!!

[ ]
RE:06978 検索文字列の強調とマクロNo.06993
秀丸担当 さん 05/03/30 17:16
 

> ただ単純に、検索ダイアログボックスにあるチェックボックスの指定は、マクロ
>文の他のオプションがそうであるように、search系文のパラメタオプションとして
>欲しいような気もします。ま、なくても、searchoptionでフラグを立てればいいよ
>うです(少々面倒ですが…)。

searchdown等に、hilightとnohilightを付けるようにしてみようと思います。

[ ]
RE:06993 検索文字列の強調とマクロNo.07047
fleakflap さん 05/04/02 10:32
 
 β12で確認致しましたm(_ _)m

 その一方で、旧来からのマクロで「不要な強調」が目に付く場合もあることを実感
しました。(公開マクロではアレなので、例えば個人的に使っている"「"から"」"と
いう発言内容を選択するマクロ。先頭の「と、末尾の」を検索して選択するだけです
が、文書全体の」が強調表示されて、違和感が残ります。さらにその一方で、強制的
に強調表示されるので、プラス効果のあるマクロもあり、難しいのですが…)

 これをバージョンアップによる変更、として無視するのも一案ですが、以下、思い
ついた対応を列挙しておきます。


●旧版秀丸での検索系マクロとの継続性の対応法
 動作環境の検索に「検索系マクロでVer.5以前の表示を維持」のようなオプション
を追加。動作としては、このオプションが選択されていると、検索系マクロで『hili
ght,nohilightの指定がない場合は、nohilightが選択されたものとする』という動き
をします。デフォルトでは、本オプションは外れており、β12の動作をします。

(動作環境のオプション増加は問題ではありますが…)

[ ]
RE:07047 検索文字列の強調とマクロNo.07049
Iranoan さん 05/04/02 10:49
 
 秀丸担当さん、fleakflap さん今日は、Iranoan です。
> ●旧版秀丸での検索系マクロとの継続性の対応法
>  動作環境の検索に「検索系マクロでVer.5以前の表示を維持」のようなオプション
> を追加。動作としては、このオプションが選択されていると、検索系マクロで『hili
> ght,nohilightの指定がない場合は、nohilightが選択されたものとする』という動き
> をします。デフォルトでは、本オプションは外れており、β12の動作をします。
 この様なことをしなくても、オプションは hilight のみとし、hilight オ
プションが付いたときだけ強調すれば良いと思います。これなら既存のマクロ
は今までと同じ動作をし、今後作成するマクロは強調をさせることもできます。
 どうでしょう?→秀丸担当さん

 #何故、nohilight を用意したのか意味が分かりません。nocasesense や
noregular の様なオプションは例外とすべきだと思います。

[ ]
RE:07049 検索文字列の強調とマクロNo.07052
fleakflap さん 05/04/02 12:40
 
> #何故、nohilight を用意したのか意味が分かりません。nocasesense や
>noregular の様なオプションは例外とすべきだと思います。

 その理由は、秀丸担当さんが下記にご指摘されている通りです。

http://www.maruo.co.jp/turukame/3/x06971_.html#6972
>オプションを付け加えるとしたら、hilightとnohilightを追加して、従来のマク
>ロでは、「検索文字列の強調」のチェック状態は変化させないようにするのが統
>一感があると思います。

[ ]
RE:07052 検索文字列の強調とマクロNo.07055
Iranoan さん 05/04/02 13:50
 
 fleakflap さん今日は、Iranoan です。
 今、読み返してみてやっと解りました。
> >オプションを付け加えるとしたら、hilightとnohilightを追加して、従来のマク
> >ロでは、「検索文字列の強調」のチェック状態は変化させないようにするのが統
> >一感があると思います。        ^^^^^^^^^^^^^^^^^^
下線部が大事なわけですね。そうすると、
> 先頭の「と、末尾の」を検索して選択するだけです
> が、文書全体の」が強調表示されて、違和感が残ります。さらにその一方で、強制的
> に強調表示されるので、プラス効果のあるマクロもあり、難しいのですが…)
への対応は、
>  動作環境の検索に「検索系マクロでVer.5以前の表示を維持」のようなオプション
> を追加
するより、マクロを適宜書き換えることだと思います。オプションにしては、
その設定によって動作が変わるので、却って解りにくくなると思います。

[ ]
RE:07049 検索文字列の強調とマクロNo.07056
IKKI さん 05/04/02 13:55
 
IKKI です。こんにちは。

>  #何故、nohilight を用意したのか意味が分かりません。nocasesense や
> noregular の様なオプションは例外とすべきだと思います。

同意見です。

ついでに言うと searchoption のビット13も難解で、このビットが追加された
経緯を知らないと意味がわからないんじゃないかと思います。


検索文字列の強調とマクロとの関係では2つの問題があると認識しています:

 ・マクロを実行したら真っ黄色になってビックリ
 ・マクロを実行したら強調が解除されてガッカリ

この問題に対し、私個人は次のように考えます:

 ・ビックリ問題は「互換性が損なわれた」と捉え、秀丸側で解決すべき
 ・ガッカリ問題は「新機能追加のため」と捉え、マクロ側で対応すべき
  (古いマクロを実行したら新しい機能が解除されるのは仕方がない)


以下は私見というか思いつきですが…
「検索文字列の強調」はフラグではなく、「選択した範囲内のみ検索」と
同じ扱いにしてはどうでしょう?

 (1) 検索ダイアログ … チェックボックスで指定
 (2) searchdown 等 … hilight オプションで指定
 (3) setsearch … hilightfound 文を併用
 (4) searchoption … hilighting キーワードを追加し、これを併用

(2)では hilight オプションが付いてないときは強調を解除します。これで
従来の searchdown 等を使っているマクロは互換性が保たれます。

(3)は従来の setsearch と finddown 等を組み合わせて使っているマクロで、
 ・setsearch した時点で強調が解除される
 ・強調するには setsearch の後に hilightfound 1; を追加する
ということです。

(4)は従来の

  $s = searchbuffer;
  #f = searchoption;
  // 〜 マクロ本体 〜
  setsearch $s, #f;

のような処理を今後は

  $s = searchbuffer;
  #f = searchoption;
  #h = hilighting;
  // 〜 マクロ本体 〜
  setsearch $s, #f;
  hilightfound #h;

のように書くということです。


以上(2)〜(4)の方策によりビックリ問題は解決します。
ガッカリ問題は解決しませんが、マクロを修正して「ver.5 対応」とするのが
妥当であり、秀丸側がそこまで面倒を見る必要はないと感じます。

[ ]
RE:07055 検索文字列の強調とマクロNo.07065
fleakflap さん 05/04/03 00:09
 
>マクロを適宜書き換えることだと思います。

 確かに。
 ただ、このスレッドではそれは了解済みの事であって、秀丸担当さん
は、なんとか既存のマクロもそれほど不自然な動作に見えないようにす
るにはどうするか、という所で、苦心されているのだろうと思われます。

 個人的には既に「過去のマクロの踏襲性を気にしない」と発言して
いるように、過去のマクロは切り捨てる、という発想もあるにはあり
ますので、どんな仕様になっても、それはそれ、とは思います…。


[ ]
RE:07056 検索文字列の強調とマクロNo.07066
fleakflap さん 05/04/03 00:09
 
 当初は、私もIKKIさんのような仕様イメージをもっていましたが、
秀丸担当さんの「#6972」の発言で、下記の2項目をなんとかバランス
させようと、色々考えておられる、と思い色々、発言したわけです。

>・ビックリ問題は「互換性が損なわれた」と捉え、秀丸側で解決すべき
>・ガッカリ問題は「新機能追加のため」と捉え、マクロ側で対応すべき
> (古いマクロを実行したら新しい機能が解除されるのは仕方がない)

 おそらく、上記の動作はβ9辺りの動作だろうと思われます。

[ ]
RE:07065 検索文字列の強調とマクロNo.07071
Iranoan さん 05/04/03 14:35
 
 fleakflap さん今日は、Iranoan です。
>  ただ、このスレッドではそれは了解済みの事であって、秀丸担当さん
> は、なんとか既存のマクロもそれほど不自然な動作に見えないようにす
> るにはどうする
 それなら、IKKI さんの言われるように、現在検索文字列の強調がされてい
るかどうか調べる hilighting キーワードがあれば良いと思います。

[ ]
RE:07071 検索文字列の強調とマクロNo.07073
fleakflap さん 05/04/03 17:14
 

> それなら、IKKI さんの言われるように、現在検索文字列の強調がされてい
>るかどうか調べる hilighting キーワードがあれば良いと思います。

 それは何度も書いていますように、「新しく作るマクロ」の場合は、ご
指摘の通りで問題ないと思いますし、私もそうした対応をお願いしたつも
りでいたのですが、秀丸担当さんは、さらにその上をお考えで、既存のマ
クロでも、なんとか、この機能を使えないかと、配慮されてのことで一連
の機能を作られたと了解しています。
(これも書きましたが、既存のマクロでも、検索主体のマクロでは、強調
が目的以上の効果を発揮します。逆に、ある文字列を検索して続いて文字
挿入などを行うマクロでは、強調が副作用として出てしまいます。後者の
マクロは意外に多いことが考えられるので、何とか対応できれば、という
のが現状だったような気がします)

 私個人も「新機能追加で過去のマクロが切り捨て」られてもそれはそれ
で仕方ないとも考えています。
 その一方で、秀丸を制作してきたスタッフが、「過去の動作・仕様・マ
クロなどの資産を極力、継続させよう」としてきた特筆すべき経緯がある
とも思われます。今回の対応もそうした現れかと。その細かな心配りとい
うか、バージョンアップへの姿勢というのは、素晴らしいものを感じます。


 現在の状態は、あまり建設的な展開をしていないと感じられるので、と
りあえず、秀丸担当さんにお任せして、このスレッドは終了した方がよろ
しいかと存じますm(_ _)m


[ ]
RE:07073 検索文字列の強調とマクロNo.07077
Iranoan さん 05/04/04 00:15
 
 fleakflap さん今日は、Iranoan です。
>  それは何度も書いていますように、「新しく作るマクロ」の場合は、ご
> 指摘の通りで問題ないと思いますし、私もそうした対応をお願いしたつも
> りでいたのですが、秀丸担当さんは、さらにその上をお考えで、既存のマ
> クロでも、なんとか、この機能を使えないかと、配慮されてのことで一連
> の機能を作られたと了解しています。
 私が言いたかったのは、次の三点です。
(1) 機能+hilight, nolihilight が追加されたのだから、既存のマクロについ
    ては、ある程度
    >  ・マクロを実行したら真っ黄色になってビックリ
    は、致し方ない。
(2) また
    > 「検索系マクロでVer.5以前の表示を維持」
    は、検索文字列の強調をする為に、上記設定を ON にするマクロが 1 つ
    でもあれば、問題の解決にはならず、設定が複雑になるだけなので反対。
(3) 少なくとも
    >  ・マクロを実行したら強調が解除されてガッカリ
    に対処するために、hilighting が要るだろう

[ ]
RE:07077 検索文字列の強調とマクロNo.07078
fleakflap さん 05/04/04 07:46
 
 う〜ん、どうも私の表現がまずくて、十分に言い切れずすいません。

>(1) 機能+hilight, nolihilight が追加されたのだから、既存のマクロに
>(2) また
>(3) 少なくとも

 この3点は、いずれも了解済みで、秀丸担当さんとの話は進んでいた、
というこのがスレッドの展開だった、ということです。
 その3点を了解しながらも、さらに新旧両者によい仕組みはないかと。

[ ]
RE:07078 検索文字列の強調とマクロNo.07083
秀丸担当 さん 05/04/04 10:46
 

searchdown等のhilightオプションの件は、いろいろ考えると、β12の仕様のほ
うが都合がいいです。

最大のポイントは、検索ダイアログのチェック状態が記憶されていることで、マ
クロを実行したら気付かないうちにチェックが解除されていたということを避け
るためです。

>(3) 少なくとも
>    >  ・マクロを実行したら強調が解除されてガッカリ
>    に対処するために、hilighting が要るだろう

これは、setsearchのフラグのビット13を設けたことで、解決していると思い
ます。
ちなみに hilightfound文は、Escを押したときのように一時的に変更するだけで、
ダイアログのチェック状態の記憶は変化させません。

[ ]
RE:07083 検索文字列の強調とマクロNo.07087
Iranoan さん 05/04/04 12:14
 
 秀丸担当さん今日は、Iranoan です。
> >    に対処するために、hilighting が要るだろう
>
> これは、setsearchのフラグのビット13を設けたことで、解決していると思い
> ます。
 解決できないと思います。何故なら、setsearch の 12, 13 ビットは、あく
までそぞれぞれのダイアログ・ボックスの「検索文字列を強調」が ON になっ
ているかですよね。しかしこれだけの情報では、「今現在検索文字列が強調さ
れているかどうか?」は解りません。言い換えると、「検索文字列を強調」が
ON になっているときに検索/置換をし、その後 [Esc] でそれを解除したかど
うかを知る方法がない、ということです。
 更にいい添えると、「選択した範囲内のみ」を ON にしたとき、現在のカー
ソル位置が中間色で表示される部分かどうか知る方法がない、のと似たことで
す。

 P.S これを書いていて、
http://www.maruo.co.jp/hidesoft/4/x04571_.html#4577
に回答を頂いていないことを思い出しました。

[ ]
RE:07078 検索文字列の強調とマクロNo.07088
Iranoan さん 05/04/04 12:14
 
 fleakflap さん今日は、Iranoan です。
>  この3点は、いずれも了解済みで、秀丸担当さんとの話は進んでいた、
> というこのがスレッドの展開だった、ということです。
 それは有り得ないでしょう。何故なら、「検索系マクロでVer.5以前の表示
を維持」に付いては、このスレッドの最初で初めてでてきた話題だからです。
 ##私が見落としているだけで、以前に書き込まれていたりして(^^;。

 本題の
> 新旧両者によい仕組みはないかと。
に付いては、既存のマクロを Ver.4.00 までとこれ以上互換性を保つ方法はな
い、若しくは互換性を保とうとすると、Ver.5.00 以降の設定・マクロが複雑
になるだけであまり効用はない、と思っています。
 ##難しい部分はありますが。

[ ]
RE:07087 検索文字列の強調とマクロNo.07107
秀丸担当 さん 05/04/04 16:12
 

> 解決できないと思います。何故なら、setsearch の 12, 13 ビットは、あく
>までそぞれぞれのダイアログ・ボックスの「検索文字列を強調」が ON になっ
>ているかですよね。しかしこれだけの情報では、「今現在検索文字列が強調さ
>れているかどうか?」は解りません。言い換えると、「検索文字列を強調」が
>ON になっているときに検索/置換をし、その後 [Esc] でそれを解除したかど
>うかを知る方法がない、ということです。

現在検索文字列の強調がされているかどうかを知ることはできません。
マクロ会議室の話題にもあった、現在「選択した範囲のみ」であるかどうかを知
る方法もありません。

マクロ実行後、検索ダイアログのチェックボックスの状態をマクロ実行前の状態
に復元することはsetsearchで解決されていますが、見た目上の現在の強調状態
を復元するには、hilighting が必要かもしれません。

[ ]
RE:07107 検索文字列の強調とマクロNo.07116
Iranoan さん 05/04/04 17:27
 
 秀丸担当さん今日は、Iranoan です。
> 見た目上の現在の強調状態
> を復元するには、hilighting が必要かもしれません。
 追加するかどうかは、お任せしますが、そういうことです(^^)。

[ ]
RE:07066 検索文字列の強調とマクロNo.07136
IKKI さん 05/04/05 14:54
 
IKKI です。お世話になっております。
# なんか当初の問題がうやむやになっている気がするので、もう一度。

β13の仕様ではマクロ実行後に意図しない文字列が強調されることがあります。
以下に例を挙げます。

  -------- sample.txt --------
  hajime
  mohan
  tenuki

  -------- mohan.mac --------
  // 初期状態を記憶
  #x = x;
  #y = y;
  $s = searchbuffer;
  #f = searchoption;
  // 検索を使った処理
  setsearch "mohan", 0x03;
  finddown;
  // 初期状態を復元
  moveto #x, #y;
  setsearch $s, #f;

以下、強調表示の状態(画面上で検索文字列が強調表示されているかどうか)を
hilighting と書きます。

■手順
 0. sample.txt を開く
 1. 検索ダイアログで [検索文字列の強調] を ON にして "hajime" を検索
 2. [Esc] を押す(hilighting を OFF にする)
 3. mohan.mac を実行

■期待される結果
 2.の時点の状態に戻る。 hilighting は OFF.

■実際の結果
 "mohan" が強調表示される。検索バッファには "hajime" が入っている。

■問題点
 ・従来のマクロでは hilighting が保存されない
  (勝手に OFF になるならまだしも、勝手に ON になるのは困る)
 ・強調文字列と検索バッファの内容が異なる

■意見

「マクロを実行したら hilighting が ON になる」というのは
従来のマクロにとって想定外の状態です。
新機能の追加にあたってマクロの互換性を重視するのであれば、
実行結果がなるべく想定内の状態になるようにしてほしいです。

■提案

解決策を具体的にどうするかは秀丸担当さんの判断事項になると思いますが、
私も turukame.3:07083 を踏まえてもう一度考えてみました:

 ・searchdown 等は hilight/nohilight を付けないかぎり hilighting を
  変えない。
 ・setsearch は強調文字列を更新し、 hilighting が ON なら再描画を行う。
  hilighting は変えない。
 ・finddown 等は hilighting を変えない。変えたいときは hilightfound 文
  を併用する。

これだと、マクロで hilighting を ON にする方法は次のいずれかになります。

  -------- a.mac --------
  searchdown "hoge", hilight;
  
  -------- b.mac --------
  setsearch "hoge", 0x00;
  finddown;
  hilightfound 1;

これ以外で hilighting が ON になることはありませんから、従来のマクロは
hilighting に影響を与えません。

うーん、なにか見落としがあるかな?

[ ]
RE:07136 検索文字列の強調とマクロNo.07143
秀丸担当 さん 05/04/05 17:02
 

検索ダイアログのチェック状態と、一時的な[検索]→[検索文字列の強調]のチェ
ック状態は別で、それを区別して考えなくてはいけません。
提案では、これが混同しているように思えます。

ただ、

> ・finddown 等は hilighting を変えない。変えたいときは hilightfound 文
>  を併用する。

に挙げられているように、Escで解除してから下候補をするとまた強調が復活し
てしまう動作は、良くないように思うので、下候補(finddown)をしても一時的
な強調の状態は維持するようにするべきかと思います。

[ ]
RE:07143 検索文字列の強調とマクロNo.07148
IKKI さん 05/04/05 19:04
 
IKKI です。お手数をおかけしております。

> 検索ダイアログのチェック状態と、一時的な[検索]→[検索文字列の強調]のチェ
> ック状態は別で、それを区別して考えなくてはいけません。
> 提案では、これが混同しているように思えます。

あれ? 私もその区別は承知していて、

 ・turukame.3:07136 … 一時的な[検索文字列の強調]のチェック状態について
 ・turukame.3:07138 … 検索ダイアログのチェック状態について

と分けて言及したつもりでしたが。どのへんが混同していましたか?


> > ・finddown 等は hilighting を変えない。変えたいときは hilightfound 文
> >  を併用する。
>
> に挙げられているように、Escで解除してから下候補をするとまた強調が復活し
> てしまう動作は、良くないように思うので、下候補(finddown)をしても一時的
> な強調の状態は維持するようにするべきかと思います。

そうですね。

それで、本題の
「β13の仕様ではマクロ実行後に意図しない文字列が強調されることがある」
については、問題点を把握していただけましたでしょうか。

[ ]
RE:07148 検索文字列の強調とマクロNo.07158
秀丸担当 さん 05/04/06 11:33
 

>あれ? 私もその区別は承知していて、
>
> ・turukame.3:07136 … 一時的な[検索文字列の強調]のチェック状態について
> ・turukame.3:07138 … 検索ダイアログのチェック状態について
>
>と分けて言及したつもりでしたが。どのへんが混同していましたか?

提案の、hilighting と書いてある部分が検索ダイアログのチェック状態を指す
ものと思って読んでしまっていました。
そうでなはなくて、hilightngとは、一時的な強調の表示状態なのですね。失礼
しました。
そういう意味であれば合点がいきます。

[ ]
RE:07158 検索文字列の強調とマクロNo.07163
秀丸担当 さん 05/04/06 12:20
 

下候補で一時的な強調の表示状態を変化させないようにしてみたところ、問題が
起きました。
まず、検索ダイアログより、検索して強調させます。
次に、別のファイルを開いて、下候補をすると、強調されないようになりました。

[ ]
RE:07158 検索文字列の強調とマクロNo.07187
IKKI さん 05/04/07 23:36
 
IKKI です。こんばんは。

> そうでなはなくて、hilightngとは、一時的な強調の表示状態なのですね。失礼
> しました。
> そういう意味であれば合点がいきます。

よかったです。

それで、このスレッドの本題だったはずの

 β13の仕様ではマクロ実行後に意図しない文字列が強調されることがある
  ・従来のマクロを実行すると hilighting が勝手に変わる
  ・強調文字列と検索バッファの内容が食い違うことがある

という問題点は認識していただけましたでしょうか?

[ ]
RE:07163 検索文字列の強調とマクロNo.07188
IKKI さん 05/04/08 00:02
 
IKKI です。

> 下候補で一時的な強調の表示状態を変化させないようにしてみたところ、問題が
> 起きました。
> まず、検索ダイアログより、検索して強調させます。
> 次に、別のファイルを開いて、下候補をすると、強調されないようになりました。

それはそうですね。(^^; べつに問題ではないと思います。
強調したくなったときに [検索]-[検索文字列の強調] コマンドを実行すれば
いいのでは。

それが面倒だという話なら、 hilighting の状態をウィンドウごとに
覚えるのではなく、すべての秀丸で共通にしてはどうでしょう。

[ ]
RE:07187 検索文字列の強調とマクロNo.07190
IKKI さん 05/04/08 01:17
 
IKKI です。
ちょっと言葉足らずだったかもしれません。補足します。

β14では強調文字列の更新&再描画は検索実行時に行われるようです。
一方、従来のマクロは検索実行後 setsearch して終了します。

  setsearch "\\.", regular;
  finddown;      // ←ここで "\\." が強調されるが…
  setsearch $s, #f;  // ←ここでは $s が強調されない

するとマクロ内で検索した文字列が強調されっぱなしになり、ビックリします。
要するに検索バッファと強調文字列が食い違ってはいけない。だから
強調文字列の更新&再描画は検索実行時ではなく、検索バッファ変更時に行う
のがよいのではないか?

…というのが turukame.3:07136 での提案(↓再掲)の2つめの主旨でした。

>  ・searchdown 等は hilight/nohilight を付けないかぎり hilighting を
>   変えない。(主旨1)
>  ・setsearch は強調文字列を更新し、 hilighting が ON なら再描画を行う。
>   hilighting は変えない。(主旨2)
>  ・finddown 等は hilighting を変えない。変えたいときは hilightfound 文
>   を併用する。(主旨1)

β14では1つめの主旨だけ汲んでいただいて

> 下候補(finddown)やsearchdownのhilight指定なしの場合、
> 一時的な検索文字列の強調の表示状態を変化させないようにしてみる

となったようですが、これだけではビックリ問題は解決しません。

[ ]
RE:07163 検索文字列の強調とマクロNo.07191
IKKI さん 05/04/08 01:36
 
あれれ?

> 下候補(finddown)やsearchdownのhilight指定なしの場合、
> 一時的な検索文字列の強調の表示状態を変化させないようにしてみる

hilighting が OFF の状態で

  searchdown "hoge", hilight;

を実行しても強調されないようです。

[ ]
RE:07187 検索文字列の強調とマクロNo.07204
秀丸担当 さん 05/04/08 14:25
 

> β13の仕様ではマクロ実行後に意図しない文字列が強調されることがある
>  ・従来のマクロを実行すると hilighting が勝手に変わる
>  ・強調文字列と検索バッファの内容が食い違うことがある

大変申し訳ありませんが、みなさんの意見を全て勘案していると、とても対応し
きれないので、当面このままとしたいと思います。
要望があれば、要望が満たされるかどうかはわかりませんが、書いていただけれ
ばかまいません。

[ ]
RE:07191 検索文字列の強調とマクロNo.07205
秀丸担当 さん 05/04/08 14:26
 

>hilighting が OFF の状態で
>
>  searchdown "hoge", hilight;
>
>を実行しても強調されないようです。

β14の修正で強調されないようになってしまいました。
強調されるように修正します。

[ ]
RE:07204 検索文字列の強調とマクロNo.07216
Iranoan さん 05/04/08 17:52
 
 IKKI さん今日は、Iranoan です。
> > β13の仕様ではマクロ実行後に意図しない文字列が強調されることがある
<snip>
> >  ・強調文字列と検索バッファの内容が食い違うことがある
 これは致し方ないと思います。
 というより、これが有り得ないと、不都合です。何故なら全てのウィンドウ
で強調文字列が一致している必要があり、複数の検索結果を行き来している場
合、強調の意味を成さないからです。

 もし検索バッファと一致させたければ、最後に hilightfound を使えば良い
と思います。
 ##現在は、hilighting が無いので、完全にもとに戻せませんが。

[ ]