autocompleteでbackspaceでリストが消えるNo.04195
たけとり さん 09/10/14 14:50
 
いつもお世話になっています。
# 環境は、XP sp2 + 秀丸8ベータ19です

 標記ですが、
autocomplete -1;
という1行だけのマクロを実行中に、リストを表示した直後あっても何か候補を選ん
だ後であっても、BSキーを押下するとリストが消えキャンセル扱いになるのですが、
それは仕様でしょうか。

 感覚的に、補完中に押下するBSキーは、キャンセルというよりは、編集中の文字列
を1文字削除する(&その状態から再補完してもらう)ことを期待していると思います
ので、候補があればキャンセル(result==0)にならないでいてくれるとうれしいです。

 いまは、BSで1文字を消してから引き続き補完したい場合は、
while(1){
 autocomplete -1, -1, 0xF01000;
 if(iskeydown(8)){
  backspace;
  continue:
 }else{
  break
 }
}
というようなコードでしのいでいるのですが、autocomplete側で何とかならないかと
考えています。

よろしくお願いします。

# ところで、マニュアルには「リアルタイム入力」を示す設定値の記載がないような
(^0^;

[ ]
RE:04195 autocompleteでbackspaceでリスNo.04207
秀丸担当 さん 09/10/14 16:56
 

>autocomplete -1;
>という1行だけのマクロを実行中に、リストを表示した直後あっても何か候補を選ん
>だ後であっても、BSキーを押下するとリストが消えキャンセル扱いになるのですが、
>それは仕様でしょうか。

autocomplete文で-1を指定した場合は同期モードということで、ヘルプの通り候
補から選ぶかキャンセルしかできない状態になっています。
BackSpaceキーの場合はキャンセルということで、現状では仕様ということでお願
いします。

BackSpaceキーで削除して再度候補を出すという動作は、通常の単語補完(または
マクロで非同期モード)の場合にも無い動作で、やるとしたらマクロだけの特別
な動作ということになると思います。
対象となる単語を超えて前の単語へといくらでも後退できてしまうので、何か問
題にならないか慎重に考えたほうがいいかもしれません。
そういう話もあるということで参考にさせていただきます。
現状でマクロでしのげているということで、それで回避していただけたらと思い
ます。

[ ]
RE:04207 autocompleteでbackspaceでリスNo.04245
たけとり さん 09/10/17 13:28
 
 返信が遅くなりました。すみません。

>BackSpaceキーの場合はキャンセルということで、現状では仕様ということでお願
>いします。

 了解しました。

>対象となる単語を超えて前の単語へといくらでも後退できてしまうので、何か問
>題にならないか慎重に考えたほうがいいかもしれません。

 これですが、私の考えでは「選択肢が0になったら、または検索単語が変わったら、
失敗(消しすぎ)」でいけるのではと考えています。
# 一般的に、前の文字を消すと選択肢が減らないはずですが、そうでないというのは、
行き過ぎ(消しすぎ)ということにはなるのではと思っています。
 いずれにしても、とりあえずは手元の運用でまかなってみます。

 それと、リアルタイム入力の設定値の記載の件、ベータ20で確認しました。
 ありがとうございました。

[ ]