検索ボックスの表示内容No.10127
h-tom さん 06/04/14 23:12
 

h-tom です。

//--マクロの例
$BAK_SEARCHBUFFER  = searchbuffer;
#BAK_SEARCHOPTION  = searchoption;

//色々と検索

setsearch $BAK_SEARCHBUFFER, #BAK_SEARCHOPTION;
endmacro;
//

上記マクロのように、最初に、検索バッファ、オプションを保存し、最期に
再セットしても、検索ボックスの表示内容は、マクロ内で検索した内容のま
まで、再セットした内容になりません。

一度、ウィンドウを非アクティブ状態にしてから、アクティブ状態にすると、
再セットした内容に書き換わります。

あと、マクロ実行中は、検索ボックスの表示内容を書き換えない方がいいの
かもしれませんね。
マクロで検索を実行した場合、message、menu、input等で、マクロが一時停止(?)
している時に、検索ボックスの内容が書き換わっていると、ちょっと違和感を
感じるかな?
検索ボックスの内容が元に戻っていない為、余計にそう感じているだけかも
しれませんが。

秀丸:Version 6.00β15
OS:Windows2000SP4

[ ]
RE:10127 検索ボックスの表示内容No.10129
Iranoan さん 06/04/15 00:41
 
 秀丸担当さん、h-tom さん今日は、Iranoan です。
> setsearch $BAK_SEARCHBUFFER, #BAK_SEARCHOPTION;
> endmacro;
> //
>
> 上記マクロのように、最初に、検索バッファ、オプションを保存し、最期に
> 再セットしても、検索ボックスの表示内容は、マクロ内で検索した内容のま
> まで、再セットした内容になりません。
 私はこれが正しい動作で、
> 一度、ウィンドウを非アクティブ状態にしてから、アクティブ状態にすると、
> 再セットした内容に書き換わります。
がおかしいと思います。何故なら、今までも setsearch 文では検索履歴が変
化しないからです。もし変化させるなら、setsearchhist 文で行うようにすべ
きだと思います。

> あと、マクロ実行中は、検索ボックスの表示内容を書き換えない方がいいの
> かもしれませんね。
 私もそう思います。若しくは disabledraw 中は本文同様描画を禁止するか。

[ ]
RE:10129 検索ボックスの表示内容No.10132
IKKI さん 06/04/15 04:01
 
IKKI です。こんばんは。

検索ボックス、良いですね。また要望がたくさん出てきそうですが。
細かい要望にも対応できるように、動作をマクロで拡張できる枠組みを作ったほうが
よさそうな気もします。

 ・自動起動マクロに「検索ボックスの内容が変化したとき」を追加
 ・マクロで検索ボックスの値を取得できるようにする

などなど、ご検討ください。


> > 一度、ウィンドウを非アクティブ状態にしてから、アクティブ状態にすると、
> > 再セットした内容に書き換わります。
> がおかしいと思います。何故なら、今までも setsearch 文では検索履歴が変
> 化しないからです。もし変化させるなら、setsearchhist 文で行うようにすべ
> きだと思います。

私はむしろ、検索ボックスは常に searchbuffer を表示していてほしいです。
そして文字列を入力したらリアルタイムに searchbuffer に代入される。
つまり「検索ボックス == searchbuffer」が常に成り立つようにすれば
表示と動作が一致してわかりやすいと思います。いかがでしょうか。

┌───────┬─┐
│searchbuffer │▼│
├───────┴─┤
│searchhist[0]   │
│searchhist[1]   │
│searchhist[2]   │
│searchhist[3]   │
│…        │
└─────────┘

[ ]
RE:10132 検索ボックスの表示内容No.10134
Iranoan さん 06/04/15 12:46
 
 IKKI さん今日は、Iranoan です。
> 私はむしろ、検索ボックスは常に searchbuffer を表示していてほしいです。
> そして文字列を入力したらリアルタイムに searchbuffer に代入される。
 私は反対です。検索ダイアログの履歴と同期していないと、解りにくくなり
ます。

[ ]
RE:10134 検索ボックスの表示内容No.10159
秀丸担当 さん 06/04/17 13:12
 


>> 私はむしろ、検索ボックスは常に searchbuffer を表示していてほしいです。
>> そして文字列を入力したらリアルタイムに searchbuffer に代入される。
> 私は反対です。検索ダイアログの履歴と同期していないと、解りにくくなり
>ます。

このあたりについてβ16で直そうかと思ったのですが、意見が分かれているよう
だったので、とりあえずまずい問題だけを修正してβ16を出しました。

つまりは、
・検索ボックスとsearchbufferは常に同期
・検索ボックスの履歴と検索ダイアログの履歴(set/getsearchhist)は常に同期
というほうがいいということだと思います。

