[Pydev-cvs] org.python.pydev/src/org/python/pydev/editor/codecompletion/revisited CompletionState.
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2006-09-24 01:03:19
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/codecompletion/revisited In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12852/src/org/python/pydev/editor/codecompletion/revisited Modified Files: CompletionState.java AbstractASTManager.java Log Message: Completion on parameters Index: AbstractASTManager.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/codecompletion/revisited/AbstractASTManager.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** AbstractASTManager.java 23 Sep 2006 21:22:50 -0000 1.33 --- AbstractASTManager.java 24 Sep 2006 01:03:16 -0000 1.34 *************** *** 5,8 **** --- 5,9 ---- import java.util.ArrayList; import java.util.Arrays; + import java.util.Collection; import java.util.HashSet; import java.util.Iterator; *************** *** 14,17 **** --- 15,19 ---- import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.text.IDocument; + import org.python.pydev.core.ExtensionHelper; import org.python.pydev.core.FindInfo; import org.python.pydev.core.FullRepIterable; *************** *** 31,34 **** --- 33,37 ---- import org.python.pydev.editor.actions.PyAction; import org.python.pydev.editor.codecompletion.CompletionRequest; + import org.python.pydev.editor.codecompletion.IPyDevCompletionParticipant; import org.python.pydev.editor.codecompletion.PyCodeCompletion; import org.python.pydev.editor.codecompletion.revisited.modules.AbstractModule; *************** *** 252,260 **** IToken[] globalTokens; if(tok != null && tok.length() > 0){ ! CompletionState state2 = new CompletionState(-1,-1,tok,nature); state2.builtinsGotten = true; //we don't want to get builtins here globalTokens = m.getGlobalTokens(state2, this); }else{ ! CompletionState state2 = new CompletionState(-1,-1,"",nature); state2.builtinsGotten = true; //we don't want to get builtins here globalTokens = getCompletionsForModule(m, state2); --- 255,263 ---- IToken[] globalTokens; if(tok != null && tok.length() > 0){ ! CompletionState state2 = new CompletionState(-1,-1,tok,nature,""); state2.builtinsGotten = true; //we don't want to get builtins here globalTokens = m.getGlobalTokens(state2, this); }else{ ! CompletionState state2 = new CompletionState(-1,-1,"",nature,""); state2.builtinsGotten = true; //we don't want to get builtins here globalTokens = getCompletionsForModule(m, state2); *************** *** 523,526 **** --- 526,530 ---- * @param localScope this is the scope we're currently on (may be null) */ + @SuppressWarnings("unchecked") private IToken[] getArgsCompletion(ICompletionState state, ILocalScope localScope) { if (localScope != null){ *************** *** 531,535 **** for (IToken token : args) { if(token.getRepresentation().equals(firstPart)){ ! return s.getInterfaceForLocal(firstPart, state.getActivationToken()); } } --- 535,546 ---- for (IToken token : args) { if(token.getRepresentation().equals(firstPart)){ ! IToken[] interfaceForLocal = s.getInterfaceForLocal(firstPart, state.getActivationToken()); ! Collection argsCompletionFromParticipants = getArgsCompletionFromParticipants(state, localScope, interfaceForLocal); ! for (IToken t : interfaceForLocal) { ! if(!t.getRepresentation().equals(state.getQualifier())){ ! argsCompletionFromParticipants.add(t); ! } ! } ! return (IToken[]) argsCompletionFromParticipants.toArray(new IToken[0]); } } *************** *** 537,540 **** --- 548,564 ---- return null; } + + @SuppressWarnings("unchecked") + private Collection getArgsCompletionFromParticipants(ICompletionState state, ILocalScope localScope, IToken[] interfaceForLocal) { + ArrayList ret = new ArrayList(); + + List participants = ExtensionHelper.getParticipants(ExtensionHelper.PYDEV_COMPLETION); + for (Iterator iter = participants.iterator(); iter.hasNext();) { + IPyDevCompletionParticipant participant = (IPyDevCompletionParticipant) iter.next(); + ret.addAll(participant.getArgsCompletion(state, localScope, interfaceForLocal)); + } + return ret; + } + /** Index: CompletionState.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/codecompletion/revisited/CompletionState.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** CompletionState.java 21 Jul 2006 19:44:45 -0000 1.18 --- CompletionState.java 24 Sep 2006 01:03:16 -0000 1.19 *************** *** 23,26 **** --- 23,27 ---- public int col; public IPythonNature nature; + public String qualifier; public Memo<String> memory = new Memo<String>(); *************** *** 45,48 **** --- 46,50 ---- state.importedModsCalled = importedModsCalled; state.nature = nature; + state.qualifier = qualifier; state.memory = memory; *************** *** 126,134 **** * @param nature2 */ ! public CompletionState(int line2, int col2, String token, IPythonNature nature2) { this.line = line2; this.col = col2; this.activationToken = token; this.nature = nature2; } --- 128,137 ---- * @param nature2 */ ! public CompletionState(int line2, int col2, String token, IPythonNature nature2, String qualifier) { this.line = line2; this.col = col2; this.activationToken = token; this.nature = nature2; + this.qualifier = qualifier; } *************** *** 200,204 **** */ public static ICompletionState getEmptyCompletionState(IPythonNature nature) { ! return new CompletionState(0,0,"", nature); } --- 203,207 ---- */ public static ICompletionState getEmptyCompletionState(IPythonNature nature) { ! return new CompletionState(0,0,"", nature,""); } *************** *** 207,211 **** */ public static ICompletionState getEmptyCompletionState(String token, IPythonNature nature) { ! return new CompletionState(0,0,token, nature); } --- 210,214 ---- */ public static ICompletionState getEmptyCompletionState(String token, IPythonNature nature) { ! return new CompletionState(0,0,token, nature,""); } *************** *** 286,289 **** --- 289,296 ---- return copy; } + + public String getQualifier() { + return this.qualifier; + } } |