[Libreoffice-commits] core.git: Branch 'feature/gsoc-basic-ide-completion-and-other-bits' - basctl/source

Gergo Mocsi gmocsi91 at gmail.com
Fri Jul 12 02:26:49 PDT 2013


 basctl/source/basicide/baside2b.cxx |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

New commits:
commit 84b18461e5fad248dc9a80f90d1e3296722fda9b
Author: Gergo Mocsi <gmocsi91 at gmail.com>
Date:   Fri Jul 12 11:18:36 2013 +0200

    GSOC work nested reflection fix
    
    Ive fixed the parameter problem: I use the tokens created
    by the syntax highlighter (it's struct HighlightPortion),
    and put the identiiers to the vector, and reflect them.
    
    Change-Id: I08888e4a8bf00fa987a16466f4a5ac03836e5ee7

diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index e62bf60..4d15c48 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -524,7 +524,16 @@ void EditorWindow::KeyInput( const KeyEvent& rKEvt )
         OUString aLine( pEditEngine->GetText( nLine ) ); // the line being modified
         OUString aStr = aLine.copy( std::max(aLine.lastIndexOf(" "), aLine.lastIndexOf("\t"))+1 ); // variable name
         OUString sActSub = GetActualSubName( nLine );
-        std::vector< OUString > aVect = Split( aStr, '.' );
+        std::vector< OUString > aVect; //= Split( aStr, '.' );
+
+        HighlightPortions aPortions;
+        aHighlighter.getHighlightPortions( nLine, aLine, aPortions );
+        for ( size_t i = 0; i < aPortions.size(); i++ )
+        {
+            HighlightPortion& r = aPortions[i];
+            if( r.tokenType == 1 ) // extract the identifers(methods, base variable)
+                aVect.push_back( aLine.copy(r.nBegin, r.nEnd - r.nBegin) );
+        }
         OUString sBaseName = aVect[0];
         for( unsigned int i = 0; i < aCodeCompleteCache.size(); ++i)
         {


More information about the Libreoffice-commits mailing list