同じことを言っているように思えるのですが、どこに意見の食い違いがあるのか
わかりません。
Iranoanさんが検索バッファと検索履歴を混同してしまっているようにも伺える
のですが、どうでしょうか。


>細かい要望にも対応できるように、動作をマクロで拡張できる枠組みを作ったほうが
>よさそうな気もします。
>
> ・自動起動マクロに「検索ボックスの内容が変化したとき」を追加
> ・マクロで検索ボックスの値を取得できるようにする
>
>などなど、ご検討ください。

検索ボックスだけのために自動起動マクロを設けるのもどうかと思いますが、意
見として参考にさせていただきます。

[ ]
RE:10159 検索ボックスの表示内容No.10161
Iranoan さん 06/04/17 13:30
 
 秀丸担当さん今日は、Iranoan です。
> Iranoanさんが検索バッファと検索履歴を混同してしまっているようにも伺える
> のですが、どうでしょうか。
 searchbuffer は setsearch/searchdown 文等で変化しますが、履歴には追
加されません。マクロで行った検索と履歴を同期するには、今でも set/
getsearchhist 文を使わないと駄目ですよね。

[ ]
RE:10159 検索ボックスの表示内容No.10173
IKKI さん 06/04/17 20:55
 
IKKI です。こんばんは。

> つまりは、
> ・検索ボックスとsearchbufferは常に同期
> ・検索ボックスの履歴と検索ダイアログの履歴(set/getsearchhist)は常に同期
> というほうがいいということだと思います。

そうですね。
私が言及したのは前者です。Iranoan さんが言及しているのは後者だと思います。
Iranoan さんはコンボボックスのテキスト入力部分とドロップダウンリスト部分を
区別していらっしゃらなかったのでは?

[ ]
RE:10173 検索ボックスの表示内容No.10181
秀丸担当 さん 06/04/18 11:37
 

検索ボックスの同期について、β17で、
> ・マクロ実行後も検索ボックスと検索バッファが常に同期されるような修正。
として修正しました。


> searchbuffer は setsearch/searchdown 文等で変化しますが、履歴には追
>加されません。マクロで行った検索と履歴を同期するには、今でも set/
>getsearchhist 文を使わないと駄目ですよね。

この点について考えてみたのですが、私の理解が不足しているのか、どこが問題
なのかわからないです。

searchdown "aaa";

とだけ書いたマクロを実行すると、検索ボックスは更新されるけど履歴には入っ
ていないことが問題ということでしょうか。
これは検索ダイアログにおいても以前から同様の動作です。

と思って確認していたら、普通の検索ボックスから文字列を入力して Enter で
検索をすると履歴には入りませんでした。
ここが問題ということでしょうか。
これは問題だと思うので修正させていただきます。

[ ]
RE:10181 検索ボックスの表示内容No.10183
Iranoan さん 06/04/18 11:54
 
 秀丸担当さん今日は、Iranoan です。
> とだけ書いたマクロを実行すると、検索ボックスは更新されるけど履歴には入っ
> ていないことが問題ということでしょうか。
 そうです。

> これは検索ダイアログにおいても以前から同様の動作です。
 そうです。だからこそ、検索ボックスの文字列は変化させるべきではなく、
変化させたいなら履歴と同期させる形、つまり setsearchhist 文を使うべき
ではないのか? という主張です。

 また
searchdown "aaa";
の後にメニューから「下候補」をしても「aaa」は履歴に入らないわけで、そ
の様な文字列が検索ボックスに表示されるのが、私には違和感があるのです。

 あと
> 表示と動作が一致してわかりやすいと思います。いかがでしょうか。
については理解できます。しかし通常検索系の文を使用したら、setsearch を
使って初期状態に戻し、それさえ守れば不一致は起きないので、あまり重要な
ことと考えていません。

[ ]
RE:10183 検索ボックスの表示内容No.10191
秀丸担当 さん 06/04/18 18:04
 

> そうです。だからこそ、検索ボックスの文字列は変化させるべきではなく、
>変化させたいなら履歴と同期させる形、つまり setsearchhist 文を使うべき
>ではないのか? という主張です。
>
> また
>searchdown "aaa";
>の後にメニューから「下候補」をしても「aaa」は履歴に入らないわけで、そ
>の様な文字列が検索ボックスに表示されるのが、私には違和感があるのです。

うーむ、やっぱりわからないのですが、検索バッファと検索履歴を混同してしま
っているように思えます。
私が何か勘違いをしているのかもしれませんが。

検索ボックスがドロップダウンしていないときに表示されているものは、検索バ
ッファであって、検索履歴の一番上にあるものではないです。

検索ダイアログと検索ボックスの、ドロップダウンしていないときの表示には違
いがあります。
検索ダイアログは検索バッファを常に表示していません。
検索ボックスは検索バッファを常に表示していません。

