#ifdef 等のカラー表示に於ける対応する括No.06069
Iranoan さん 04/10/29 14:42
 
 秀丸担当さん今日は、Iranoan です。
1|if( i ){
2|  #if 0
3|    if( j ){
4|      puts( "bug\n" );
5|    }
6|  #endif
7|}
というソース・コードで、#ifdef 等のカラー表示を ON にすれば、3〜5 は無
効の色になります。ここまでは良いのですが、次の無効部分の「{}」の扱いは
仕様でしょうか?
(1) ・5 行目の「}」で「対応する括弧」で 1 行目の「{」に移動
    ・3 行目の「}」で「対応する括弧」で 7 行目の「{」に移動
    ただし 1, 7 行目の「{}」で「対尾する括弧」は、各々正しく 7, 1 行目
    の「}{」に移動
    これは「対応する括弧」に色を付けている時も同じ
(2) 入力された状態が
    1|if( i ){
    2|  #if 0
    3|    if( j ){
    4|      puts( "bug\n" );
    5|      //改行でここまではタブが自動入力
    の時、「}」をタイプすれば、上記の状態になることを期待するが、
    1|if( i ){
    2|  #if 0
    3|    if( j ){
    4|      puts( "bug\n" );
    5|}
    と余分に逆インデントされる。ただし
    ・「自動インデント」
    ・「C 言語用のインデント」
    の両者が ON の時です。

 こちらの環境は、Windows98+IE6.0+秀丸 Ver.4.14 です。

[ ]
RE:06069 #ifdef 等のカラー表示に於けるNo.06071
秀丸担当 さん 04/10/29 16:13
 

>というソース・コードで、#ifdef 等のカラー表示を ON にすれば、3〜5 は無
>効の色になります。ここまでは良いのですが、次の無効部分の「{}」の扱いは
>仕様でしょうか?

これは、(1)(2)とも、V4.10からの仕様です。
基本的に、無効部分の括弧の対応は、無視するようになりました。
無効部分の中での括弧の移動や、インデントは、その副作用として一部おかしな
動きになってしまいますが、現時点では仕方ないです。

[ ]
RE:06071 #ifdef 等のカラー表示に於けるNo.06073
Iranoan さん 04/10/29 17:31
 
 秀丸担当さん今日は、Iranoan です。
> >というソース・コードで、#ifdef 等のカラー表示を ON にすれば、3〜5 は無
> >効の色になります。ここまでは良いのですが、次の無効部分の「{}」の扱いは
> >仕様でしょうか?
>
> これは、(1)(2)とも、V4.10からの仕様です。
 解りました。
 ただ今後の検討課題として、せめて「無効部分内だけで比較する」等の変更
をして頂けないでしょうか? 現在の仕様は、コメントの様に完全に無視される
わけでもないので、戸惑います。

[ ]
RE:06073 #ifdef 等のカラー表示に於けるNo.06076
秀丸担当 さん 04/11/01 17:34
 

> ただ今後の検討課題として、せめて「無効部分内だけで比較する」等の変更
>をして頂けないでしょうか? 現在の仕様は、コメントの様に完全に無視される
>わけでもないので、戸惑います。

この動作は、複数行コメントのときも同様で、コメント中のソース入力も同じよ
うになります。
コメントのように無視されるわけではない場合は、どのような場合でしょうか。

[ ]
RE:06076 #ifdef 等のカラー表示に於けるNo.06077
Iranoan さん 04/11/01 18:01
 
 秀丸担当さん今日は、Iranoan です。
> この動作は、複数行コメントのときも同様で、コメント中のソース入力も同じよ
> うになります。
> コメントのように無視されるわけではない場合は、どのような場合でしょうか。
 確かに逆インデントに対しては同じですね。失礼しました。しかし
1|if( i ){
2|  /*
3|    if( j ){
4|      puts( "bug\n" );
5|    }
6|  */
7|}
のソースにおいて、3, 5 行目の「{}」で「対応する括弧」は「カーソル位置
の括弧は文字列またはコメントの中です。」となりますが、
1|if( i ){
2|  #if 0
3|    if( j ){
4|      puts( "bug\n" );
5|    }
6|  #endif
7|}
の 3, 5 行目の「{}」では、そうなずカーソルが対応していない括弧に移動し
てしまいます。

[ ]
RE:06077 #ifdef 等のカラー表示に於けるNo.06078
秀丸担当 さん 04/11/02 17:40
 

>の 3, 5 行目の「{}」では、そうなずカーソルが対応していない括弧に移動し
>てしまいます。

その通りでした。すみません。
#ifのときも、コメントの中の処理と同様に合わせたいと思います。

[ ]
RE:06078 #ifdef 等のカラー表示の優先順No.06079
Iranoan さん 04/11/02 18:05
 
 秀丸担当さん今日は、Iranoan です。
> #ifのときも、コメントの中の処理と同様に合わせたいと思います。
 宜しくお願いします。

 ところでこの #ifdef のカラー表示の優先順位について質問です。個人的に
は、HTML のスクリプト部分と同程度、つまり内部に強調表示があれば、そち
らを優先してカラー表示した方がソース・ファイルが読み易いと思うのですが、
実際の使用では良くないことが有るのでしょうか? それともコメント同じ動き
にするために、優先順位も現在のようになっているんでしょうか?

[ ]
RE:06079 #ifdef 等のカラー表示の優先順No.06080
秀丸担当 さん 04/11/04 15:51
 

> ところでこの #ifdef のカラー表示の優先順位について質問です。個人的に
>は、HTML のスクリプト部分と同程度、つまり内部に強調表示があれば、そち
>らを優先してカラー表示した方がソース・ファイルが読み易いと思うのですが、
>実際の使用では良くないことが有るのでしょうか? それともコメント同じ動き
>にするために、優先順位も現在のようになっているんでしょうか?

#ifdefの無効部分は、コメントと同じ動きにするために、優先順位がこの位置に
なっています。
無効部分の目的は、ソースとして見えてしまうのが煩わしいから、それを隠して
ソースを見やすいようにするものと考えています。

[ ]
RE:06080 #ifdef 等のカラー表示の優先順No.06081
Iranoan さん 04/11/04 17:59
 
 秀丸担当さん今日は、Iranoan です。
> #ifdefの無効部分は、コメントと同じ動きにするために、優先順位がこの位置に
> なっています。
 やはりそうなんですね。

> 無効部分の目的は、ソースとして見えてしまうのが煩わしいから、それを隠して
> ソースを見やすいようにするものと考えています。
 上記の理由があると難しいでしょうが、私は寧ろ条件付きコンパイルとして
使うので、「普通の文字」だけ色が変わった方が嬉しいですね。
 他の皆さんはどうなんでしょう?

[ ]
RE:06081 #ifdef 等のカラー表示の優先順No.06082
Arimac さん 04/11/04 21:03
 
状況に拠っては無効部分が分かり難くなりそうなので、
現在の仕様に1票(^^;

[ ]
RE:06082 #ifdef 等のカラー表示の優先順No.06083
あべのり さん 04/11/05 09:58
 
>状況に拠っては無効部分が分かり難くなりそうなので、
>現在の仕様に1票(^^;
僕も現在の仕様に一票です.

[ ]