◀一般トップへ
  • 6374 カッコが強調表示されない(C/C++)
    • 6375 RE: カッコが強調表示されない(C/C++)
      • 6378 Re2: カッコが強調表示されない(C/C++)
        • 6380 Re3: カッコが強調表示されない(C/C++)
        • 6381 Re3: カッコが強調表示されない(C/C++)
    • 6383 Re:カッコが強調表示されない(C/C++)
      • 6397 Re2:カッコが強調表示されない(C/C++)
        • 6398 Re3:カッコが強調表示されない(C/C++)
          • 6399 Re4:カッコが強調表示されない(C/C++)
          • 6400 Re4:カッコが強調表示されない(C/C++)
  • [6374] カッコが強調表示されない(C/C++) 山茶花 2007年10月16日 23:12

    C/C++の設定が有効の時、カーソルの位置のカッコと対応する
    カッコの2つが強調表示されますが、対応するカッコが画面に
    表示されない状態の場合、強調表示されません。それでいいの
    ですが、その状態からスクロールバーやCTRL+UP/DOWN等で対応
    するカッコが画面内に出てくるようにしても強調表示されませ
    ん。
    • [6375] RE: カッコが強調表示されない(C/C++) げんた 2007年10月17日 00:24

      >カッコの2つが強調表示されますが、対応するカッコが画面に
      >表示されない状態の場合、強調表示されません。
      こういう仕様になっています.

      >ですが、その状態からスクロールバーやCTRL+UP/DOWN等で対応
      >するカッコが画面内に出てくるようにしても強調表示されませ
      >ん。
      現状はカーソルを動かしたときにしか探していないので,スクロールしても強調表示はしません.
      • [6378] Re2: カッコが強調表示されない(C/C++) 山茶花 2007年10月17日 23:33

        ▼ げんたさん
        > 現状はカーソルを動かしたときにしか探していないので,スクロールしても強調表示はしません.
        スクロールされたときにそのようなことをする関数を呼べば
        すむと思うのですが、そうする予定は無いですか?
        また、そうしないなら理由は何ですか?
        私は現在サクラエディタでCのプログラミングをしていまして、
        Ctrl+UP/DOWNで前後のコードを見ることを頻繁にしています。
        自分でコンパイルできたいいんですが、できないので。
        • [6380] Re3: カッコが強調表示されない(C/C++) げんた 2007年10月18日 08:06

          >スクロールされたときにそのようなことをする関数を呼べば
          >すむと思うのですが、そうする予定は無いですか?
          CTRL+[ で対応する括弧に飛べて,もう一回押せば元の位置に戻れるので,スクロールして対応する先をさがすよりそちらの方が手っ取り早いと思うんですけどね.個人的意見ですが.
        • [6381] Re3: カッコが強調表示されない(C/C++) しみづ 2007年10月18日 09:46


           カーソルの次にある中括弧"{"から対応する中括弧"}"までを選択させるキーマクロは、次の3行でできます。選択して反転すると見やすくなります。

          S_BeginSelect();
          S_BracketPair();
          S_Right();
    • [6383] Re:カッコが強調表示されない(C/C++) ryoji 2007年10月19日 00:43

      既にげんたさんが「仕様」と回答されていますが...
      対括弧の強調表示はキャレットの移動に応答して変化するものなので、対応する括弧が画面に表示されていないときに強調表示しないのを良しとするなら、キャレットが移動しない限りは画面表示範囲が変化しても強調/非強調の切り替えはしない(現行仕様通り)のが自然な気がします。
      • [6397] Re2:カッコが強調表示されない(C/C++) 山茶花 2007年10月24日 21:35

        カーソルの移動の瞬間ではなくカーソルのある文字について
        表示するというのが自然な気がします。
        カッコの強調表示は2種類あって、カッコが対応しているか
        どうかと、そのようなカッコが画面にでているのかですが、
        1文字入力ですぐ字句解析して色分け表示しているくらいなの
        で、カーソルがカッコにある時だけカッコを探すぐらい大した
        ことないので、しても良さそうですが。文書の最後までカッコ
        を探す処理を気にしているのですか?
        カーソルが対応しているかだけで強調表示してくれるのが一番
        いいです。
        • [6398] Re3:カッコが強調表示されない(C/C++) ryoji 2007年10月25日 00:15

          仕様としては、
          1.カーソル移動時に画面内に対応する括弧があるときだけ強調表示(現行仕様)
          2.1に加えて画面内に対応が見えるようになった/見えなくなった、に反応して強調表示をON/OFF(片方しか見えなければOFF)
          3.文書内にカーソル位置に対応する括弧があれば強調表示(どちらか一方でも見えれば強調表示)
          のようなバリエーションが考えられますね。

          >対応するカッコが画面に表示されない状態の場合、強調表示されません。それでいいのですが、
          や
          >スクロールされたときにそのようなことをする関数を呼べばすむと思うのですが
          といったことから、仕様2を希望されているのかと思いました。
          (その場合、スクロール時だけじゃなく画面サイズ変更/分割バー移動などでも表示範囲は変わるので1個所の修正だけでは足りませんが)
          >文書の最後までカッコを探す処理を気にしているのですか?
          仕様3が本当の希望なのでしょうか?

          今のところ、この件には特に議論する意欲も湧いてないので、合意形成・着手ともやりたい人にお任せしま~す。
          ※自分の好みだけ述べておくと、希望順は3→1→2かな(2になってもまったくOKですけどね)
          • [6399] Re4:カッコが強調表示されない(C/C++) ryoji 2007年10月25日 03:03

            あと、これとは別の話ですが>>data:5920のようなこともあるので、対応する括弧の場所が離れるほど意に沿わない結果になるかもです。
          • [6400] Re4:カッコが強調表示されない(C/C++) すい 2007年10月25日 04:14

            >仕様としては、
            >1.カーソル移動時に画面内に対応する括弧があるときだけ強調表示(現行仕様)
            >2.1に加えて画面内に対応が見えるようになった/見えなくなった、に反応して強調表示をON/OFF(片方しか見えなければOFF)
            >3.文書内にカーソル位置に対応する括弧があれば強調表示(どちらか一方でも見えれば強調表示)

            3は、ちょっとあり得ないのではないでしょうか?

            現在は、現実的なスピードのために1.の仕様になっているのですよね。

            対括弧の表示は、文字入力(に伴うカーソル移動)時にも
            対の括弧を探し回る必要があるわけです。

            それで、もし編集中のファイルが、とてつもなく大きなファイルだったら?

            カーソル位置の括弧に、“対の括弧”が存在しない場合、
            「ファイルの先頭または末尾まで、延々と対括弧を探しに行く」
            という処理をする事になりますよね。

            例えば

            1.とても巨大なファイルを編集中である。
            2.カーソルのすぐ後ろに括弧がある。
            3.その↑括弧には“対の括弧”が存在しない。

            という条件が揃っている状態で文字を連続入力したらどうなりますか?

            文字を1文字入力する毎に、カーソルの後ろの括弧に対する“対の括弧”を、
            巨大なファイルの先頭、または末尾まで探し回る事になるわけで、
            1文字入力する毎にエディタの動作が一瞬止まってしまったり...

            そういった事態にならないように、対括弧表示では
            「表示の範囲外までは“対の括弧”を探しには行かない」
            ということにして処理速度を上げているわけで。

            まぁ、私は実際に3.の仕様の物を弄った事は無いので、
            実際のところは分からないのですけど。
            実際にやってみたら、さほど重くならないかもしれませんしねぇ。
            3.の仕様がプログラミング的には一番簡単・単純でしょうし。