[Pydev-cvs] org.python.pydev/src/org/python/pydev/editor/codecompletion PyCodeCompletion.java,1.56,1
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2005-12-15 16:29:36
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/codecompletion In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15559/src/org/python/pydev/editor/codecompletion Modified Files: PyCodeCompletion.java Log Message: Index: PyCodeCompletion.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/codecompletion/PyCodeCompletion.java,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** PyCodeCompletion.java 24 Sep 2005 18:38:46 -0000 1.56 --- PyCodeCompletion.java 15 Dec 2005 16:29:26 -0000 1.57 *************** *** 29,32 **** --- 29,33 ---- import org.python.parser.ast.NameTok; import org.python.pydev.core.ExtensionHelper; + import org.python.pydev.core.Tuple; import org.python.pydev.core.docutils.DocUtils; import org.python.pydev.editor.codecompletion.revisited.ASTManager; *************** *** 619,628 **** ! private static String extractPrefix(IDocument document, int offset) { ! int i= offset; ! if (i > document.getLength()) ! return ""; //$NON-NLS-1$ ! try { while (i > 0) { char ch= document.getChar(i - 1); --- 620,653 ---- ! private static String extractPrefix(IDocument document, int offset) { ! return extractPrefix(document, offset, false).o1; ! } ! ! /** ! * ! * @param document ! * @param offset ! * @param getFullQualifier if true we get the full qualifier (even if it passes the current cursor location) ! * @return ! */ ! private static Tuple<String, Integer> extractPrefix(IDocument document, int offset, boolean getFullQualifier) { try { + if(getFullQualifier){ + //if we have to get the full qualifier, we'll have to walk the offset (cursor) forward + while(offset < document.getLength()){ + char ch= document.getChar(offset); + if (Character.isJavaIdentifierPart(ch)){ + offset++; + }else{ + break; + } + + } + } + int i= offset; + + if (i > document.getLength()) + return new Tuple<String, Integer>("", document.getLength()); //$NON-NLS-1$ + while (i > 0) { char ch= document.getChar(i - 1); *************** *** 632,638 **** } ! return document.get(i, offset - i); } catch (BadLocationException e) { ! return ""; //$NON-NLS-1$ } } --- 657,663 ---- } ! return new Tuple<String, Integer>(document.get(i, offset - i), offset); } catch (BadLocationException e) { ! return new Tuple<String, Integer>("", offset); //$NON-NLS-1$ } } *************** *** 643,655 **** } /** * Returns the activation token. * * @param theDoc ! * @param documentOffset * @return the activation token and the qualifier. */ ! public static String [] getActivationTokenAndQual(IDocument theDoc, int documentOffset) { ! String activationToken = extractPrefix(theDoc, documentOffset); documentOffset = documentOffset-activationToken.length()-1; --- 668,692 ---- } + public static String [] getActivationTokenAndQual(IDocument theDoc, int documentOffset) { + return getActivationTokenAndQual(theDoc, documentOffset, false); + } + /** * Returns the activation token. * * @param theDoc ! * @param documentOffset the current cursor offset (we may have to change it if getFullQualifier is true) ! * @param getFullQualifier * @return the activation token and the qualifier. */ ! public static String [] getActivationTokenAndQual(IDocument theDoc, int documentOffset, boolean getFullQualifier) { ! Tuple<String, Integer> tupPrefix = extractPrefix(theDoc, documentOffset, getFullQualifier); ! ! if(getFullQualifier == true){ ! //may have changed ! documentOffset = tupPrefix.o2; ! } ! ! String activationToken = tupPrefix.o1; documentOffset = documentOffset-activationToken.length()-1; |