[ ]
RE:10191 検索ボックスの表示内容No.10195
Iranoan さん 06/04/18 18:19
 
 秀丸担当さん今日は、Iranoan です。
> 検索ボックスがドロップダウンしていないときに表示されているものは、検索バ
> ッファであって、検索履歴の一番上にあるものではないです。
 私はこれは奇異に感じるのです。
 マクロを使わず、メニューから検索するだけなら検索した文字は履歴に必ず
入ります。その結果、検索バッファと履歴の一番上の文字列は一致しますよね。
それなら、マクロを使ったときも同じ動作であるべきだと思うのです。

[ ]
RE:10195 検索ボックスの表示内容No.10201
IKKI さん 06/04/19 00:43
 
IKKI です。横から口を出すようで恐縮ですが、私見を述べてみます。

> > 検索ボックスがドロップダウンしていないときに表示されているものは、検索バ
> > ッファであって、検索履歴の一番上にあるものではないです。
>  私はこれは奇異に感じるのです。

検索ボックスはリストボックスではなくてコンボボックスです。
コンボボックスはリストボックスとテキストボックスを組み合わせたもので、
リストボックスの内容とテキストボックスの内容は互いに独立です。
…すみません、釈迦に説法でした。

Iranoan さんは「検索ボックス == 検索履歴」と捉えていらっしゃるようですが、
「検索バッファ」と「検索履歴の一番上」は概念的にも実装的にも別のものですよね。
検索ボックスにドロップダウン部分がなくて単なるテキストボックスだったとしら、
その内容は検索バッファに等しいのが自然ではないでしょうか。


>  マクロを使わず、メニューから検索するだけなら検索した文字は履歴に必ず
> 入ります。その結果、検索バッファと履歴の一番上の文字列は一致しますよね。
> それなら、マクロを使ったときも同じ動作であるべきだと思うのです。

これはつまり
「searchdown "aaa"; を実行するだけで履歴に追加されるようにしてほしい」
という話でしょうか。
検索の実行と履歴への追加は独立した処理なので、私は反対します。

[ ]
RE:10201 検索ボックスの表示内容No.10202
Iranoan さん 06/04/19 02:11
 
 秀丸担当さん、IKKI さん今日は、Iranoan です。
> 検索ボックスにドロップダウン部分がなくて単なるテキストボックスだったとしら、
> その内容は検索バッファに等しいのが自然ではないでしょうか。
 それはそうですが、実際はコンボ・ボックスなので(^^;。
 またマクロと意識するのではなく、単なる一機能として使うエンド・ユーザ
にとっては、自分で検索した記憶のない文字列が入っているのは不思議だと思
います。更に一旦履歴から選んで検索後、再度それまでに表示されていた文字
列を選ぼうとしても履歴には無いので、いっそう不思議に感じると思います。

> 「検索バッファ」と「検索履歴の一番上」は概念的にも実装的にも別のものですよ
>ね。
> 検索ボックスにドロップダウン部分がなくて単なるテキストボックスだったとしら、
> その内容は検索バッファに等しいのが自然ではないでしょうか。
 その捉え方なら、ウィンドウを開いた時であれ、[下候補] が動作する状況
なら、常に文字列を表示すべきだと思います。


 念の為ですが、私個人は検索ボックスの仕様がどうなっても構いません。そ
もそもツール・バーを表示すらしていないので(^^;。だからこそ逆に、マニュ
アル改訂のために、初心者の心算でこの機能を使ってみたときに、現在の仕様
を不自然に感じた為の投稿です。

[ ]
RE:10202 検索ボックスの表示内容No.10203
秀丸担当 さん 06/04/19 12:33
 

Iranoanさんのおっしゃることも、なんとなく理解できてきたような気もします。

> その捉え方なら、ウィンドウを開いた時であれ、[下候補] が動作する状況
>なら、常に文字列を表示すべきだと思います。

一応、β17の現状でこのようになっていて、もしそうなっていない部分があると
したらそういう方向にもっていくようにしたいと思います。

検索ボックスから入力して検索して履歴に入らないのは不具合なのでβ18で修正
します。

捉え方は人それぞれだとは思いますが、基本機能としてはこれでいこうと思いま
す。

また、fogranさんが最初に言われていたように、ウィンドウを開いた直後にも検
索バッファが表示されるというのは邪魔であるという意見もありそうなので、そ
れはそれとしてオプションを追加するかどうか、ネタとして意見を参考にしたい
と思います。

[ ]
RE:10203 検索ボックスの表示内容No.10206
Iranoan さん 06/04/19 15:03
 
 秀丸担当さん今日は、Iranoan です。
> Iranoanさんのおっしゃることも、なんとなく理解できてきたような気もします。
 取り敢えず、私の考えが伝わってよかったです。
 後の実際の仕様はお任せします。

[ ]