[要望]カラー表示モードがC言語の時の括弧No.17597
ゴルゴ さん 04/07/29 15:59
 
秀丸にはいつもお世話になってます。

その他 - ファイルタイプ別の設定 - カラー表示にするモード
がC言語/Javaで、
プロパティ - #ifdef等のカラー表示をonにしている時で
以下のようなコードがあったとします。

;----コード ここから

    if (1) {                         /* A-Begin */

#if 1
        if (1) {                     /* B1-Begin */
#else
        if (0) {                     /* B2-Begin */
#endif
        }                             /* B-End */

    }                                /* A-End */

;----コード ここまで


この時の、対応する括弧の強調表示ついてなのですが、
例えば A-Endの行の括弧にカーソルを合わせた場合、強調される括弧は
B1-Beginの行の括弧になります。
しかし、本当の対応はA-Beginの行の括弧です。

現在の動作は、単に括弧と括弧閉じの数の対応を取っているように
見受けられるのですが、
これを、有効なコードの行の括弧と括弧閉じの数の対応で表示して頂く
        ^^^^^^
わけにはいかないでしょうか?


[要望の理由]

強調してもらいたい括弧の対応がズレる為。

以上、諸事情あるかと思いますが、ご検討頂ければ幸いです。


追伸

念の為書きますが、
#ifdef等のカラー表示がonでないと判断が困難と思われますので、
#onの時のみでもかまいません。
#という意味で、上で
# "#ifdef等のカラー表示をonにしている時で"
#と記述させて頂いています。

[ ]
RE:17597 [要望]カラー表示モードがC言語No.17598
encodingshiftjis さん 04/07/29 21:45
 

;----コード ここから

    if (1) {                         /* A-Begin */
        if (
#if 1           /* B1-Begin */
1
#else  /* B2-Begin */
0
#endif
) {                    
                             
        }                             /* B-End */

    }                                /* A-End */

;----コード ここまで

書き直しをできるような例では、説得力ないのでは?

[ ]
RE:17598 [要望]カラー表示モードがC言語No.17601
ゴルゴ さん 04/07/30 09:29
 
コメントありがとうございます。

>;----コード ここから
>
>    if (1) {                         /* A-Begin */
>        if (
>#if 1           /* B1-Begin */
>1
>#else  /* B2-Begin */
>0
>#endif
>) {                    
>                            
>        }                             /* B-End */
>
>    }                                /* A-End */
>
>;----コード ここまで
>
>書き直しをできるような例では、説得力ないのでは?

あまりにも省略しすぎたかもしれません。
それでは、このような例では如何でしょう?>担当さん

;----コード ここから

    if (PortA == 0x0001) {   /* A-Begin */

#ifdef MACHINEA    /* 機種Aの時の判断文 */

        if (PortB == 0x0001) { /* B1-Begin */

#else              /* 機種Bの時の判断文 */

        if (PortB == 0x000x) { /* B2-Begin */
#endif
        }   /* B-End */

    }    /* A-End */

;----コード ここまで

よろしくお願いします。

[ ]
RE:17601 [要望]カラー表示モードがC言語No.17602
ゴルゴ さん 04/07/30 09:30
 
訂正です。

>
>#else              /* 機種Bの時の判断文 */
>
>        if (PortB == 0x000x) { /* B2-Begin */
>#endif



>
>#else              /* 機種Bの時の判断文 */
>
>        if (PortB == 0x0002) { /* B2-Begin */
>#endif

[ ]
RE:17601 [要望]カラー表示モードがC言語No.17603
たけのこ さん 04/07/30 09:48
 
一般ユーザのたけのこです。

要望自体は反対しませんが、PG作法としてブロック({})の始終点は同じ条件の
中にいた方がいいですよ。
つーか、私なら

#ifdef MACHINEA
#define NOTICE_VALUE    0x0001
#else
#define NOTICE_VALUE    0x0002
#endif
    :
    :
    :
    if(PortA == 0x0001){
        if(PortB == NOTICE_VALUE){
            :
            :
        }
    }

って書かせるなあ……(いや、MACHINEAが定義済みならPortBの注目値だって…
…)。

ロジック自体が違うならまだしも、判定値が違うだけだったら#ifdef判定をソー
スのあちらこちらにちりばめるのってヨクナイですよ(見た目に悪いし、バグの
元だし)。

(^^)/”

[ ]
RE:17603 [要望]カラー表示モードがC言語No.17604
ゴルゴ さん 04/07/30 10:13
 
コメントありがとうございます

>一般ユーザのたけのこです。
>要望自体は反対しませんが、PG作法としてブロック({})の始終点は同じ条件の
>中にいた方がいいですよ。
>つーか、私なら


>ロジック自体が違うならまだしも、判定値が違うだけだったら#ifdef判定をソー
>スのあちらこちらにちりばめるのってヨクナイですよ(見た目に悪いし、バグの
>元だし)。
>
>(^^)/”

どうも、例文の表面的なちゃちゃしか入れてもらえなくて残念なのですが、
また、良い悪いでおっしゃりたいことも多々あるかもしれませんが、

・例文は、あくまで例文です。私自身好き好んでこのような
  ソースコードを触っているわけではないです。
  また現実のコードはこのような単純なものではないものになって
  おります。
  (また、私自身、決してそのようなコードがいいとは思っておりません。)

・例文は、あくまで表面的な対応する括弧の数が違う場合があるということ
 を言いたかっただけでして、それに対して、本来の括弧の対応で強調表示
 が働いてくれたらと・・・

#ここでソースコードの作法に対して議論する気はございません。
#悪しからず

[ ]
RE:17604 [要望]カラー表示モードがC言語No.17605
petit さん 04/07/30 12:33
 
>どうも、例文の表面的なちゃちゃしか入れてもらえなくて残念なのですが、

確かに作法がどうこう、っていうのはここではちょっとズレてますよね。
ビューアとしての利用場面では、作法を持ち出されてもどうにもならないですし。

#サイトー企画さんのほうは、ちゃんと本筋を見てくださると思います。

[ ]
RE:17605 [要望]カラー表示モードがC言語No.17606
たけのこ さん 04/07/30 12:59
 
一般ユーザのたけのこです。

話が変な方向へ流れちゃってスミマセン。けど、本質はゴルゴさん自身も引用し
てくださっていますが、冒頭に書いてます。

>> 要望自体は反対しませんが

チャチャが長く混乱させてしまったようですね。申し訳ない。

(^^)/”

[ ]
RE:17604 [要望]カラー表示モードがC言語No.17607
encodingshiftjis さん 04/07/30 13:31
 
地獄に落ちている人には申し訳ないですが

>表面的な、
動作の限界を追求するのが、エディタの本性ですから、どうなのでしょう。
強調表示していても、大域的に構文を認識しているわけではないですし。

一般的に「リファクタリング」に役に立つマクロを構想する程度しか
エディタでは支援できないと思います。
腐ったソースを救済できるツールは私も欲しいです。

[ ]
RE:17607 [要望]カラー表示モードがC言語No.17608
ゴルゴ さん 04/07/30 15:32
 
コメントありがとうございます

>地獄に落ちている人には申し訳ないですが

わかって頂けるかたがいて救われます。

>>表面的な、
>動作の限界を追求するのが、エディタの本性ですから、どうなのでしょう。
>強調表示していても、大域的に構文を認識しているわけではないですし。

何に対しての"動作の限界"か、解りかねますが、
エディタに構文を認識してもらおうとは思いません。
それでも、対応括弧の表示に関して何とかならないものかと
考えたあげく、要望として挙げさせて頂きました。

>一般的に「リファクタリング」に役に立つマクロを構想する程度しか
>エディタでは支援できないと思います。
>腐ったソースを救済できるツールは私も欲しいです。

私も欲しいです。

機能的に違いが無いにも関わらず、コメントの修正すらかなわない
プロジェクトも世の中には存在するかと。
・・・とそれとこれとは話が別でした。

#こういう方向に話が進むのは、ここの趣旨に反すると思い、
#最初から、聞きたいことだけを極力簡潔に書いたつもりでした
#が、逆効果だったみたいです。
#以後、気をつけます。

現実問題として、なんとかならないものかと。

[ ]
RE:17608 [要望]カラー表示モードがC言語No.17609
秀丸担当 さん 04/07/30 16:57
 

コンパイルしなければわからないような書き方の場合、対応するのは困難ですが、
今回の要望の場合、#ifdef等のカラー表示があれば、簡単に対応することができ
ます。対応させていただきます。

ゴルゴさんは仕組みを理解したうえでの要望だったと思います。
こういった類の要望は、困難な場合や限界もあると思うので、要望の内容によっ
ては対応できないこともあると思います。

[ ]
RE:17609 [要望]カラー表示モードがC言語No.17610
ゴルゴ さん 04/07/30 20:59
 
秀丸担当さん、コメントありがとうございます。

>コンパイルしなければわからないような書き方の場合、対応するのは困難ですが、
>今回の要望の場合、#ifdef等のカラー表示があれば、簡単に対応することができ
>ます。対応させていただきます。

ありがとうございます。よろしくお願いします。


>ゴルゴさんは仕組みを理解したうえでの要望だったと思います。
>こういった類の要望は、困難な場合や限界もあると思うので、要望の内容によっ
>ては対応できないこともあると思います。

了解いたしました。

#たけのこさん、petitさん、encodingshifutjisさん
#おつきあいありがとうございました。

[ ]
RE:17609 [要望]カラー表示モードがC言語No.17677
ゴルゴ さん 04/08/09 09:34
 
お世話になっております。

to:秀丸担当さん

>コンパイルしなければわからないような書き方の場合、対応するのは困難ですが、
>今回の要望の場合、#ifdef等のカラー表示があれば、簡単に対応することができ
>ます。対応させていただきます。

Version 4.10にて対応されていること、確認できました。
どうもありがとうございました。

[ ]