Ignore:
Timestamp:
Mar 19, 2012, 2:58:56 AM (12 years ago)
Author:
イグトランス (egtra)
Message:

svn:eol-styleとsvn:mime-type(文字コード指定含む)の設定

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  
    1515
    1616        if(MdiInfo[WndNum]->pMdiTextEdit->iUnderStart!=-1){
    17             //ハイパーリンク下線の表示を解除
     17            //ƒnƒCƒp[ƒŠƒ“ƒN‰ºü‚Ì•\Ž¦‚ð‰ðœ
    1818            MdiInfo[WndNum]->pMdiTextEdit->iUnderStart=-1;
    1919            MdiInfo[WndNum]->pMdiTextEdit->iUnderEnd=-1;
    2020
    21             //再描画
     21            //Ä•`‰æ
    2222            InvalidateRect(hwnd,NULL,0);
    2323            UpdateWindow(hwnd);
     
    4242
    4343    if(lstrcmpi(temporary,"If")==0){
    44         //If文の場合はブロック形式の有無を判定
     44        //If•¶‚̏ꍇ‚̓uƒƒbƒNŒ`Ž®‚Ì—L–³‚ð”»’è
    4545
    4646        for(;;i++){
     
    5555
    5656        if(memicmp(buffer+i-3,"Then",4)==0){
    57             //ブロック形式のIf
     57            //ƒuƒƒbƒNŒ`Ž®‚ÌIf
    5858            return 1;
    5959        }
    6060        else{
    61             //一行のみのIf
     61            //ˆês‚Ì‚Ý‚ÌIf
    6262            return 0;
    6363        }
     
    109109
    110110    if(lstrcmpi(temporary,"End")==0&&(buffer[i]==' '||buffer[i]=='\t')){
    111         //End ~の場合
     111        //End `‚̏ꍇ
    112112
    113113        int i2=i;
     
    173173
    174174
    175     //BackSpaceはWM_KEYDOWNで処理
     175    //BackSpace‚ÍWM_KEYDOWN‚ŏˆ—
    176176    if(nVirtualKey==VK_BACK) return;
    177177
    178178    if(nVirtualKey==VK_ESCAPE){
    179179        if(ComplementWndInfo.hWnd){
    180             //コード補完リストを破棄する
     180            //ƒR[ƒh•âŠ®ƒŠƒXƒg‚ð”jŠü‚·‚é
    181181            DestroyWindow(ComplementWndInfo.hWnd);
    182182            ComplementWndInfo.hWnd=0;
     
    185185        extern METHODCHECKINFO MethodCheckInfo;
    186186        if(MethodCheckInfo.hWnd){
    187             //パラメータヒントを破棄する
     187            //ƒpƒ‰ƒ[ƒ^ƒqƒ“ƒg‚ð”jŠü‚·‚é
    188188            DestroyWindow(MethodCheckInfo.hWnd);
    189189            MethodCheckInfo.hWnd=0;
     
    193193    }
    194194
    195     //未対応の文字コードの誤り入力を阻止
     195    //–¢‘Ήž‚Ì•¶ŽšƒR[ƒh‚ÌŒë‚è“ü—Í‚ð‘jŽ~
    196196    if(GetKeyState(VK_CONTROL)&0x8000) return;
    197197
     
    201201    if(ComplementWndInfo.hWnd){
    202202        if((!(IsVariableChar(nVirtualKey)||nVirtualKey==VK_RETURN))||nVirtualKey=='.'){
    203             //コード補完リストを破棄する
    204 
    205             //ペアステートメント補完の場合は、空白文字を容認する
     203            //ƒR[ƒh•âŠ®ƒŠƒXƒg‚ð”jŠü‚·‚é
     204
     205            //ƒyƒAƒXƒe[ƒgƒƒ“ƒg•âŠ®‚̏ꍇ‚́A‹ó”’•¶Žš‚ð—e”F‚·‚é
    206206            if(!(nVirtualKey==' '&&ComplementWndInfo.pMemberInfo[0].dwAccess==ACCESS_PAIRCOMMAND)){
    207207                DestroyWindow(ComplementWndInfo.hWnd);
     
    213213    if(nVirtualKey==VK_RETURN){
    214214        if(ComplementWndInfo.hWnd){
    215             //コード補完リストが表示されているとき
     215            //ƒR[ƒh•âŠ®ƒŠƒXƒg‚ª•\Ž¦‚³‚ê‚Ä‚¢‚é‚Æ‚«
    216216            for(i=0;i<ComplementWndInfo.MemberNum;i++){
    217217                if(ListView_GetItemState(ComplementWndInfo.hList,i,LVIS_SELECTED)) break;
     
    222222            }
    223223            else{
    224                 //コード補完リストを破棄する
     224                //ƒR[ƒh•âŠ®ƒŠƒXƒg‚ð”jŠü‚·‚é
    225225                DestroyWindow(ComplementWndInfo.hWnd);
    226226                ComplementWndInfo.hWnd=0;
     
    234234        if(nVirtualKey==VK_RETURN&&pobj_nv->bAutoIndent){
    235235            //////////////////
    236             // 自動インデント
     236            // Ž©“®ƒCƒ“ƒfƒ“ƒg
    237237            //////////////////
    238238
    239             //インデント処理中はちらつき防止のため、キャレットを一時非表示にする
     239            //ƒCƒ“ƒfƒ“ƒgˆ—’†‚Í‚¿‚ç‚‚«–hŽ~‚Ì‚½‚߁AƒLƒƒƒŒƒbƒg‚ðˆêŽž”ñ•\Ž¦‚É‚·‚é
    240240            extern int hide_caret_switch;
    241241            HideCaret(hwnd);
     
    243243
    244244            if(MdiInfo[WndNum]->IndentStr){
    245                 //以前の自動インデントを消去する
     245                //ˆÈ‘O‚ÌŽ©“®ƒCƒ“ƒfƒ“ƒg‚ðÁ‹Ž‚·‚é
    246246                CancelBeforeAutoIndent(WndNum);
    247247            }
     
    251251            int StartX;
    252252
    253             //リプレイス前のカーソルバッファ位置を取得
     253            //ƒŠƒvƒŒƒCƒX‘O‚̃J[ƒ\ƒ‹ƒoƒbƒtƒ@ˆÊ’u‚ðŽæ“¾
    254254            i=GetBufferIndexFromCaretPos(pBuf,
    255255                MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x,
     
    257257            StartX=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x;
    258258
    259             //リプレイス
     259            //ƒŠƒvƒŒƒCƒX
    260260            TextEdit_ReplaceUpdateUndoData(WndNum,temporary,0,1);
    261261            pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    262262
    263             //リプレイス後のカーソル行のインデントをi3に取得
     263            //ƒŠƒvƒŒƒCƒXŒã‚̃J[ƒ\ƒ‹s‚̃Cƒ“ƒfƒ“ƒg‚ði3‚Ɏ擾
    264264            for(i3=0;;i3++){
    265265                if(pBuf[i+i3]!='\t') break;
    266266            }
    267267
    268             //前の行のインデントをコピー(i2にタブ数を格納)
     268            //‘O‚̍s‚̃Cƒ“ƒfƒ“ƒg‚ðƒRƒs[ii2‚Ƀ^ƒu”‚ðŠi”[j
    269269            for(;i>0;i--){
    270270                if(
     
    282282
    283283            if(MdiInfo[WndNum]->DocType==WNDTYPE_BASIC){
    284                 //インデント追加のコマンドかどうかを判断
     284                //ƒCƒ“ƒfƒ“ƒg’ljÁ‚̃Rƒ}ƒ“ƒh‚©‚Ç‚¤‚©‚ð”»’f
    285285                if(IsIndentAdditionCommand_FromBuffer(pBuf+i+i2)) i2++;
    286286            }
     
    289289            if(i2<0) i2=0;
    290290
    291             //インデントが無いとき
     291            //ƒCƒ“ƒfƒ“ƒg‚ª–³‚¢‚Æ‚«
    292292            if(i2==0){
    293293                hide_caret_switch=0;
     
    297297            }
    298298
    299             /*(I…カーソル)
    300             (「\t\tⅠ」のような場合)、
    301             (「\t\tⅠtext...」のような場合)を判断
     299            /*i‚hcƒJ[ƒ\ƒ‹j
     300            iu\t\t‡Tv‚̂悤‚ȏꍇjA
     301            iu\t\t‡Ttext...v‚̂悤‚ȏꍇj‚ð”»’f
    302302            */
    303303            i=GetBufferIndexFromCaretPos(pBuf,
     
    306306            if(pBuf[i]=='\r'&&
    307307                pBuf[i+1]=='\n'){
    308                 //自動インデントを開始する(「\t\tⅠ」のような場合)
     308                //Ž©“®ƒCƒ“ƒfƒ“ƒg‚ðŠJŽn‚·‚éiu\t\t‡Tv‚̂悤‚ȏꍇj
    309309                MdiInfo[WndNum]->IndentStr=(char *)HeapAlloc(hHeap,0,i2+1);
    310310                memset(MdiInfo[WndNum]->IndentStr,'\t',i2);
     
    313313            }
    314314            else{
    315                 //自動インデントを有効にする(「\t\tⅠtext...」のような場合)
    316 
    317                 //リプレイス前のカーソルが行の先頭位置にあった場合は抜け出す
     315                //Ž©“®ƒCƒ“ƒfƒ“ƒg‚ð—LŒø‚É‚·‚éiu\t\t‡Ttext...v‚̂悤‚ȏꍇj
     316
     317                //ƒŠƒvƒŒƒCƒX‘O‚̃J[ƒ\ƒ‹‚ªs‚̐擪ˆÊ’u‚É‚ ‚Á‚½ê‡‚Í”²‚¯o‚·
    318318                if(StartX==0){
    319319                    hide_caret_switch=0;
     
    352352            if(GetKeyState(VK_SHIFT)&0x8000){
    353353                //////////////////////////////////
    354                 // 複数行にわたってタブ文字を削除
     354                // •¡”s‚ɂ킽‚Á‚ă^ƒu•¶Žš‚ðíœ
    355355                //////////////////////////////////
    356356
     
    383383            else{
    384384                //////////////////////////
    385                 // 複数行にタブ文字を追加
     385                // •¡”s‚Ƀ^ƒu•¶Žš‚ð’ljÁ
    386386                //////////////////////////
    387387
     
    390390                }
    391391
    392                 i2++;   //先頭行のタブ文字も追加の対象
     392                i2++;   //æ“ªs‚̃^ƒu•¶Žš‚à’ljÁ‚̑ΏÛ
    393393                TextEdit_SetSel(WndNum,CharRange.cpMin,CharRange.cpMax);
    394394
     
    419419            }
    420420
    421             //リプレイス
     421            //ƒŠƒvƒŒƒCƒX
    422422            TextEdit_ReplaceUpdateUndoData(WndNum,pTemp,0,0);
    423423            pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
     
    425425            HeapDefaultFree(pTemp);
    426426
    427             //キャレット位置の設定
     427            //ƒLƒƒƒŒƒbƒgˆÊ’u‚̐ݒè
    428428            for(i=CharRange.cpMin+i3;;i++){
    429429                if(pBuf[i]=='\0') break;
     
    437437                i);
    438438
    439             //再描画
     439            //Ä•`‰æ
    440440            if(!TextEdit_ScrollCaret(WndNum,0))
    441441                InvalidateRect(hwnd,NULL,0);
     
    456456
    457457    if(ComplementWndInfo.hWnd){
    458         //コード補完リスト表示中のとき
     458        //ƒR[ƒh•âŠ®ƒŠƒXƒg•\Ž¦’†‚Ì‚Æ‚«
    459459        ComplementWndInfo.iLength++;
    460460    }
     
    463463
    464464    ///////////////////////
    465     // キー入力の受け入れ
     465    // ƒL[“ü—͂̎󂯓ü‚ê
    466466    ///////////////////////
    467467
     
    471471
    472472    ////////////////////////////////////////////
    473     // コード補完機能、パラメータヒントなど
     473    // ƒR[ƒh•âŠ®‹@”\Aƒpƒ‰ƒ[ƒ^ƒqƒ“ƒg‚È‚Ç
    474474    ////////////////////////////////////////////
    475475
     
    493493    if(nVirtualKey==VK_LEFT||nVirtualKey==VK_UP||nVirtualKey==VK_RIGHT||nVirtualKey==VK_DOWN||nVirtualKey==VK_PRIOR||nVirtualKey==VK_NEXT){
    494494        if(MdiInfo[WndNum]->IndentStr){
    495             //自動インデント中のインデントを無効にする
     495            //Ž©“®ƒCƒ“ƒfƒ“ƒg’†‚̃Cƒ“ƒfƒ“ƒg‚𖳌ø‚É‚·‚é
    496496            CancelBeforeAutoIndent(WndNum);
    497497            if(nVirtualKey==VK_LEFT) return;
     
    499499
    500500        if(ComplementWndInfo.hWnd){
    501             //コード補完リスト表示中のとき
     501            //ƒR[ƒh•âŠ®ƒŠƒXƒg•\Ž¦’†‚Ì‚Æ‚«
    502502            if(!(nVirtualKey==VK_LEFT||nVirtualKey==VK_RIGHT)){
    503                 //コード補完リストにフォーカスを与える
     503                //ƒR[ƒh•âŠ®ƒŠƒXƒg‚ɃtƒH[ƒJƒX‚ð—^‚¦‚é
    504504                PostMessage(ComplementWndInfo.hList,WM_KEYDOWN,nVirtualKey,lKeyData);
    505505                return;
     
    509509        switch(nVirtualKey){
    510510            case VK_LEFT:
    511                 //上下キャレット移動時の左右位置保持機能を解除
     511                //ã‰ºƒLƒƒƒŒƒbƒgˆÚ“®Žž‚̍¶‰EˆÊ’u•ÛŽ‹@”\‚ð‰ðœ
    512512                MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    513513
     
    515515                    MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)||
    516516                    GetKeyState(VK_SHIFT)&0x8000){
    517                     //選択中でないとき、またはシフトキーが押されているとき
     517                    //‘I‘𒆂łȂ¢‚Æ‚«A‚Ü‚½‚̓VƒtƒgƒL[‚ª‰Ÿ‚³‚ê‚Ä‚¢‚é‚Æ‚«
    518518                    GetNaturalCaretPos_Left(WndNum);
    519519                }
    520520                else{
    521                     //選択中のとき
     521                    //‘I‘𒆂̂Ƃ«
    522522                    if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)
    523523                        MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos;
     
    533533                break;
    534534            case VK_RIGHT:
    535                 //上下キャレット移動時の左右位置保持機能を解除
     535                //ã‰ºƒLƒƒƒŒƒbƒgˆÚ“®Žž‚̍¶‰EˆÊ’u•ÛŽ‹@”\‚ð‰ðœ
    536536                MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    537537
     
    539539                    MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)||
    540540                    GetKeyState(VK_SHIFT)&0x8000){
    541                     //選択中でないとき、またはシフトキーが押されているとき
     541                    //‘I‘𒆂łȂ¢‚Æ‚«A‚Ü‚½‚̓VƒtƒgƒL[‚ª‰Ÿ‚³‚ê‚Ä‚¢‚é‚Æ‚«
    542542                    GetNaturalCaretPos_Right(WndNum,
    543543                        &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos);
    544544                }
    545545                else{
    546                     //選択中のとき
     546                    //‘I‘𒆂̂Ƃ«
    547547                    if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)
    548548                        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos;
     
    560560                if((GetKeyState(VK_CONTROL)&0x8000)&&
    561561                    MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x!=0){
    562                     //行の先頭へキャレットを移動
     562                    //s‚̐擪‚ÖƒLƒƒƒŒƒbƒg‚ðˆÚ“®
    563563                    MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0;
    564564
    565                     //上下キャレット移動時の左右位置保持機能を解除
     565                    //ã‰ºƒLƒƒƒŒƒbƒgˆÚ“®Žž‚̍¶‰EˆÊ’u•ÛŽ‹@”\‚ð‰ðœ
    566566                    MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    567567                }
     
    570570                        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)||
    571571                        GetKeyState(VK_SHIFT)&0x8000){
    572                         //選択中でないとき、またはシフトキーが押されているとき
     572                        //‘I‘𒆂łȂ¢‚Æ‚«A‚Ü‚½‚̓VƒtƒgƒL[‚ª‰Ÿ‚³‚ê‚Ä‚¢‚é‚Æ‚«
    573573                        GetNaturalCaretPos_Up(WndNum,
    574574                            &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos);
    575575                    }
    576576                    else{
    577                         //選択中のとき
     577                        //‘I‘𒆂̂Ƃ«
    578578                        if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)
    579579                            MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos;
     
    597597                    MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)||
    598598                    GetKeyState(VK_SHIFT)&0x8000){
    599                     //選択中でないとき、またはシフトキーが押されているとき
     599                    //‘I‘𒆂łȂ¢‚Æ‚«A‚Ü‚½‚̓VƒtƒgƒL[‚ª‰Ÿ‚³‚ê‚Ä‚¢‚é‚Æ‚«
    600600                    GetNaturalCaretPos_Down(WndNum,
    601601                        &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos);
    602602                }
    603603                else{
    604                     //選択中のとき
     604                    //‘I‘𒆂̂Ƃ«
    605605                    if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)
    606606                        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos;
     
    620620                if(GetKeyState(VK_CONTROL)&0x8000){
    621621                    if(i2!=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y){
    622                         //行の先頭へキャレットを移動
     622                        //s‚̐擪‚ÖƒLƒƒƒŒƒbƒg‚ðˆÚ“®
    623623                        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0;
    624624                    }
    625625                    else{
    626                         //行の末端へキャレットを移動(終端行の場合)
     626                        //s‚Ì––’[‚ÖƒLƒƒƒŒƒbƒg‚ðˆÚ“®iI’[s‚̏ꍇj
    627627                        CaretPos_LooseToNatural(WndNum,
    628628                            INT_MAX,
     
    631631                    }
    632632
    633                     //上下キャレット移動時の左右位置保持機能を解除
     633                    //ã‰ºƒLƒƒƒŒƒbƒgˆÚ“®Žž‚̍¶‰EˆÊ’u•ÛŽ‹@”\‚ð‰ðœ
    634634                    MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    635635                }
     
    646646
    647647        if(!(GetKeyState(VK_SHIFT)&0x8000)){
    648             //シフトキーが押されていない、通常時
     648            //ƒVƒtƒgƒL[‚ª‰Ÿ‚³‚ê‚Ä‚¢‚È‚¢A’ʏ펞
    649649            MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos;
    650650        }
    651651
    652652        if(nVirtualKey==VK_PRIOR){
    653             //ページアップスクロール
     653            //ƒy[ƒWƒAƒbƒvƒXƒNƒ[ƒ‹
    654654            SendMessage(hwnd,WM_VSCROLL,SB_PAGEUP,0);
    655655        }
    656656        else if(nVirtualKey==VK_NEXT){
    657             //ページダウンスクロール
     657            //ƒy[ƒWƒ_ƒEƒ“ƒXƒNƒ[ƒ‹
    658658            SendMessage(hwnd,WM_VSCROLL,SB_PAGEDOWN,0);
    659659        }
    660660        else{
    661             //その他、スクロールが必要な場合を考慮
     661            //‚»‚Ì‘¼AƒXƒNƒ[ƒ‹‚ª•K—v‚ȏꍇ‚ðl—¶
    662662            TextEdit_ScrollCaret(WndNum,0);
    663663            ResetCaretPos(WndNum);
    664664        }
    665665
    666         //編集メニューをリセット
     666        //•ÒWƒƒjƒ
     667[‚ðƒŠƒZƒbƒg
    667668        ResetState_EditMenu();
    668669
    669670        if(!TextEdit_ScrollCaret(WndNum,0)&&isSelectedBefore){
    670             UpdateWindow(hwnd); //ちらつき防止
    671             //再描画(選択時の反転表示が解除されたときを考慮)
     671            UpdateWindow(hwnd); //‚¿‚ç‚‚«–hŽ~
     672            //Ä•`‰æi‘I‘ðŽž‚Ì”½“]•\Ž¦‚ª‰ðœ‚³‚ꂽ‚Æ‚«‚ðl—¶j
    672673            InvalidateRect(hwnd,NULL,0);
    673674        }
     
    675676    else if(nVirtualKey==VK_HOME||nVirtualKey==VK_END){
    676677
    677         //上下キャレット移動時の左右位置保持機能を解除
     678        //ã‰ºƒLƒƒƒŒƒbƒgˆÚ“®Žž‚̍¶‰EˆÊ’u•ÛŽ‹@”\‚ð‰ðœ
    678679        MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    679680
    680681        if(GetKeyState(VK_CONTROL)&0x8000){
    681             //ファイルの先頭または末端へキャレットを移動
     682            //ƒtƒ@ƒCƒ‹‚̐擪‚Ü‚½‚Í––’[‚ÖƒLƒƒƒŒƒbƒg‚ðˆÚ“®
    682683            if(nVirtualKey==VK_HOME){
    683684                MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0;
     
    685686            }
    686687            else if(nVirtualKey==VK_END){
    687                 //存在するキャレット位置に変換
     688                //‘¶Ý‚·‚éƒLƒƒƒŒƒbƒgˆÊ’u‚É•ÏŠ·
    688689                CaretPos_LooseToNatural(WndNum,
    689690                    INT_MAX,
     
    693694        }
    694695        else{
    695             //行の先頭または末端へキャレットを移動
     696            //s‚̐擪‚Ü‚½‚Í––’[‚ÖƒLƒƒƒŒƒbƒg‚ðˆÚ“®
    696697            if(nVirtualKey==VK_HOME) MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0;
    697698            else if(nVirtualKey==VK_END){
    698                 //存在するキャレット位置に変換
     699                //‘¶Ý‚·‚éƒLƒƒƒŒƒbƒgˆÊ’u‚É•ÏŠ·
    699700                CaretPos_LooseToNatural(WndNum,
    700701                    INT_MAX,
     
    705706
    706707        if(!(GetKeyState(VK_SHIFT)&0x8000)){
    707             //シフトキーが押されていない、通常時
     708            //ƒVƒtƒgƒL[‚ª‰Ÿ‚³‚ê‚Ä‚¢‚È‚¢A’ʏ펞
    708709            MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos;
    709710        }
    710711
    711712        if(!TextEdit_ScrollCaret(WndNum,0)&&isSelectedBefore){
    712             //再描画(選択時の反転表示が解除されたときを考慮)
     713            //Ä•`‰æi‘I‘ðŽž‚Ì”½“]•\Ž¦‚ª‰ðœ‚³‚ꂽ‚Æ‚«‚ðl—¶j
    713714            InvalidateRect(hwnd,NULL,0);
    714715        }
    715716        ResetCaretPos(WndNum);
    716717
    717         //編集メニューをリセット
     718        //•ÒWƒƒjƒ
     719[‚ðƒŠƒZƒbƒg
    718720        ResetState_EditMenu();
    719721    }
    720722    else if(nVirtualKey==VK_DELETE){
    721723        ////////////
    722         // 削除キー
     724        // íœƒL[
    723725        ////////////
    724726
     
    727729        pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    728730
    729         //キャレットがファイルの終端にあるとき
     731        //ƒLƒƒƒŒƒbƒg‚ªƒtƒ@ƒCƒ‹‚̏I’[‚É‚ ‚é‚Æ‚«
    730732        if(CharRange.cpMin==lstrlen(pBuf)) return;
    731733
    732734        if(CharRange.cpMin==CharRange.cpMax){
    733735            if(MdiInfo[WndNum]->IndentStr){
    734                 //自動インデントを有効にする
     736                //Ž©“®ƒCƒ“ƒfƒ“ƒg‚ð—LŒø‚É‚·‚é
    735737                char temporary[1024];
    736738                lstrcpy(temporary,MdiInfo[WndNum]->IndentStr);
     
    756758    else if(nVirtualKey==VK_BACK){
    757759        /////////////////
    758         // BackSpaceキー
     760        // BackSpaceƒL[
    759761        /////////////////
    760762
    761763        if(MdiInfo[WndNum]->IndentStr){
    762             //自動インデント中のインデントの場合、インデントの1文字を削除する
     764            //Ž©“®ƒCƒ“ƒfƒ“ƒg’†‚̃Cƒ“ƒfƒ“ƒg‚̏ꍇAƒCƒ“ƒfƒ“ƒg‚Ì1•¶Žš‚ðíœ‚·‚é
    763765            if(lstrlen(MdiInfo[WndNum]->IndentStr)==1){
    764                 //1文字しか残っていない場合は自動インデントそのものを消去する
     766                //1•¶Žš‚µ‚©Žc‚Á‚Ä‚¢‚È‚¢ê‡‚ÍŽ©“®ƒCƒ“ƒfƒ“ƒg‚»‚Ì‚à‚Ì‚ðÁ‹Ž‚·‚é
    765767                CancelBeforeAutoIndent(WndNum);
    766768            }
     
    786788        if(CharRange.cpMin==CharRange.cpMax){
    787789            if(ComplementWndInfo.hWnd){
    788                 //コード補完リスト表示中のとき
     790                //ƒR[ƒh•âŠ®ƒŠƒXƒg•\Ž¦’†‚Ì‚Æ‚«
    789791                ComplementWndInfo.iLength--;
    790792            }
     
    809811
    810812    ////////////////////
    811     // パラメータヒント
     813    // ƒpƒ‰ƒ[ƒ^ƒqƒ“ƒg
    812814    ////////////////////
    813815
     
    816818        (!ComplementWndInfo.hWnd)&&
    817819        (MethodCheckInfo.hWnd||nVirtualKey==' '||nVirtualKey=='\"'||nVirtualKey=='(')){
    818             //直前に入力された文字を表示
     820            //’¼‘O‚É“ü—Í‚³‚ꂽ•¶Žš‚ð•\Ž¦
    819821            UpdateWindow(hwnd);
    820822
    821             //パラメータヒントを表示
     823            //ƒpƒ‰ƒ[ƒ^ƒqƒ“ƒg‚ð•\Ž¦
    822824            ShowParameterHint(WndNum);
    823825    }
     
    825827
    826828    ///////////////////////////////
    827     // ペアステートメント補完
     829    // ƒyƒAƒXƒe[ƒgƒƒ“ƒg•âŠ®
    828830    ///////////////////////////////
    829831
    830832    if(
    831833        pobj_nv->BackNum_PairStatementComplement&&
    832         (nVirtualKey=='c'||nVirtualKey=='C'||       //CaseCatch
    833         nVirtualKey=='e'||nVirtualKey=='E'||        //End
     834        (nVirtualKey=='c'||nVirtualKey=='C'||       //CaseACatch
     835        nVirtualKey=='e'||nVirtualKey=='E'||        //End `
    834836        nVirtualKey=='f'||nVirtualKey=='F'||        //Finally
    835837        nVirtualKey=='l'||nVirtualKey=='L'||        //Loop
    836838        nVirtualKey=='n'||nVirtualKey=='N'||        //Next
    837         nVirtualKey=='p'||nVirtualKey=='P'||        //Private、Protected、Public
     839        nVirtualKey=='p'||nVirtualKey=='P'||        //PrivateAProtectedAPublic
    838840        nVirtualKey=='w'||nVirtualKey=='W')     //Wend
    839841        ){
     
    848850            if(GetEndPairCommandInfo(pBuf,i-1)){
    849851
    850                 //入力された頭文字と一致するかどうかを検証
     852                //“ü—Í‚³‚ꂽ“ª•¶Žš‚ƈê’v‚·‚é‚©‚Ç‚¤‚©‚ðŒŸØ
    851853                for(i3=0;i3<ComplementWndInfo.MemberNum;i3++){
    852854                    if((char)CharUpper((LPSTR)(char)nVirtualKey)==
     
    861863                CodeComplement(WndNum,i-1);
    862864
    863                 //初期入力時に補完リストの選択をさせるため
     865                //‰Šú“ü—ÍŽž‚ɕ⊮ƒŠƒXƒg‚Ì‘I‘ð‚ð‚³‚¹‚邽‚ß
    864866                ResetCaretPos(WndNum);
    865867            }
     
    869871
    870872    //////////////////
    871     // コード補完機能
     873    // ƒR[ƒh•âŠ®‹@”\
    872874    //////////////////
    873875
     
    887889            if(pBuf[i3]=='\r'&&pBuf[i3+1]=='\n') break;
    888890            if(pBuf[i3]=='\''){
    889                 //注釈文のとき
     891                //’Žß•¶‚Ì‚Æ‚«
    890892                return;
    891893            }
     
    893895        }
    894896        if(IsStr){
    895             //文字列内のとき
     897            //•¶Žš—ñ“à‚Ì‚Æ‚«
    896898            return;
    897899        }
     
    929931        if((nVirtualKey=='.'&&i2-i==0)||
    930932            nVirtualKey=='>'&&i2-i==1){
    931             //オブジェクト識別子がないとき、Withを検索
     933            //ƒIƒuƒWƒFƒNƒgŽ¯•ÊŽq‚ª‚È‚¢‚Æ‚«AWith‚ðŒŸõ
    932934            GetWithObjectVariable(pBuf,i2,temporary);
    933935
     
    936938        }
    937939        else{
    938             //オブジェクト識別子をtemporaryにコピー
    939 
    940             //アクセス違反を防ぐため、VN_SIZE以上の参照データへの補完は行わない
     940            //ƒIƒuƒWƒFƒNƒgŽ¯•ÊŽq‚ðtemporary‚ɃRƒs[
     941
     942            //ƒAƒNƒZƒXˆá”½‚ð–h‚®‚½‚߁AVN_SIZEˆÈã‚ÌŽQÆƒf[ƒ^‚ւ̕⊮‚͍s‚í‚È‚¢
    941943            if(i2-i>VN_SIZE) return;
    942944
     
    955957
    956958        if(temporary[0]){
    957             //オブジェクト識別子を検出した場合
     959            //ƒIƒuƒWƒFƒNƒgŽ¯•ÊŽq‚ðŒŸo‚µ‚½ê‡
    958960            if(GetComplementInfo(temporary,pBuf,i2)){
    959961                ComplementWndInfo.iLength=0;
     
    971973void TextEditEvent_StartAnalysis_Html(HWND hwnd,int WndNum,int nVirtualKey){
    972974    //////////////////////////
    973     // HTMLのコード補完
     975    // HTML‚̃R[ƒh•âŠ®
    974976    //////////////////////////
    975977
     
    983985
    984986    ///////////////////////////////
    985     // コード補完
     987    // ƒR[ƒh•âŠ®
    986988    ///////////////////////////////
    987989
     
    996998            CodeComplement(WndNum,i);
    997999
    998             //初期入力時に補完リストの選択をさせるため
     1000            //‰Šú“ü—ÍŽž‚ɕ⊮ƒŠƒXƒg‚Ì‘I‘ð‚ð‚³‚¹‚邽‚ß
    9991001            ResetCaretPos(WndNum);
    10001002        }
Note: See TracChangeset for help on using the changeset viewer.