📄 ceditview_new.cpp
字号:
}else
if( TypeDataPtr->m_ColorInfoArr[COLORIDX_COMMENT].m_bDisp &&
TypeDataPtr->m_cBlockComment.Match_CommentFrom( 1, nPos, nLineLen, pLine ) //@@@ 2002.09.22 YAZAKI
){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
nBgn = nPos;
nCOMMENTMODE = COLORIDX_BLOCK2; /* ブロックコメント2である */ // 2002/03/13 novice
// if( TypeDataPtr->m_bDispCOMMENT ){ /* コメントを表示する */
/* 現在の色を指定 */
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
// }
/* この物理行にブロックコメントの終端があるか */
nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, nPos + (int)lstrlen( TypeDataPtr->m_cBlockComment.getBlockCommentFrom(1) ), nLineLen, pLine ); //@@@ 2002.09.22 YAZAKI
//#endif
}else
if( pLine[nPos] == '\'' &&
TypeDataPtr->m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp /* シングルクォーテーション文字列を表示する */
){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
nBgn = nPos;
nCOMMENTMODE = COLORIDX_SSTRING; /* シングルクォーテーション文字列である */ // 2002/03/13 novice
// if( TypeDataPtr->m_ColorInfoArr[COLORIDX_SSTRING].m_bDisp ){ /* シングルクォーテーション文字列を表示する */
/* 現在の色を指定 */
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
// }
/* シングルクォーテーション文字列の終端があるか */
int i;
nCOMMENTEND = nLineLen;
for( i = nPos + 1; i <= nLineLen - 1; ++i ){
nCharChars_2 = CMemory::MemCharNext( pLine, nLineLen, &pLine[i] ) - &pLine[i];
if( 0 == nCharChars_2 ){
nCharChars_2 = 1;
}
if( TypeDataPtr->m_nStringType == 0 ){ /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
if( 1 == nCharChars_2 && pLine[i] == '\\' ){
++i;
}else
if( 1 == nCharChars_2 && pLine[i] == '\'' ){
nCOMMENTEND = i + 1;
break;
}
}else
if( TypeDataPtr->m_nStringType == 1 ){ /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
if( 1 == nCharChars_2 && pLine[i] == '\'' ){
if( i + 1 < nLineLen && pLine[i + 1] == '\'' ){
++i;
}else{
nCOMMENTEND = i + 1;
break;
}
}
}
if( 2 == nCharChars_2 ){
++i;
}
}
}else
if( pLine[nPos] == '"' &&
TypeDataPtr->m_ColorInfoArr[COLORIDX_WSTRING].m_bDisp /* ダブルクォーテーション文字列を表示する */
){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
nBgn = nPos;
nCOMMENTMODE = COLORIDX_WSTRING; /* ダブルクォーテーション文字列である */ // 2002/03/13 novice
/* 現在の色を指定 */
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
/* ダブルクォーテーション文字列の終端があるか */
int i;
nCOMMENTEND = nLineLen;
for( i = nPos + 1; i <= nLineLen - 1; ++i ){
nCharChars_2 = CMemory::MemCharNext( pLine, nLineLen, &pLine[i] ) - &pLine[i];
if( 0 == nCharChars_2 ){
nCharChars_2 = 1;
}
if( TypeDataPtr->m_nStringType == 0 ){ /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
if( 1 == nCharChars_2 && pLine[i] == '\\' ){
++i;
}else
if( 1 == nCharChars_2 && pLine[i] == '"' ){
nCOMMENTEND = i + 1;
break;
}
}else
if( TypeDataPtr->m_nStringType == 1 ){ /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
if( 1 == nCharChars_2 && pLine[i] == '"' ){
if( i + 1 < nLineLen && pLine[i + 1] == '"' ){
++i;
}else{
nCOMMENTEND = i + 1;
break;
}
}
}
if( 2 == nCharChars_2 ){
++i;
}
}
}else
if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_URL].m_bDisp /* URLを表示する */
&& ( TRUE == IsURL( &pLine[nPos], nLineLen - nPos, &nUrlLen ) ) /* 指定アドレスがURLの先頭ならばTRUEとその長さを返す */
){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
nBgn = nPos;
nCOMMENTMODE = COLORIDX_URL; /* URLモード */ // 2002/03/13 novice
nCOMMENTEND = nPos + nUrlLen;
/* 現在の色を指定 */
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
//@@@ 2001.02.17 Start by MIK: 半角数値を強調表示
//#ifdef COMPILE_COLOR_DIGIT
}else if( bKeyWordTop && TypeDataPtr->m_ColorInfoArr[COLORIDX_DIGIT].m_bDisp
&& (i = IsNumber( pLine, nPos, nLineLen )) > 0 ) /* 半角数字を表示する */
{
/* キーワード文字列の終端をセットする */
i = nPos + i;
if( y/* + nLineHeight*/ >= m_nViewAlignTop )
{
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
/* 現在の色を指定 */
nBgn = nPos;
nCOMMENTMODE = COLORIDX_DIGIT; /* 半角数値である */ // 2002/03/13 novice
nCOMMENTEND = i;
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
//#endif
//@@@ 2001.02.17 End by MIK: 半角数値を強調表示
}else
if( bKeyWordTop && TypeDataPtr->m_nKeyWordSetIdx[0] != -1 && /* キーワードセット */
TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1].m_bDisp && /* 強調キーワードを表示する */ // 2002/03/13 novice
IS_KEYWORD_CHAR( pLine[nPos] )
){
// Mar 4, 2001 genta comment out
// bKeyWordTop = false;
/* キーワード文字列の終端を探す */
for( i = nPos + 1; i <= nLineLen - 1; ++i ){
if( IS_KEYWORD_CHAR( pLine[i] ) ){
}else{
break;
}
}
/* キーワードが登録単語ならば、色を変える */
j = i - nPos;
/* n番目のセットから指定キーワードをサーチ 無いときは-1を返す */
nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2( //MIK UPDATE 2000.12.01 binary search
TypeDataPtr->m_nKeyWordSetIdx[0],
&pLine[nPos],
j
);
if( nIdx != -1 ){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
/* 現在の色を指定 */
nBgn = nPos;
nCOMMENTMODE = COLORIDX_KEYWORD1; /* 強調キーワード1 */ // 2002/03/13 novice
nCOMMENTEND = i;
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
}else{ //MIK START ADD 2000.12.01 second keyword & binary search
// 2005.01.13 MIK 強調キーワード数追加に伴う配列化
for( int my_i = 1; my_i < 10; my_i++ )
{
if(TypeDataPtr->m_nKeyWordSetIdx[ my_i ] != -1 && /* キーワードセット */ //MIK 2000.12.01 second keyword
TypeDataPtr->m_ColorInfoArr[COLORIDX_KEYWORD1 + my_i].m_bDisp) //MIK
{ //MIK
/* n番目のセットから指定キーワードをサーチ 無いときは-1を返す */ //MIK
nIdx = m_pShareData->m_CKeyWordSetMgr.SearchKeyWord2( //MIK 2000.12.01 binary search
TypeDataPtr->m_nKeyWordSetIdx[ my_i ] , //MIK
&pLine[nPos], //MIK
j //MIK
); //MIK
if( nIdx != -1 ){ //MIK
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){ //MIK
/* テキスト表示 */ //MIK
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn ); //MIK
} //MIK
/* 現在の色を指定 */ //MIK
nBgn = nPos; //MIK
nCOMMENTMODE = COLORIDX_KEYWORD1 + my_i; /* 強調キーワード2 */ // 2002/03/13 novice //MIK
nCOMMENTEND = i; //MIK
if( !bSearchStringMode ){ //MIK
SetCurrentColor( hdc, nCOMMENTMODE ); //MIK
} //MIK
break;
} //MIK
} //MIK
else
{
if(TypeDataPtr->m_nKeyWordSetIdx[my_i] == -1 )
break;
}
}
} //MIK END
}
// From Here Mar. 4, 2001 genta
if( IS_KEYWORD_CHAR( pLine[nPos] )) bKeyWordTop = false;
else bKeyWordTop = true;
// To Here
break;
// 2002/03/13 novice
case COLORIDX_URL: /* URLモードである */
case COLORIDX_KEYWORD1: /* 強調キーワード1 */
case COLORIDX_DIGIT: /* 半角数値である */ //@@@ 2001.02.17 by MIK
case COLORIDX_KEYWORD2: /* 強調キーワード2 */ //MIK
case COLORIDX_KEYWORD3: // 2005.01.13 MIK 強調キーワード3-10
case COLORIDX_KEYWORD4:
case COLORIDX_KEYWORD5:
case COLORIDX_KEYWORD6:
case COLORIDX_KEYWORD7:
case COLORIDX_KEYWORD8:
case COLORIDX_KEYWORD9:
case COLORIDX_KEYWORD10:
//case 1000: //正規表現キーワード1~10 //@@@ 2001.11.17 add MIK //@@@ 2002.01.04 del
if( nPos == nCOMMENTEND ){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
nBgn = nPos;
nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
/* 現在の色を指定 */
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
goto SEARCH_START;
}
break;
case COLORIDX_CTRLCODE: /* コントロールコード */ // 2002/03/13 novice
if( nPos == nCOMMENTEND ){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
nBgn = nPos;
nCOMMENTMODE = nCOMMENTMODE_OLD;
nCOMMENTEND = nCOMMENTEND_OLD;
/* 現在の色を指定 */
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
goto SEARCH_START;
}
break;
case COLORIDX_COMMENT: /* 行コメントである */ // 2002/03/13 novice
break;
case COLORIDX_BLOCK1: /* ブロックコメント1である */ // 2002/03/13 novice
if( 0 == nCOMMENTEND ){
/* この物理行にブロックコメントの終端があるか */
nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 0, nPos, nLineLen, pLine ); //@@@ 2002.09.22 YAZAKI
}else
if( nPos == nCOMMENTEND ){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
nBgn = nPos;
nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
/* 現在の色を指定 */
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
goto SEARCH_START;
}
break;
//#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK
case COLORIDX_BLOCK2: /* ブロックコメント2である */ // 2002/03/13 novice
if( 0 == nCOMMENTEND ){
/* この物理行にブロックコメントの終端があるか */
nCOMMENTEND = TypeDataPtr->m_cBlockComment.Match_CommentTo( 1, nPos, nLineLen, pLine ); //@@@ 2002.09.22 YAZAKI
}else
if( nPos == nCOMMENTEND ){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
nBgn = nPos;
nCOMMENTMODE = COLORIDX_TEXT; // 2002/03/13 novice
/* 現在の色を指定 */
if( !bSearchStringMode ){
SetCurrentColor( hdc, nCOMMENTMODE );
}
goto SEARCH_START;
}
break;
//#endif
case COLORIDX_SSTRING: /* シングルクォーテーション文字列である */ // 2002/03/13 novice
if( 0 == nCOMMENTEND ){
/* シングルクォーテーション文字列の終端があるか */
int i;
nCOMMENTEND = nLineLen;
for( i = nPos/* + 1*/; i <= nLineLen - 1; ++i ){
nCharChars_2 = CMemory::MemCharNext( pLine, nLineLen, &pLine[i] ) - &pLine[i];
if( 0 == nCharChars_2 ){
nCharChars_2 = 1;
}
if( TypeDataPtr->m_nStringType == 0 ){ /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
if( 1 == nCharChars_2 && pLine[i] == '\\' ){
++i;
}else
if( 1 == nCharChars_2 && pLine[i] == '\'' ){
nCOMMENTEND = i + 1;
break;
}
}else
if( TypeDataPtr->m_nStringType == 1 ){ /* 文字列区切り記号エスケープ方法 0=[\"][\'] 1=[""][''] */
if( 1 == nCharChars_2 && pLine[i] == '\'' ){
if( i + 1 < nLineLen && pLine[i + 1] == '\'' ){
++i;
}else{
nCOMMENTEND = i + 1;
break;
}
}
}
if( 2 == nCharChars_2 ){
++i;
}
}
}else
if( nPos == nCOMMENTEND ){
if( y/* + nLineHeight*/ >= m_nViewAlignTop ){
/* テキスト表示 */
nX += DispText( hdc, x + nX * ( nCharWidth ), y, &pLine[nBgn], nPos - nBgn );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -