◀ANSI版開発トップへ
  • 3779 【バグ】タブを含む範囲選択
    • 3780 Re: 【バグ】タブを含む範囲選択
      • 3781 Re2: 【バグ】タブを含む範囲選択
        • 3782 Re3: 【バグ】タブを含む範囲選択
  • [3779] 【バグ】タブを含む範囲選択 Max 2004年10月30日 14:31

    いつもサクラエディタを楽しく使っています。
    矩形選択にバグがあるので報告します。
    タブを含めて矩形選択をして、文字を入力すると選択範囲がずれてしまいます。

    たとえば、次のような感じです。

    1.行頭のタブ(空白部分)を矩形選択します。
    uint32_t operator() ( Container::value_type& value ) const {
    ~~~~

    2.文字を入力します。
    c uint32_t operator() ( Container::value_type& value ) const {
    ~~~~

    3.このとき、矩形選択範囲は「 u」になります。
    • [3780] Re: 【バグ】タブを含む範囲選択 げんた 2004年10月30日 15:57

      >タブを含めて矩形選択をして、文字を入力すると選択範囲がずれてしまいます。
      これはこういう仕様かと...
      複数行矩形選択+文字入力で複数行に同一文字を追加するという機能です.
      • [3781] Re2: 【バグ】タブを含む範囲選択 Max 2004年10月31日 00:42

        選択範囲で考えてるわけですね。わかりました。

        追加するだけなら今の仕様に不満はないのですが、
        追加後に選択箇所を削除すると、最初に選択した
        文字とは違うものも消されて不便に感じています。

        そこで要望なのですが、タブを含んでも選択範囲が
        ずれない仕組みも用意してもらえると助かります。
        • [3782] Re3: 【バグ】タブを含む範囲選択 すい 2004年10月31日 04:28

          >追加するだけなら今の仕様に不満はないのですが、
          >追加後に選択箇所を削除すると、最初に選択した
          >文字とは違うものも消されて不便に感じています。
          >
          >そこで要望なのですが、タブを含んでも選択範囲が
          >ずれない仕組みも用意してもらえると助かります。

          話も分かるし、すごく気持ちも分かるけど無理じゃない?

          確かにその「タブがある行のみを矩形選択」の場合なら、何とか
          文字単位で考えて選択範囲を変えるとか出来るように思えるかも
          しれないですけど、タブがある行と無い行を同時に矩形範囲選択して
          文字入力していく場合まで考えると、現仕様以外に手が無いのでは?

          例えば

          for( i=0 ; i<10 ; i++ ){
            a += b[i]; // ←この行の行頭がタブだとします
          } //

          ↑とかいうテキストの場合に

          [for(] i=0 ; i<10 ; i++ ){
          [  ]a += b[i]; // ←この行の行頭がタブだとします
          [} //]

          [~] を矩形範囲選択したとして、その後、「//」と文字入力していくと

          //[for(] i=0 ; i<10 ; i++ ){
          //[ a ]+= b[i]; // ←この行の行頭がタブだとします
          //[} //]

          こうなってしまう、、というのは致し方ない事ではないかと。

          むしろタブに合わせて矩形選択範囲が↓

          //[fo]r( i=0 ; i<10 ; i++ ){
          //[ ]a += b[i]; // ←この行の行頭がタブだとします
          //[} ]//

          ↑こんな感じに変形してしまったら、もっと不自然ですよね?

          ユーザーとしての理想は↓

          //[for(] i=0 ; i<10 ; i++ ){
          //[ ]a += b[i]; // ←この行の行頭がタブだとします
          //[} //]

          ↑こんな感じに矩形選択範囲が凸凹な形状に変形してくれる仕様
          なんですよね。でも、これってプログラムがどえらく複雑になりそうだし、
          (行毎に選択範囲を覚えておいて、入力文字に応じて行毎に選択範囲を変形させる?)
          ちょっとそこまでは望めそうにないかなぁ~と思うのです。

          もちろんこれが実現したら、私もすごく嬉しいのですが。