◀一般トップへ
  • 2897 行頭が強調表示されず
    • 2899 RE: 行頭が強調表示されず
  • [2897] 行頭が強調表示されず loop 2003年05月08日 10:50

    以下の手順で行頭の正規表現キーワードが強調表示されない様です。

    1.対括弧の強調表示のチェックを入れておく
    2.正規表現キーワードで対になる括弧を含む文字列(例えば"\(.*\)"など)を
    指定する
    3.その文字列を行頭に表示させる
    4.括弧のところ(左右どちらでも)にカーソルを持っていく
    5.他の場所へカーソルを持っていく

    3で正規表現の強調表示,4で対括弧の強調表示されますが,5で行頭の括弧
    だけ正規表現の強調表示に戻らず通常表示のままになってしまいます。
    再描写すると直ります。
    • [2899] RE: 行頭が強調表示されず ai 2003年05月09日 18:10

      対応しました。
      合わせて下の修正も行なっています。
      ・折り返された行に正規表現等で色分けされた括弧があり、その括弧が強調表示された後に元の色に戻らなくなる。
      ssrc_2003-04-24.tar.bz2からの差分です。

      diff -ur sakura_core.orig/CEditView.cpp sakura_core/CEditView.cpp
      --- sakura_core.orig/CEditView.cpp Mon Apr 21 04:35:42 2003
      +++ sakura_core/CEditView.cpp Fri May 09 10:08:57 2003
      @@ -8615,7 +8615,13 @@
      nColorIndex = COLORIDX_BRACKET_PAIR;
      }else{
      if( IsBracket( pLine, OutputX, m_nCharSize ) ){
      - nColorIndex = GetColorIndex( hdc, pcLayout, OutputX );
      + // 03/04/30 ai Start
      + if( i == 0 ){
      + nColorIndex = GetColorIndex( hdc, pcLayout, m_nBracketCaretPosX_PHY );
      + }else{
      + nColorIndex = GetColorIndex( hdc, pcLayout, m_nBracketPairPosX_PHY );
      + }
      + // 03/04/30 ai End
      }else{
      SetBracketPairPos( false );
      //::MessageBeep( MB_ICONSTOP );
      @@ -8728,8 +8734,10 @@
      /* 論理行データの取得 */
      if( NULL != pcLayout ){
      // 2002/2/10 aroka CMemory変更
      - nLineLen = pcLayout->m_pCDocLine->m_pLine->GetLengt
      h() - pcLayout->m_nOffset;
      - pLine = pcLayout->m_pCDocLine->m_pLine->GetPtr() + pcLayout->m_nOffset;
      + // 03/04/30 ai Start
      + nLineLen = pcLayout->m_pCDocLine->m_pLine->GetLengt
      h();
      + pLine = pcLayout->m_pCDocLine->m_pLine->GetPtr()
      ;
      + // 03/04/30 ai End
      nCOMMENTMODE = pcLayout->m_nTypePrev; /* タイプ 0=通常 1=行コメント 2=ブロックコメント 3=シングルクォーテーション文字列 4=ダブルクォーテーション文字列 */
      nCOMMENTEND = 0;
      pcLayout2 = pcLayout;
      @@ -8760,7 +8768,7 @@
      }
      //@@@ 2001.11.17 add end MIK

      - while( nPos < nCol ){ // 02/12/18 ai
      + while( nPos <= nCol ){ // 03/05/08 ai 2897@一般掲示板対応

      nBgn = nPos;
      nLineBgn = nBgn;
      @@ -9267,7 +9275,7 @@
      }
      nPos+= nCharChars;
      } //end of while( nPos - nLineBgn < pcLayout2->m_nLength ){
      - if( nPos >= nCol ){ // 02/12/18 ai
      + if( nPos > nCol ){ // 03/05/08 ai 2897@一般掲示板対応
      break;
      }
      }

      ※遅くなりましたが、メニューが残る件の対応ありがとうございました。 >げんたさん、みくさん