colormarker/getcolormarkerの動作No.23624
わっきー@茨城 さん 07/09/18 03:07
 
いつもお世話になっております。

現在Ver7.00より実装された colormarker でいろいろ試しているのですが、
特定の条件でうまく値を設定/取得できないようです。
以下の再現手順をお試しいただけますでしょうか。
(WindowsXP Home sp2、秀丸エディタVer7.00 で確認)
--------------------------------------------------------------
1.カラーマーカー制御用にマクロを2種類作成。
  (ユーザーデータは 0xCCCC0000 とする)

// setcolor.mac
colormarker 0x00000000, 0x000000FF, 0, 0, 0xCCCC0000;

// getcolor.mac
if( selecting ) message getcolormarker( 0x08 );


2.1行だけ "0123456790" 記述(改行は含まない)したファイル test.txt を作
成。

[BOF]0123456790[EOF]

3. test.txt を開き、"456" を範囲選択して setcolor.mac を実行。

4.カーソルを [EOF] の位置に移動する。だが、"456" の背景は着色されていない。

5.  [EOF] の位置で改行する。すると、"456" の背景が赤で着色される。

6.続いて  "4" を範囲選択し、getcolor.mac を実行。ポップアップメッセージに
  "CCCC0000"
  と表示される。

7.続いて  "3" を範囲選択し、getcolor.mac を実行。ポップアップメッセージに
  "CCCC0000"
  と表示される。(本来の表示は空欄のはず)

8.続いて  "6" を範囲選択し、getcolor.mac を実行。ポップアップメッセージが
空欄を表示する。
  (本来は "CCCC0000" と表示されるはず。判定位置がひとつ前にずれている?)

7.念のため  "7" を範囲選択し、getcolor.mac を実行。ポップアップメッセージ
が空欄を表示する。

10.[EOF] の位置から Back space で改行を削除。すると、"456" の背景色は元に戻
る。

[ ]
RE:23624 補足No.23625
わっきー@茨城 さん 07/09/18 03:20
 
すいません、補足です。
最初から改行を含んだ文字列を記述した test.txt

[BOF]0123456789\n
[EOF]

を開き、"456" を選択して setcolor.mac を実行すると背景色は
着色されますが、"456" を再選択して getcolor.mac を実行すると
ユーザーデータは取得できませんでした。


以上、よろしくお願いいたします。

[ ]
RE:23625 補足No.23631
秀丸担当 さん 07/09/18 10:56
 

>4.カーソルを [EOF] の位置に移動する。だが、"456" の背景は着色されていない。

確かに言われている通りになりました。EOFの行での表示ができていませんでし
た。
バグなので修正させていただきます。

>を開き、"456" を選択して setcolor.mac を実行すると背景色は
>着色されますが、"456" を再選択して getcolor.mac を実行すると
>ユーザーデータは取得できませんでした。

getcolormarkerは、範囲選択は関係なくて、カーソル位置の文字の情報を返すの
で、これらの結果は正しいです。

[ ]
RE:23631 補足No.23632
わっきー@茨城 さん 07/09/18 11:17
 
>>を開き、"456" を選択して setcolor.mac を実行すると背景色は
>>着色されますが、"456" を再選択して getcolor.mac を実行すると
>>ユーザーデータは取得できませんでした。
>
>getcolormarkerは、範囲選択は関係なくて、カーソル位置の文字の情報を返すの
>で、これらの結果は正しいです。

失礼しました、私の getcolormarker の使い方が間違っていたのですね。
colormarker は範囲指定して使用するため、取得動作を勘違いしておりました。

[ ]