Changeset 829 in dev for trunk/ab5.0/abdev/abdev/TextEditor_KeyEvent.cpp
- Timestamp:
- Mar 19, 2012, 2:58:56 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/TextEditor_KeyEvent.cpp
-
Property svn:eol-style
set to
native
-
Property svn:mime-type
set to
text/plain; charset=Shift_JIS
r771 r829 15 15 16 16 if(MdiInfo[WndNum]->pMdiTextEdit->iUnderStart!=-1){ 17 // ハイパーリンク下線の表示を解除17 //nCp[NºüÌ\¦ðð 18 18 MdiInfo[WndNum]->pMdiTextEdit->iUnderStart=-1; 19 19 MdiInfo[WndNum]->pMdiTextEdit->iUnderEnd=-1; 20 20 21 // 再描画21 //Ä`æ 22 22 InvalidateRect(hwnd,NULL,0); 23 23 UpdateWindow(hwnd); … … 42 42 43 43 if(lstrcmpi(temporary,"If")==0){ 44 //If 文の場合はブロック形式の有無を判定44 //If¶ÌêÍubN`®ÌL³ð»è 45 45 46 46 for(;;i++){ … … 55 55 56 56 if(memicmp(buffer+i-3,"Then",4)==0){ 57 // ブロック形式のIf57 //ubN`®ÌIf 58 58 return 1; 59 59 } 60 60 else{ 61 // 一行のみのIf61 //êsÌÝÌIf 62 62 return 0; 63 63 } … … 109 109 110 110 if(lstrcmpi(temporary,"End")==0&&(buffer[i]==' '||buffer[i]=='\t')){ 111 //End ~の場合111 //End `Ìê 112 112 113 113 int i2=i; … … 173 173 174 174 175 //BackSpace はWM_KEYDOWNで処理175 //BackSpaceÍWM_KEYDOWNÅ 176 176 if(nVirtualKey==VK_BACK) return; 177 177 178 178 if(nVirtualKey==VK_ESCAPE){ 179 179 if(ComplementWndInfo.hWnd){ 180 // コード補完リストを破棄する180 //R[hâ®Xgðjü·é 181 181 DestroyWindow(ComplementWndInfo.hWnd); 182 182 ComplementWndInfo.hWnd=0; … … 185 185 extern METHODCHECKINFO MethodCheckInfo; 186 186 if(MethodCheckInfo.hWnd){ 187 // パラメータヒントを破棄する187 //p[^qgðjü·é 188 188 DestroyWindow(MethodCheckInfo.hWnd); 189 189 MethodCheckInfo.hWnd=0; … … 193 193 } 194 194 195 // 未対応の文字コードの誤り入力を阻止195 //¢Î̶R[hÌëèüÍðj~ 196 196 if(GetKeyState(VK_CONTROL)&0x8000) return; 197 197 … … 201 201 if(ComplementWndInfo.hWnd){ 202 202 if((!(IsVariableChar(nVirtualKey)||nVirtualKey==VK_RETURN))||nVirtualKey=='.'){ 203 // コード補完リストを破棄する204 205 // ペアステートメント補完の場合は、空白文字を容認する203 //R[hâ®Xgðjü·é 204 205 //yAXe[ggâ®ÌêÍAó¶ðeF·é 206 206 if(!(nVirtualKey==' '&&ComplementWndInfo.pMemberInfo[0].dwAccess==ACCESS_PAIRCOMMAND)){ 207 207 DestroyWindow(ComplementWndInfo.hWnd); … … 213 213 if(nVirtualKey==VK_RETURN){ 214 214 if(ComplementWndInfo.hWnd){ 215 // コード補完リストが表示されているとき215 //R[hâ®Xgª\¦³êÄ¢éÆ« 216 216 for(i=0;i<ComplementWndInfo.MemberNum;i++){ 217 217 if(ListView_GetItemState(ComplementWndInfo.hList,i,LVIS_SELECTED)) break; … … 222 222 } 223 223 else{ 224 // コード補完リストを破棄する224 //R[hâ®Xgðjü·é 225 225 DestroyWindow(ComplementWndInfo.hWnd); 226 226 ComplementWndInfo.hWnd=0; … … 234 234 if(nVirtualKey==VK_RETURN&&pobj_nv->bAutoIndent){ 235 235 ////////////////// 236 // 自動インデント236 // ©®Cfg 237 237 ////////////////// 238 238 239 // インデント処理中はちらつき防止のため、キャレットを一時非表示にする239 //CfgÍ¿ç«h~̽ßALbgðêñ\¦É·é 240 240 extern int hide_caret_switch; 241 241 HideCaret(hwnd); … … 243 243 244 244 if(MdiInfo[WndNum]->IndentStr){ 245 // 以前の自動インデントを消去する245 //ÈOÌ©®CfgðÁ·é 246 246 CancelBeforeAutoIndent(WndNum); 247 247 } … … 251 251 int StartX; 252 252 253 // リプレイス前のカーソルバッファ位置を取得253 //vCXOÌJ[\obt@Êuðæ¾ 254 254 i=GetBufferIndexFromCaretPos(pBuf, 255 255 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x, … … 257 257 StartX=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x; 258 258 259 // リプレイス259 //vCX 260 260 TextEdit_ReplaceUpdateUndoData(WndNum,temporary,0,1); 261 261 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 262 262 263 // リプレイス後のカーソル行のインデントをi3に取得263 //vCXãÌJ[\sÌCfgði3Éæ¾ 264 264 for(i3=0;;i3++){ 265 265 if(pBuf[i+i3]!='\t') break; 266 266 } 267 267 268 // 前の行のインデントをコピー(i2にタブ数を格納)268 //OÌsÌCfgðRs[ii2É^uði[j 269 269 for(;i>0;i--){ 270 270 if( … … 282 282 283 283 if(MdiInfo[WndNum]->DocType==WNDTYPE_BASIC){ 284 // インデント追加のコマンドかどうかを判断284 //CfgÇÁÌR}h©Ç¤©ð»f 285 285 if(IsIndentAdditionCommand_FromBuffer(pBuf+i+i2)) i2++; 286 286 } … … 289 289 if(i2<0) i2=0; 290 290 291 // インデントが無いとき291 //Cfgª³¢Æ« 292 292 if(i2==0){ 293 293 hide_caret_switch=0; … … 297 297 } 298 298 299 /* (I…カーソル)300 (「\t\tⅠ」のような場合)、301 (「\t\tⅠtext...」のような場合)を判断299 /*ihcJ[\j 300 iu\t\tTvÌæ¤ÈêjA 301 iu\t\tTtext...vÌæ¤Èêjð»f 302 302 */ 303 303 i=GetBufferIndexFromCaretPos(pBuf, … … 306 306 if(pBuf[i]=='\r'&& 307 307 pBuf[i+1]=='\n'){ 308 // 自動インデントを開始する(「\t\tⅠ」のような場合)308 //©®CfgðJn·éiu\t\tTvÌæ¤Èêj 309 309 MdiInfo[WndNum]->IndentStr=(char *)HeapAlloc(hHeap,0,i2+1); 310 310 memset(MdiInfo[WndNum]->IndentStr,'\t',i2); … … 313 313 } 314 314 else{ 315 // 自動インデントを有効にする(「\t\tⅠtext...」のような場合)316 317 // リプレイス前のカーソルが行の先頭位置にあった場合は抜け出す315 //©®CfgðLøÉ·éiu\t\tTtext...vÌæ¤Èêj 316 317 //vCXOÌJ[\ªsÌæªÊuÉ Á½êͲ¯o· 318 318 if(StartX==0){ 319 319 hide_caret_switch=0; … … 352 352 if(GetKeyState(VK_SHIFT)&0x8000){ 353 353 ////////////////////////////////// 354 // 複数行にわたってタブ文字を削除354 // ¡sÉí½ÁÄ^u¶ðí 355 355 ////////////////////////////////// 356 356 … … 383 383 else{ 384 384 ////////////////////////// 385 // 複数行にタブ文字を追加385 // ¡sÉ^u¶ðÇÁ 386 386 ////////////////////////// 387 387 … … 390 390 } 391 391 392 i2++; // 先頭行のタブ文字も追加の対象392 i2++; //æªsÌ^u¶àÇÁÌÎÛ 393 393 TextEdit_SetSel(WndNum,CharRange.cpMin,CharRange.cpMax); 394 394 … … 419 419 } 420 420 421 // リプレイス421 //vCX 422 422 TextEdit_ReplaceUpdateUndoData(WndNum,pTemp,0,0); 423 423 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; … … 425 425 HeapDefaultFree(pTemp); 426 426 427 // キャレット位置の設定427 //LbgÊuÌÝè 428 428 for(i=CharRange.cpMin+i3;;i++){ 429 429 if(pBuf[i]=='\0') break; … … 437 437 i); 438 438 439 // 再描画439 //Ä`æ 440 440 if(!TextEdit_ScrollCaret(WndNum,0)) 441 441 InvalidateRect(hwnd,NULL,0); … … 456 456 457 457 if(ComplementWndInfo.hWnd){ 458 // コード補完リスト表示中のとき458 //R[hâ®Xg\¦ÌÆ« 459 459 ComplementWndInfo.iLength++; 460 460 } … … 463 463 464 464 /////////////////////// 465 // キー入力の受け入れ465 // L[üÍÌó¯üê 466 466 /////////////////////// 467 467 … … 471 471 472 472 //////////////////////////////////////////// 473 // コード補完機能、パラメータヒントなど473 // R[hâ®@\Ap[^qgÈÇ 474 474 //////////////////////////////////////////// 475 475 … … 493 493 if(nVirtualKey==VK_LEFT||nVirtualKey==VK_UP||nVirtualKey==VK_RIGHT||nVirtualKey==VK_DOWN||nVirtualKey==VK_PRIOR||nVirtualKey==VK_NEXT){ 494 494 if(MdiInfo[WndNum]->IndentStr){ 495 // 自動インデント中のインデントを無効にする495 //©®CfgÌCfgð³øÉ·é 496 496 CancelBeforeAutoIndent(WndNum); 497 497 if(nVirtualKey==VK_LEFT) return; … … 499 499 500 500 if(ComplementWndInfo.hWnd){ 501 // コード補完リスト表示中のとき501 //R[hâ®Xg\¦ÌÆ« 502 502 if(!(nVirtualKey==VK_LEFT||nVirtualKey==VK_RIGHT)){ 503 // コード補完リストにフォーカスを与える503 //R[hâ®XgÉtH[JXð^¦é 504 504 PostMessage(ComplementWndInfo.hList,WM_KEYDOWN,nVirtualKey,lKeyData); 505 505 return; … … 509 509 switch(nVirtualKey){ 510 510 case VK_LEFT: 511 // 上下キャレット移動時の左右位置保持機能を解除511 //ãºLbgڮ̶EÊuÛ@\ðð 512 512 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 513 513 … … 515 515 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)|| 516 516 GetKeyState(VK_SHIFT)&0x8000){ 517 // 選択中でないとき、またはシフトキーが押されているとき517 //IðÅȢƫAܽÍVtgL[ª³êÄ¢éÆ« 518 518 GetNaturalCaretPos_Left(WndNum); 519 519 } 520 520 else{ 521 // 選択中のとき521 //IðÌÆ« 522 522 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 523 523 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; … … 533 533 break; 534 534 case VK_RIGHT: 535 // 上下キャレット移動時の左右位置保持機能を解除535 //ãºLbgڮ̶EÊuÛ@\ðð 536 536 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 537 537 … … 539 539 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)|| 540 540 GetKeyState(VK_SHIFT)&0x8000){ 541 // 選択中でないとき、またはシフトキーが押されているとき541 //IðÅȢƫAܽÍVtgL[ª³êÄ¢éÆ« 542 542 GetNaturalCaretPos_Right(WndNum, 543 543 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 544 544 } 545 545 else{ 546 // 選択中のとき546 //IðÌÆ« 547 547 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 548 548 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; … … 560 560 if((GetKeyState(VK_CONTROL)&0x8000)&& 561 561 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x!=0){ 562 // 行の先頭へキャレットを移動562 //sÌæªÖLbgðÚ® 563 563 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0; 564 564 565 // 上下キャレット移動時の左右位置保持機能を解除565 //ãºLbgڮ̶EÊuÛ@\ðð 566 566 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 567 567 } … … 570 570 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)|| 571 571 GetKeyState(VK_SHIFT)&0x8000){ 572 // 選択中でないとき、またはシフトキーが押されているとき572 //IðÅȢƫAܽÍVtgL[ª³êÄ¢éÆ« 573 573 GetNaturalCaretPos_Up(WndNum, 574 574 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 575 575 } 576 576 else{ 577 // 選択中のとき577 //IðÌÆ« 578 578 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 579 579 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; … … 597 597 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)|| 598 598 GetKeyState(VK_SHIFT)&0x8000){ 599 // 選択中でないとき、またはシフトキーが押されているとき599 //IðÅȢƫAܽÍVtgL[ª³êÄ¢éÆ« 600 600 GetNaturalCaretPos_Down(WndNum, 601 601 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 602 602 } 603 603 else{ 604 // 選択中のとき604 //IðÌÆ« 605 605 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 606 606 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; … … 620 620 if(GetKeyState(VK_CONTROL)&0x8000){ 621 621 if(i2!=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y){ 622 // 行の先頭へキャレットを移動622 //sÌæªÖLbgðÚ® 623 623 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0; 624 624 } 625 625 else{ 626 // 行の末端へキャレットを移動(終端行の場合)626 //sÌ[ÖLbgðÚ®iI[sÌêj 627 627 CaretPos_LooseToNatural(WndNum, 628 628 INT_MAX, … … 631 631 } 632 632 633 // 上下キャレット移動時の左右位置保持機能を解除633 //ãºLbgڮ̶EÊuÛ@\ðð 634 634 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 635 635 } … … 646 646 647 647 if(!(GetKeyState(VK_SHIFT)&0x8000)){ 648 // シフトキーが押されていない、通常時648 //VtgL[ª³êĢȢAÊí 649 649 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 650 650 } 651 651 652 652 if(nVirtualKey==VK_PRIOR){ 653 // ページアップスクロール653 //y[WAbvXN[ 654 654 SendMessage(hwnd,WM_VSCROLL,SB_PAGEUP,0); 655 655 } 656 656 else if(nVirtualKey==VK_NEXT){ 657 // ページダウンスクロール657 //y[W_EXN[ 658 658 SendMessage(hwnd,WM_VSCROLL,SB_PAGEDOWN,0); 659 659 } 660 660 else{ 661 // その他、スクロールが必要な場合を考慮661 //»Ì¼AXN[ªKvÈêðl¶ 662 662 TextEdit_ScrollCaret(WndNum,0); 663 663 ResetCaretPos(WndNum); 664 664 } 665 665 666 //編集メニューをリセット 666 //ÒWj 667 [ðZbg 667 668 ResetState_EditMenu(); 668 669 669 670 if(!TextEdit_ScrollCaret(WndNum,0)&&isSelectedBefore){ 670 UpdateWindow(hwnd); // ちらつき防止671 // 再描画(選択時の反転表示が解除されたときを考慮)671 UpdateWindow(hwnd); //¿ç«h~ 672 //Ä`æiIð̽]\¦ªð³ê½Æ«ðl¶j 672 673 InvalidateRect(hwnd,NULL,0); 673 674 } … … 675 676 else if(nVirtualKey==VK_HOME||nVirtualKey==VK_END){ 676 677 677 // 上下キャレット移動時の左右位置保持機能を解除678 //ãºLbgڮ̶EÊuÛ@\ðð 678 679 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 679 680 680 681 if(GetKeyState(VK_CONTROL)&0x8000){ 681 // ファイルの先頭または末端へキャレットを移動682 //t@CÌæªÜ½Í[ÖLbgðÚ® 682 683 if(nVirtualKey==VK_HOME){ 683 684 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0; … … 685 686 } 686 687 else if(nVirtualKey==VK_END){ 687 // 存在するキャレット位置に変換688 //¶Ý·éLbgÊuÉÏ· 688 689 CaretPos_LooseToNatural(WndNum, 689 690 INT_MAX, … … 693 694 } 694 695 else{ 695 // 行の先頭または末端へキャレットを移動696 //sÌæªÜ½Í[ÖLbgðÚ® 696 697 if(nVirtualKey==VK_HOME) MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0; 697 698 else if(nVirtualKey==VK_END){ 698 // 存在するキャレット位置に変換699 //¶Ý·éLbgÊuÉÏ· 699 700 CaretPos_LooseToNatural(WndNum, 700 701 INT_MAX, … … 705 706 706 707 if(!(GetKeyState(VK_SHIFT)&0x8000)){ 707 // シフトキーが押されていない、通常時708 //VtgL[ª³êĢȢAÊí 708 709 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 709 710 } 710 711 711 712 if(!TextEdit_ScrollCaret(WndNum,0)&&isSelectedBefore){ 712 // 再描画(選択時の反転表示が解除されたときを考慮)713 //Ä`æiIð̽]\¦ªð³ê½Æ«ðl¶j 713 714 InvalidateRect(hwnd,NULL,0); 714 715 } 715 716 ResetCaretPos(WndNum); 716 717 717 //編集メニューをリセット 718 //ÒWj 719 [ðZbg 718 720 ResetState_EditMenu(); 719 721 } 720 722 else if(nVirtualKey==VK_DELETE){ 721 723 //////////// 722 // 削除キー724 // íL[ 723 725 //////////// 724 726 … … 727 729 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 728 730 729 // キャレットがファイルの終端にあるとき731 //Lbgªt@CÌI[É éÆ« 730 732 if(CharRange.cpMin==lstrlen(pBuf)) return; 731 733 732 734 if(CharRange.cpMin==CharRange.cpMax){ 733 735 if(MdiInfo[WndNum]->IndentStr){ 734 // 自動インデントを有効にする736 //©®CfgðLøÉ·é 735 737 char temporary[1024]; 736 738 lstrcpy(temporary,MdiInfo[WndNum]->IndentStr); … … 756 758 else if(nVirtualKey==VK_BACK){ 757 759 ///////////////// 758 // BackSpace キー760 // BackSpaceL[ 759 761 ///////////////// 760 762 761 763 if(MdiInfo[WndNum]->IndentStr){ 762 // 自動インデント中のインデントの場合、インデントの1文字を削除する764 //©®CfgÌCfgÌêACfgÌ1¶ðí·é 763 765 if(lstrlen(MdiInfo[WndNum]->IndentStr)==1){ 764 //1 文字しか残っていない場合は自動インデントそのものを消去する766 //1¶µ©cÁĢȢêÍ©®Cfg»ÌàÌðÁ·é 765 767 CancelBeforeAutoIndent(WndNum); 766 768 } … … 786 788 if(CharRange.cpMin==CharRange.cpMax){ 787 789 if(ComplementWndInfo.hWnd){ 788 // コード補完リスト表示中のとき790 //R[hâ®Xg\¦ÌÆ« 789 791 ComplementWndInfo.iLength--; 790 792 } … … 809 811 810 812 //////////////////// 811 // パラメータヒント813 // p[^qg 812 814 //////////////////// 813 815 … … 816 818 (!ComplementWndInfo.hWnd)&& 817 819 (MethodCheckInfo.hWnd||nVirtualKey==' '||nVirtualKey=='\"'||nVirtualKey=='(')){ 818 // 直前に入力された文字を表示820 //¼OÉüͳ꽶ð\¦ 819 821 UpdateWindow(hwnd); 820 822 821 // パラメータヒントを表示823 //p[^qgð\¦ 822 824 ShowParameterHint(WndNum); 823 825 } … … 825 827 826 828 /////////////////////////////// 827 // ペアステートメント補完829 // yAXe[ggâ® 828 830 /////////////////////////////// 829 831 830 832 if( 831 833 pobj_nv->BackNum_PairStatementComplement&& 832 (nVirtualKey=='c'||nVirtualKey=='C'|| //Case 、Catch833 nVirtualKey=='e'||nVirtualKey=='E'|| //End ~834 (nVirtualKey=='c'||nVirtualKey=='C'|| //CaseACatch 835 nVirtualKey=='e'||nVirtualKey=='E'|| //End ` 834 836 nVirtualKey=='f'||nVirtualKey=='F'|| //Finally 835 837 nVirtualKey=='l'||nVirtualKey=='L'|| //Loop 836 838 nVirtualKey=='n'||nVirtualKey=='N'|| //Next 837 nVirtualKey=='p'||nVirtualKey=='P'|| //Private 、Protected、Public839 nVirtualKey=='p'||nVirtualKey=='P'|| //PrivateAProtectedAPublic 838 840 nVirtualKey=='w'||nVirtualKey=='W') //Wend 839 841 ){ … … 848 850 if(GetEndPairCommandInfo(pBuf,i-1)){ 849 851 850 // 入力された頭文字と一致するかどうかを検証852 //üͳ꽪¶Æêv·é©Ç¤©ðØ 851 853 for(i3=0;i3<ComplementWndInfo.MemberNum;i3++){ 852 854 if((char)CharUpper((LPSTR)(char)nVirtualKey)== … … 861 863 CodeComplement(WndNum,i-1); 862 864 863 // 初期入力時に補完リストの選択をさせるため865 //úüÍÉâ®XgÌIðð³¹é½ß 864 866 ResetCaretPos(WndNum); 865 867 } … … 869 871 870 872 ////////////////// 871 // コード補完機能873 // R[hâ®@\ 872 874 ////////////////// 873 875 … … 887 889 if(pBuf[i3]=='\r'&&pBuf[i3+1]=='\n') break; 888 890 if(pBuf[i3]=='\''){ 889 // 注釈文のとき891 //߶ÌÆ« 890 892 return; 891 893 } … … 893 895 } 894 896 if(IsStr){ 895 // 文字列内のとき897 //¶ñàÌÆ« 896 898 return; 897 899 } … … 929 931 if((nVirtualKey=='.'&&i2-i==0)|| 930 932 nVirtualKey=='>'&&i2-i==1){ 931 // オブジェクト識別子がないとき、Withを検索933 //IuWFNg¯ÊqªÈ¢Æ«AWithðõ 932 934 GetWithObjectVariable(pBuf,i2,temporary); 933 935 … … 936 938 } 937 939 else{ 938 // オブジェクト識別子をtemporaryにコピー939 940 // アクセス違反を防ぐため、VN_SIZE以上の参照データへの補完は行わない940 //IuWFNg¯ÊqðtemporaryÉRs[ 941 942 //ANZXá½ðh®½ßAVN_SIZEÈãÌQÆf[^ÖÌâ®ÍsíÈ¢ 941 943 if(i2-i>VN_SIZE) return; 942 944 … … 955 957 956 958 if(temporary[0]){ 957 // オブジェクト識別子を検出した場合959 //IuWFNg¯Êqðoµ½ê 958 960 if(GetComplementInfo(temporary,pBuf,i2)){ 959 961 ComplementWndInfo.iLength=0; … … 971 973 void TextEditEvent_StartAnalysis_Html(HWND hwnd,int WndNum,int nVirtualKey){ 972 974 ////////////////////////// 973 // HTML のコード補完975 // HTMLÌR[hâ® 974 976 ////////////////////////// 975 977 … … 983 985 984 986 /////////////////////////////// 985 // コード補完987 // R[hâ® 986 988 /////////////////////////////// 987 989 … … 996 998 CodeComplement(WndNum,i); 997 999 998 // 初期入力時に補完リストの選択をさせるため1000 //úüÍÉâ®XgÌIðð³¹é½ß 999 1001 ResetCaretPos(WndNum); 1000 1002 } -
Property svn:eol-style
set to
Note:
See TracChangeset
for help on using the changeset viewer.