diff options
Diffstat (limited to 'basctl/source/basicide/baside2b.cxx')
-rw-r--r-- | basctl/source/basicide/baside2b.cxx | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx index e6aa0b913fd9..5f1af6a0ea8e 100644 --- a/basctl/source/basicide/baside2b.cxx +++ b/basctl/source/basicide/baside2b.cxx @@ -499,6 +499,29 @@ void EditorWindow::KeyInput( const KeyEvent& rKEvt ) // see if there is an accelerator to be processed first bool bDone = SfxViewShell::Current()->KeyInput( rKEvt ); + if( rKEvt.GetKeyCode().GetCode() == KEY_RETURN && CodeCompleteOptions::IsProcedureAutoCompleteOn() ) + {//autoclose implementation + TextSelection aSel = GetEditView()->GetSelection(); + sal_uLong nLine = aSel.GetStart().GetPara(); + OUString sActSub = GetActualSubName( nLine ); + IncompleteProcedures aProcData = rModulWindow.GetSbModule()->GetIncompleteProcedures(); + for( unsigned int i = 0; i < aProcData.size(); ++i ) + { + if( aProcData[i].sProcName == sActSub ) + {//found the procedure to autocomplete + TextPaM aEnd( aProcData[i].nLine, 0 ); + TextPaM aStart( aProcData[i].nLine, 0 ); + GetEditView()->SetSelection( TextSelection( aStart, aEnd ) ); + if( aProcData[i].aType == AutocompleteType::ACSUB ) + GetEditView()->InsertText( OUString("\nEnd Sub\n") ); + if( aProcData[i].aType == AutocompleteType::ACFUNC ) + GetEditView()->InsertText( OUString("\nEnd Function\n") ); + GetEditView()->SetSelection( aSel ); + break; + } + } + } + if( rKEvt.GetKeyCode().GetCode() == KEY_POINT && CodeCompleteOptions::IsCodeCompleteOn() ) { rModulWindow.UpdateModule(); @@ -506,7 +529,6 @@ void EditorWindow::KeyInput( const KeyEvent& rKEvt ) TextSelection aSel = GetEditView()->GetSelection(); sal_uLong nLine = aSel.GetStart().GetPara(); OUString aLine( pEditEngine->GetText( nLine ) ); // the line being modified - //OUString sActSub = GetActualSubName( nLine ); std::vector< OUString > aVect; HighlightPortions aPortions; |