V3で強調表示できないパターンNo.02738
わかだんな さん 99/03/28 16:26
 
こんにちは。

秀丸エディタ Version 3.00を使ってみたのですが、強調表示に
ならない場合があります。
C言語のデータ型を強調表示1で登録しています。
(ちなみに全体の背景は黒で、文字色は白、強調表示1は白の
ボールドです。)
C++のソースファイルを書いていると、関数のデータ型が強調表示
されません。
例えば、
int func (void)  // intは強調表示なし、voidは強調表示
{
    int a;  // intは強調表示
}
のような状態になります。
どうやら、その単語が行の先頭にある場合や、"("の存在、
"("の前に空白文字があるかどうか等が影響しているようです。

      わかだんな <xxxxxxxxxxxxxx@nifty.ne.jp>

[ ]
RE:02738 V3で強調表示できないパターンNo.02758
秀丸担当 さん 99/03/29 17:04
 
>C++のソースファイルを書いていると、関数のデータ型が強調表示
>されません。
>例えば、
>int func (void)  // intは強調表示なし、voidは強調表示
>{
>    int a;  // intは強調表示
>}

強調表示されないのは、関数のデータ型のところだけなのでしょうか。
そうだとすると、関数の強調表示をしていて、それと重なっているため
ではないでしょうか。
voidが強調表示されるのは「特に強調」になっているとか?

[ ]
RE:02758 V3で強調表示できないパターンNo.02769
わかだんな さん 99/03/29 23:26
 
>>C++のソースファイルを書いていると、関数のデータ型が強調表示
>>されません。
>>例えば、
>>int func (void) // intは強調表示なし、voidは強調表示
>>{
>> int a; // intは強調表示
>>}

昨日発言した時と現象が変わってしまいました。(再起動したから????)
上記のパターンでは、正常に表示されます。
現在、以下のような状況です。

int func (void)      // int、void 共に強調表示される
int func(void)       // int、void 共に強調表示されない
int xxx::func (void) // int、void 共に強調表示されない
int xxx::func(void)  // int、void 共に強調表示されない

以上は行の先頭に空白文字がない場合

以下は行の先頭に空白文字がある場合(都合上、全角空白にしています)

 int func(void)       // int、void 共に強調表示される
 int xxx::func (void) // int、void 共に強調表示される
 int xxx::func(void)  // int、void 共に強調表示される


>強調表示されないのは、関数のデータ型のところだけなのでしょうか。

昨日の時点ではそうでした。
しかし、今は関数の型と引数の型が対になっています。

>そうだとすると、関数の強調表示をしていて、それと重なっているため
>ではないでしょうか。

関数の強調表示は行っていません。

>voidが強調表示されるのは「特に強調」になっているとか?

「特に強調」は使用していません。
キーワードの強調表示はすべて「強調表示1」です。


[ ]
RE:02769 V3で強調表示できないパターンNo.02784
秀丸担当 さん 99/03/31 19:23
 
>int func (void)      // int、void 共に強調表示される
>int func(void)       // int、void 共に強調表示されない
>int xxx::func (void) // int、void 共に強調表示されない
>int xxx::func(void)  // int、void 共に強調表示されない
>
>以上は行の先頭に空白文字がない場合

やはり、関数の強調表示をしているからだと思います。
その他→ファイルタイプ別の設定→強調表示のところに、

^[_a-zA-Z][^\(=;:]* [_a-zA-Z][_a-zA-Z0-9]*\([^;]*$

とか、そういった感じのものが一覧に無いですか?

[ ]
RE:02784 V3で強調表示できないパターンNo.02791
わかだんな さん 99/03/31 23:45
 
>やはり、関数の強調表示をしているからだと思います。
>その他→ファイルタイプ別の設定→強調表示のところに、
>
>^[_a-zA-Z][^\(=;:]* [_a-zA-Z][_a-zA-Z0-9]*\([^;]*$
>
>とか、そういった感じのものが一覧に無いですか?

一覧には、

^[_a-zA-Z][^\(=;:]* [_a-zA-Z][_a-zA-Z0-9]*\([^;]*$
^[_a-zA-Z][^\(=;:]* operator[^\(;]+\([^;]*$
^[_a-zA-Z][^\(=;:]*::[^\(;]+\([^;]*$
^[_a-zA-Z][_a-zA-Z0-9]*[a-z]+[_a-zA-Z0-9]* *\([^;]*$

がありました。
この中から

^[_a-zA-Z][^\(=;:]* [_a-zA-Z][_a-zA-Z0-9]*\([^;]*$
^[_a-zA-Z][^\(=;:]*::[^\(;]+\([^;]*$

を削ると正常に表示されるようになりました。
ありがとうございます。


[ ]